有一个使用Google Map API v2的应用程序
构建签名发布APK后,文件长度过大
我建立“ HelloWord”项目以测量长度,并将google_play_services_lib添加到项目
文件长度比“ HelloWord”大2.2 Mb APK

来自SKD Manager的存储库和Google Play服务也已更新。

我使用Android Studio IDE(Gradle)并导入所有google-play-services。
是否可以导入其中的一部分?

最佳答案

假设您使用AS和Gradle作为构建脚本/依赖项管理

要导入整个Google Play服务,请使用以下依赖项:

compile 'com.google.android.gms:play-services:7.8.0'


其中包括所有服务资源和类,它的清单很大:

+--- com.google.android.gms:play-services:7.8.0
|    +--- com.google.android.gms:play-services-ads:7.8.0
|    |    +--- com.google.android.gms:play-services-base:7.8.0
|    |    |    \--- com.android.support:support-v4:22.2.0 -> 22.2.1
|    |    |         \--- com.android.support:support-annotations:22.2.1
|    |    +--- com.google.android.gms:play-services-analytics:7.8.0
|    |    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    |    \--- com.google.android.gms:play-services-appindexing:7.8.0
|    |         \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-analytics:7.8.0 (*)
|    +--- com.google.android.gms:play-services-appindexing:7.8.0 (*)
|    +--- com.google.android.gms:play-services-appinvite:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-appstate:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-cast:7.8.0
|    |    +--- com.google.android.gms:play-services-base:7.8.0 (*)
|    |    \--- com.android.support:mediarouter-v7:22.2.0
|    |         \--- com.android.support:appcompat-v7:22.2.0
|    |              \--- com.android.support:support-v4:22.2.0 -> 22.2.1 (*)
|    +--- com.google.android.gms:play-services-drive:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-fitness:7.8.0
|    |    +--- com.google.android.gms:play-services-base:7.8.0 (*)
|    |    \--- com.google.android.gms:play-services-location:7.8.0
|    |         +--- com.google.android.gms:play-services-base:7.8.0 (*)
|    |         \--- com.google.android.gms:play-services-maps:7.8.0
|    |              \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-games:7.8.0
|    |    +--- com.google.android.gms:play-services-base:7.8.0 (*)
|    |    \--- com.google.android.gms:play-services-drive:7.8.0 (*)
|    +--- com.google.android.gms:play-services-gcm:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-identity:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-location:7.8.0 (*)
|    +--- com.google.android.gms:play-services-maps:7.8.0 (*)
|    +--- com.google.android.gms:play-services-nearby:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-panorama:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-plus:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-safetynet:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-vision:7.8.0
|    |    \--- com.google.android.gms:play-services-base:7.8.0 (*)
|    +--- com.google.android.gms:play-services-wallet:7.8.0
|    |    +--- com.google.android.gms:play-services-base:7.8.0 (*)
|    |    +--- com.google.android.gms:play-services-identity:7.8.0 (*)
|    |    \--- com.google.android.gms:play-services-maps:7.8.0 (*)
|    \--- com.google.android.gms:play-services-wearable:7.8.0
|         \--- com.google.android.gms:play-services-base:7.8.0 (*)


要缩小尺寸,您可以使用以下三种选择:


仅添加您需要的一部分,例如。 com.google.android.gms:play-services-maps:7.8.0
排除不想要的零件


像这样:

compile('com.google.android.gms:play-services:7.8.0') {
    exclude module: 'play-services-fitness'
    exclude module: 'play-services-games'
    exclude module: 'play-services-wallet'
    exclude module: 'play-services-safetynet'
    exclude module: 'play-services-appinvite'
    exclude module: 'play-services-wearable'
    exclude module: 'play-services-cast'
}



或使用Proguard(minifyEnabled),它应从生成的APK资源和类中删减掉,这些资源和类不使用或不引用

10-06 05:37
查看更多