Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我的Gradle APK比Ant';s_Android_Ant_Android Gradle Plugin - Fatal编程技术网

Android 为什么我的Gradle APK比Ant';s

Android 为什么我的Gradle APK比Ant';s,android,ant,android-gradle-plugin,Android,Ant,Android Gradle Plugin,我一直在考虑迁移到Gradle,但我意识到,与我们的Ant构建相比,我们的应用程序大小显著增加了700kb以上,这并不是真正的原因。我试着解压APK文件并重新压缩,它们的大小差不多 这里是apk和结果re-zips的ls输出 -rw-r--r-- 1 andrew staff 7814614 May 8 16:09 ant-built.apk -rw-r--r-- 1 andrew staff 7927650 May 8 16:12 ant-zipped.zip -rw-r-

我一直在考虑迁移到Gradle,但我意识到,与我们的Ant构建相比,我们的应用程序大小显著增加了700kb以上,这并不是真正的原因。我试着解压APK文件并重新压缩,它们的大小差不多

这里是apk和结果re-zips的
ls
输出

-rw-r--r--   1 andrew  staff  7814614 May  8 16:09 ant-built.apk
-rw-r--r--   1 andrew  staff  7927650 May  8 16:12 ant-zipped.zip
-rw-r--r--   1 andrew  staff  8534075 May  8 16:10 gradle-built.apk
-rw-r--r--   1 andrew  staff  7963004 May  8 16:12 gradle-zipped.zip

正如您所看到的,Gradle的输出要大得多,但是当压缩时,它的大小基本上与Ant构建的压缩版本相同。是否有任何原因导致Gradle文件在默认情况下更大?两个APK都有zipaligned和签名。拉链是使用basic
zip
命令行压缩的。在Ant或Gradle中没有做任何特殊的构建。

事实证明,我们在Ant构建中做了一个额外的签名步骤,使文件大小更小。在未签名的Gradle构建之后,手动执行两个签名步骤会在Gradle和ant之间创建等效的大小。不幸的是,我不认为它可以被进一步锁定,因为现在我不能使用Gradle的常规signingConfig。

当你解压APK以查看其中的内容时,你看到了什么不同?@Commonware的内容似乎是相同的。嗯,有些东西必须是不同的,否则它们将是相同的大小。原始文件大小相同吗?压缩文件大小相同吗?我的猜测是,原始文件大小相同,但对于一些条目,压缩的条目不同,因为它们禁用了基于路径或文件扩展名的某些条目的压缩。尝试使用“meld”来区分已解压缩APK的两个目录。