如何在使用游戏服务gcm时减小apk大小



我生成的签名apk大小为30kB,当我将播放服务gcm添加到gradle文件时,apk大小增加到800kB。通过缩减资源,apk大小变为600kB。

如何进一步缩小应用程序大小?

apply plugin: 'com.android.application'
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    defaultConfig {
        applicationId "com.test.mytest"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            zipAlignEnabled true
            shrinkResources true
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])      
    compile 'com.google.android.gms:play-services-gcm:8.1.0'
}

来自http://proguard.sourceforge.net/manual/examples.html#application

-优化通过3次

-攻击性过强

-重新包装类"

-允许访问修改

这些可能会有所帮助。(特别是3次通过)

查看您的build.gradle,您已经了解了源代码和资源优化。你缺少的是:

  1. 使用ResConfigs 删除未使用的配置

    许多库,如support/Googleplay服务,都附带了可以翻译成太多语言的字符串资源。你可能并不打算支持他们所有人。使用以下方式,您可以控制大小:

    安卓{

    defaultConfig {
        ...
        resConfigs "en"
    }}
    

    这将删除所有不适用于英语的资源。

  2. 稀疏配置

    这通常适用于具有大量字符串的应用程序。对于某些功能,您可能会尝试在values-22/strings.xml下创建字符串。这种方法的问题是在每个可能的资源位置上为指针保留空间。因此,即使字符串不存在于新文件中,它仍然占用指针的空间,指针大约有4字节的空数据。您可以使用来自谷歌的名为ArscBlamer的工具来定位这种稀疏配置。

  3. 图像优化

    您可以使用WebP和Zopfli压缩的PNG执行一些图像优化。你必须仔细权衡使用它们的负面影响。详细信息可在此处获取

有关这些方法的更多详细信息,请访问

此时,这就是该依赖项的大小。.apk的每一个依赖项的大小都会增加,原因是你的应用程序需要这些功能,而不能依赖于从远程位置访问它,以防设备没有互联网连接。

根据这一点(以及IntelliJ的评论),如果你配置你的proguard,你可以试着缩小一点。

还要考虑以下内容:缩小Google Play Services库,仅用于Google Analytics。

最新更新