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

Rev*_*opi 6 android android-build apk google-play android-studio

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

  1. 在模块build.gradle文件中定义Product Flavors和Signing Config,然后单击Run按钮(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"
    }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用Android Studio中"生成"菜单中的"生成签名的APK"选项

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

在此输入图像描述 在此输入图像描述

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

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

小智 3

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

1.

为什么我需要更大的?我可以将正常发布的 APK 上传到 Play 商店吗?

当您通过单击“运行”按钮发布 apk 时,您的目标是特定设备(模拟器或 USB 设备),并且您仅为该目标生成资源。这就是您的 .apk 文件较小的原因。

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

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

我认为是因为图像被缩放以适合屏幕。但这样就会损失图像质量。

2.

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

提供资源指令中写道:

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

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