0

Android アプリケーションのサイズの最適化に取り組んでいます。

ただし、リソース フォルダーのサイズを大幅に縮小した後、8 MB 縮小しました。(Maven を使用して) コンパイルすると、アプリのサイズは 0.1 MB しか縮小されません。

誰かがなぜこれが起こっているのか説明できますか?

私はzipaligningしていますが、それはすべてポンです。

これが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>

どんな助けでも大歓迎です。

4

1 に答える 1

3

APK は既に圧縮されています。リソースを個別に圧縮することで、APK 圧縮段階で行う作業が少なくなります。

このように考えて、大きなテキスト ファイルを作成し、それを zip に圧縮すると、zip がはるかに小さいことがわかります。

この圧縮されたテキスト ファイルを別の zip ファイルに圧縮します。それがもっと小さくなると思いますか?いいえ、ほとんど変わりません。どちらかというと大きくなります。

大まかに言えば、リソースを圧縮してから、APK にすべてのリソースを再度圧縮するように要求するのと基本的に同じです。

于 2013-01-07T11:31:43.820 に答える