【发布时间】:2013-07-13 15:19:02
【问题描述】:
我正在开发 Phonegap Build 应用程序。对于 android 文件,当我尝试编译 zip 文件时,APK 文件总是包含 3 个 javascript 文件:phonegap.js cordova.js ...然而这三个文件的内容完全相同。如何删除两个多余的 js 文件以优化我的应用程序?
【问题讨论】:
标签: javascript build cordova
我正在开发 Phonegap Build 应用程序。对于 android 文件,当我尝试编译 zip 文件时,APK 文件总是包含 3 个 javascript 文件:phonegap.js cordova.js ...然而这三个文件的内容完全相同。如何删除两个多余的 js 文件以优化我的应用程序?
【问题讨论】:
标签: javascript build cordova
仅供参考,存在冗余文件的原因是为了避免用户混淆according to the devs:
许多用户包含了错误的文件。允许包含任何 以上避免了很多混乱 - 足以超过 在我们看来,两个额外文件的占用空间。
现在PhoneGap 2.8 引入了cordova.js,文件名中没有版本号,有一个low-priority issue being tracked 来删除多余的文件(所以如果你只是等待,它可能很快就会自行修复):
增强功能:PhoneGap 2.8 引入了无版本号的 cordova.js。 Build 现在可以排除多余的 .js 文件。
但是,如果您不愿意等待他们升级构建过程,您可以按照以下说明自行删除文件:
1。使用 apktool 将 APK 文件解压到本地目录结构中(您需要在您的机器上安装 Android 和 Java SDK) - instructions here on how to unpack and remove files:
$ \path\to\AndroidSDK\platform-tools\apktool d myApp.apk
2。删除phonegap.js 和cordova-x.x.x.js 文件(这些是> 2.8.0 中未使用的文件)。
3。重新打包 APK,再次使用 apktool:
$ \path\to\AndroidSDK\platform-tools\apktool b myApp myAppUnsigned.apk
4。使用您的 android 证书重新签署 APK 文件,使其有效:
使用作为 Java JDK 一部分的 jarsigner 工具对 apk 进行签名。 您还需要用于签署 应用程序,以及密码。
jarsigner -verbose -keystore ~/MySigningKey.keystore ~/Desktop/myAppUnsigned.apk myKeyAlias
Enter Passphrase for keystore:
输入密码后,您会看到一大堆“签名:”消息放大;全部完成后,您就有了一个签名的 apk 文件。
5。最后一步是对apk文件进行zipalign:
zipalign -v 4 myAppUnsigned.apk myApp.apk
你应该完成了。您可以将所有这些步骤自动化到批处理/shell 脚本中,以便在构建文件时使用。
【讨论】: