Google maps API v2 使 APK 的大小比旧版本大
Google maps API v2 makes size of APK bigger than old version
有一个应用程序使用 Google 地图 API v2
构建签名发布 APK 后,文件长度太大
我构建“HelloWord”项目来测量长度并将 google_play_services_lib 添加到项目中
文件长度最多 2.2 Mb,超过“HelloWord” APK
来自 SKD Manager 的存储库和 google 播放服务也已更新。
我使用 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),它应该 trim 来自生成的 APK 资源和 类,未使用或引用
有一个应用程序使用 Google 地图 API v2 构建签名发布 APK 后,文件长度太大 我构建“HelloWord”项目来测量长度并将 google_play_services_lib 添加到项目中 文件长度最多 2.2 Mb,超过“HelloWord” APK
来自 SKD Manager 的存储库和 google 播放服务也已更新。
我使用 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),它应该 trim 来自生成的 APK 资源和 类,未使用或引用