为什么不在APK文件中压缩resources.arsc?

时间:2014-04-24 04:59:15

标签: android compression

我想减少我的apk文件大小。所以,我试图压缩MyApp.apk文件中的resoruces.arsc文件。 因为该文件是APK文件中最可缩减的文件。 我测试了几个apk文件(包括其他应用程序),但它工作得很好。 应用程序执行时的性能也没有什么不同。 还有其他问题/原因吗?为什么该文件不压缩?

2 个答案:

答案 0 :(得分:7)

Zip / Jar / APK压缩允许zip中的单个文件保持未压缩状态。在APK中,resources.arsc文件通常是故意保持未压缩的。这样做是为了可以进行mmappped。 resources.arsc文件由其他进程读取(在启动器中获取应用程序名称和图标,最近的应用程序页面,任何通知等),因此有效的读取速度非常重要。 如果你的目标是minSdkVersion< 7然后将字符串存储为UTF-16。但是,如果你的minSdkVersion是> = 7,它应该使用UTF-8,它明显更小。

请参阅Hackborn在https://groups.google.com/d/msg/android-developers/c4_Wkkby91c/Hyav-zQKz6UJ的回复 和 https://groups.google.com/d/msg/android-developers/_pM3Ugx_3hw/5EFiPdz92NwJ

答案 1 :(得分:0)

apk格式是一种像JAR这样的压缩格式,你的应用程序已经压缩,你不需要压缩更多。