发布APK之间的巨大差异 - 签名APK大小

时间:2017-01-30 15:54:06

标签: android android-studio google-play apk android-build

我找到了两种可能的方法来生成发布APK

  1. 定义产品口味&在模块build.gradle文件中签名如下所示,然后单击“运行”按钮(betaRelease Config)

    android {
    signingConfigs {
        my_alias {
            keyAlias 'my_alias'
            keyPassword '*******'
            storeFile file('*******')
            storePassword '******'
        }
    }
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 9
        versionName "0.2"
        resConfigs "en","hi","te"
        multiDexEnabled true
    }
    
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.my_alias
        }
        debug {
            minifyEnabled false
        }
    }
    
    productFlavors {
        alpha {
            applicationId = "***************"
            resValue 'string', 'app_name', '**********'
            resValue 'string', 'instabug_app_id','*******************'
            manifestPlaceholders = [onesignal_app_id               : "*******************",
                                    onesignal_google_project_number: "************"]
        }
        beta {
            applicationId = "***************"
            resValue 'string', 'app_name', '**********'
            resValue 'string', 'instabug_app_id','*******************'
            manifestPlaceholders = [onesignal_app_id               : "*******************",
                                    onesignal_google_project_number: "************"]
        }
    }
    aaptOptions {
        additionalParameters "--no-version-vectors"
    }
    }
    
  2. 使用Android Studio中“构建”菜单中的“生成签名的APK”选项

  3. 第一个APK有14.5MB,第二个给出22.5MB,这有很大的不同。使用APK分析器我可以看到第二个是复制res文件夹中的drawables,如下所示。较小的发行版APK(14.5MB一个)在所有类型的设备上运行良好。

    enter image description here enter image description here

    1. 为什么我需要更大的?我可以将普通版APK上传到Play商店吗?

    2. 是否有任何配置可以避免重复的drawables?

2 个答案:

答案 0 :(得分:2)

根据我的观察,我会尝试回答这个问题。

1

  

为什么我需要更大的?我可以将普通版APK上传到Play商店吗?

当您通过单击“运行”按钮释放apk时,您将定位特定设备(模拟器或USB设备),并且您只为此目标创建资源。这就是为什么你有更小的.apk文件。

如果要部署和定位所有设备密度,则应使用“生成签名APK”选项为所有设备提供资源(例如图像)。

  

较小的版本APK(14.5MB one)在所有类型的设备上运行良好。

我认为因为图像会缩放以适应屏幕。但是你以这种方式在图像上失去了质量。

2

  

是否有任何配置可以避免重复的drawable?

Providing Resources instruction中的

写道:

  

应用程序的布局方向。 ldrtl的意思是“布局方向 - 从右到左”。 ldltr表示“layout-direction-left-to-right”,是默认的隐式值。

所有这些意味着您没有重复的drawable,但现在它们位于正确的目录中。

答案 1 :(得分:0)

Android自身为构建添加了一些文件......它还将几个清单文件合并到构建中,以便将其识别为版本构建。通过分析你的正常构建apk并使用APK分析工具在工作室2.2 +

中释放apk,你可以更好地了解你的apk被添加到什么和大的东西

保持minifyEnabled为true,如果你也需要帮助你减少你的apk文件大小!