在 Android Studio 中运行编译结果比 `./gradlew app:assembleProductionRelease` 更优化 APK

Play compile in Android Studio result more optimized APK than `./gradlew app:assembleProductionRelease`

当我在 Android Studio 中使用播放按钮进行编译时,即它会 Executing tasks: [:app:assembleProductionRelease],我得到的 APK 的大小比我在命令行 运行 时要小./gradlew app:assembleProductionRelease

在调查 APK 差异后,显然更优化的 APK 剥离了未使用的资源。

我个人认为 ./gradlew app:assembleProductionReleaseExecuting tasks: [:app:assembleProductionRelease] 应该表现相同。

鉴于它们不同,我如何调查 Executing tasks: [:app:assembleProductionRelease] 中有助于优化未使用资源的额外步骤?

找到原因了。对于最新的 Android Studio,如果您点击播放,它会询问特定的设备,并且会编译以匹配该设备。因此生成的 APK 更加优化。尝试针对 API 支持级别大相径庭的两台或更多设备,您会发现 APK 大小变大了。

因此要发布它,最好使用命令行 ./gradlew assembleRelease 生成您的 APK。

有关详细信息,请参阅 https://medium.com/@elye.project/dont-publish-your-manually-compiled-apk-c8ce2bf7e6b4#.9uy2cdyry