Android 压缩资源不会改变 APK 大小
Posted
技术标签:
【中文标题】Android 压缩资源不会改变 APK 大小【英文标题】:Android Compressing resources makes NO change in APK size 【发布时间】:2013-01-07 11:18:42 【问题描述】:我们正在为我的 android 应用程序进行尺寸优化。
然而,在我们显着减少资源文件夹的大小后,将其减少了 8mb,当我编译(使用 maven)时,应用程序的大小仅减少了 0.1mb。
有人可以解释为什么会这样吗?
我在进行 zipaligning,但这一切都在 pom.xml 中。
这里是 pom 的构建段
<build>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.2.0</version>
<extensions>true</extensions>
<configuration>
<!-- replace resources with target specific -->
<renameManifestPackage>$customerPackage</renameManifestPackage>
<resourceOverlayDirectory>$customerResources</resourceOverlayDirectory>
<sign>
<debug>false</debug>
</sign>
<manifest>
<versionCodeAutoIncrement>true</versionCodeAutoIncrement>
</manifest>
<zipalign>
<inputApk>$project.build.directory/$project.build.finalName.apk</inputApk>
<outputApk>$project.build.directory/outputfile.apk</outputApk>
</zipalign>
<proguard>
<skip>true</skip>
</proguard>
<sdk>
<!-- platform or api level (api level 4 = platform 1.6)-->
<platform>17</platform>
</sdk>
<assetsDirectory>$project.basedir/$customerAssets</assetsDirectory>
<resourceDirectory>$project.basedir/res</resourceDirectory>
</configuration>
<executions>
<execution>
<id>manifestUpdate</id>
<phase>process-resources</phase>
<goals>
<goal>manifest-update</goal>
</goals>
</execution>
<execution>
<id>alignApk</id>
<phase>package</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>signing</id>
<goals>
<goal>sign</goal>
</goals>
<phase>package</phase>
<inherited>true</inherited>
<configuration>
<archiveDirectory></archiveDirectory>
<includes>
<include>target/*.apk</include>
</includes>
<keystore>../certificates/mycertificate.keystore</keystore>
<storepass>*******</storepass>
<keypass>******</keypass>
<alias>myalias</alias>
</configuration>
</execution>
</executions>
</plugin>
<!-- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin> -->
</plugins>
</build>
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:一个 APK 已被压缩。通过单独压缩您的资源,您所做的所有事情都会减少 APK 压缩阶段的工作量。
这样想,创建一个大文本文件,将其压缩成 zip,您会发现 zip 小得多。
现在将此压缩文本文件压缩到另一个压缩文件中。你希望它更小吗?不,它几乎不会改变,如果有的话会更大。
从高层次上讲,这与压缩资源基本相同,然后要求 APK 再次压缩所有资源。
【讨论】:
以上是关于Android 压缩资源不会改变 APK 大小的主要内容,如果未能解决你的问题,请参考以下文章