我正在开发 Phonegap Build 应用程序。对于 android 文件,当我尝试编译 zip 文件时,APK 文件总是包含 3 个 javascript 文件:phonegap.js cordova.js ...然而这三个文件的内容完全相同。如何删除两个多余的 js 文件以优化我的应用程序?
1 回答
仅供参考,根据开发人员的说法,存在冗余文件的原因是为了避免用户混淆:
许多用户包含错误的文件。允许包含上述任何内容避免了很多混乱——在我们看来,这足以超过两个额外文件的占用空间。
现在,PhoneGap 2.8 引入cordova.js
的文件名中没有版本号,因此会跟踪一个低优先级问题以删除冗余文件(因此,如果您只是等待,它可能很快就会自行修复):
增强功能:PhoneGap 2.8 引入了无版本号的 cordova.js。Build 现在可以排除多余的 .js 文件。
但是,如果您不愿意等待他们升级构建过程,您可以按照以下说明自行删除文件:
1 . apktool
使用(您需要在您的机器上安装 Android 和 Java SDK)将 APK 文件解压到本地目录结构中-有关如何解压和删除文件的说明:
$ \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
- 请注意此时 APK 未签名,因此无法部署到 Play 商店或任何不允许来自未签名来源的应用的设备。
4 . 使用您的 android 证书重新签署 APK 文件,使其有效:
使用作为 Java JDK 一部分的 jarsigner 工具对 apk 进行签名。您还需要用于签署应用程序的密钥库和密钥别名,以及密码。
jarsigner -verbose -keystore ~/MySigningKey.keystore ~/Desktop/myAppUnsigned.apk myKeyAlias
Enter Passphrase for keystore:
输入密码后,您会看到一大堆“签名:”消息放大;全部完成后,您就有了一个签名的 apk 文件。
5 . 最后一步是压缩 apk 文件:
zipalign -v 4 myAppUnsigned.apk myApp.apk
你应该完成了。您可以将所有这些步骤自动化到批处理/shell 脚本中,以便在构建文件时使用。