发布版APK和签名版APK大小差异巨大

6
我找到了两种可能的方法来生成发布APK。
  1. Defining Product Flavours & Signing Config as below in the module build.gradle file and then clicking the Run button (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. Using the Generate Signed APK Option from the Build menu in Android Studio

第一个APK大小为14.5MB,而第二个APK大小为22.5MB,两者之间有很大的差异。通过使用APK分析器,我可以看到第二个APK在res文件夹中重复了drawable资源,如下所示。较小的发布APK(14.5MB)在各种设备上都能正常工作。

enter image description here enter image description here

  1. 我需要更大的APK吗?我能上传普通的发布APK到Play商店吗?

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


3
在Android资源管理器中右键单击你的应用程序,选择"重构",然后点击"删除未使用的资源"。 - Mohammed Atif
已经完成了! - Revanth Gopi
2个回答

3

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

1.

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

当你通过点击“运行”按钮来发布apk时,你是在针对特定的设备(模拟器或USB设备),并且你只为这个目标生成资源。这就是为什么你有一个较小的.apk文件。

如果你想要部署和针对所有密度的设备,你应该使用“生成签名的APK”选项来提供所有设备的资源(例如图像)。

较小的发布APK(14.5MB)在所有类型的设备上都可以正常工作。

我认为这是因为图像被缩放以适合屏幕。但是这种方式会导致图像质量下降。

2.

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

提供资源指南中写道:

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

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


0

Android会自动将一些文件添加到构建中...它还会合并一些清单文件以使其能够被识别为发布版本。通过使用Studio 2.2+中的APK分析器工具,您可以更好地了解哪些内容和多大的东西被添加到您的apk中。

如果需要,将minifyEnabled设置为true可以帮助您减小apk文件大小!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接