Android Studio:构建 APK 与 运行 APK 之间的大小差异
Android Studio: Difference in size between Build APK vs Run APK
我注意到使用这 2 个选项生成的 apk 的大小不同。
为什么会这样?
使用 构建 -> 构建 APK 选项:
MyProject\app\build\outputs\apk\app-debug.apk(大小 2.997 KB)
使用 运行 应用程序 选项:
MyProject\app\build\outputs\apk\app-debug.apk(大小 3.300 KB)
谢谢。
如果以 issue
的身份发给 Android Studio 团队,这个问题可能会得到更好的回答。我的猜测是您在 Android Studio (AS) 中使用 Instant Run
。这可以解释更大的大小,因为 Instant 运行 为更改的代码生成代理 类。
编辑 Run
配置以使用 gradle build
构建,您应该能够删除额外的代码...但这会带来更长的 build/deploy 时间.. . 如果调试版本的大小对你来说真的很重要,那么没关系,但对于大多数人来说,这会破坏 Android 团队最近为提高速度
对 DSL 所做的所有改进
Build APK 是 运行 :app:assembleDebug
Gradle 任务的快捷方式(假设您在 Build Variants 中启用了调试变体window).
当运行应用程序时,我们首先询问您要定位哪个设备,然后将信息传递给Gradle。除此之外,这让我们可以过滤掉不必要的资源。如果您启用了 Instant 运行,我们还会将其他代码打包到 APK 中。
我的即时 运行 已关闭。
我使用 Run->Run 'App'
获得 6MB APK 大小,使用 Build->Build APK
选项获得 11MB 签名和未签名的 APK。 Build->Generate Signed APK...
选项还为我的应用提供了 11MB 的 APK。
我认为 Android Studio 放弃一些资源来加快构建速度。
11MB 大小的 APK 有更多的资源,所以上传到 play-store 会是更好的选择。
我使用 Build->Analyze Apk...
分析了这两个 APK,因此我发现 5.7mb 的资源差异是由 v4 和 v17 库中的一些额外绘图引起的。
当您通过构建->构建 APK 创建构建时,apk 将包含所有设备的所有资源。
即对于 ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi。
但如果您是 运行 device/emulator 上的应用程序,它会检测到 phone 的分辨率,并且只会将具有该分辨率的资源添加到.apk 文件。例如,如果您的设备是 xhdpi ,它将放弃所有其他屏幕分辨率并且只包含 xhdpi 资源。
我注意到使用这 2 个选项生成的 apk 的大小不同。
为什么会这样?
使用 构建 -> 构建 APK 选项:
MyProject\app\build\outputs\apk\app-debug.apk(大小 2.997 KB)
使用 运行 应用程序 选项:
MyProject\app\build\outputs\apk\app-debug.apk(大小 3.300 KB)
谢谢。
如果以 issue
的身份发给 Android Studio 团队,这个问题可能会得到更好的回答。我的猜测是您在 Android Studio (AS) 中使用 Instant Run
。这可以解释更大的大小,因为 Instant 运行 为更改的代码生成代理 类。
编辑 Run
配置以使用 gradle build
构建,您应该能够删除额外的代码...但这会带来更长的 build/deploy 时间.. . 如果调试版本的大小对你来说真的很重要,那么没关系,但对于大多数人来说,这会破坏 Android 团队最近为提高速度
Build APK 是 运行 :app:assembleDebug
Gradle 任务的快捷方式(假设您在 Build Variants 中启用了调试变体window).
当运行应用程序时,我们首先询问您要定位哪个设备,然后将信息传递给Gradle。除此之外,这让我们可以过滤掉不必要的资源。如果您启用了 Instant 运行,我们还会将其他代码打包到 APK 中。
我的即时 运行 已关闭。
我使用 Run->Run 'App'
获得 6MB APK 大小,使用 Build->Build APK
选项获得 11MB 签名和未签名的 APK。 Build->Generate Signed APK...
选项还为我的应用提供了 11MB 的 APK。
我认为 Android Studio 放弃一些资源来加快构建速度。
11MB 大小的 APK 有更多的资源,所以上传到 play-store 会是更好的选择。
我使用 Build->Analyze Apk...
分析了这两个 APK,因此我发现 5.7mb 的资源差异是由 v4 和 v17 库中的一些额外绘图引起的。
当您通过构建->构建 APK 创建构建时,apk 将包含所有设备的所有资源。 即对于 ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi。
但如果您是 运行 device/emulator 上的应用程序,它会检测到 phone 的分辨率,并且只会将具有该分辨率的资源添加到.apk 文件。例如,如果您的设备是 xhdpi ,它将放弃所有其他屏幕分辨率并且只包含 xhdpi 资源。