在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序
2013-07-03 21:40
721 查看
在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序
本贴首发于:
http://xuekaiyuan.com/forum.php?mod=viewthread&tid=15
准备环境
本脚本依赖 p7zip,OpenJDK,PHP
代码说明
设置已编译的不包含网页的 APK 安装程序的路径
设置网页的路径
设置基础路径
计算时间戳
设置工作路径
创建临时文件夹
复制已编译的不包含网页的 APK 安装程序到临时文件夹
解压缩已编译的不包含网页的 APK 安装程序到临时文件夹
删除临时文件中的签名信息
在临时文件夹中创建网页的路径
复制网页到临刊文件夹中网页的路径
自动修改文件名
压缩临时文件夹为未签名的 APK 安装程序
在临时文件夹中生成一个签名用的密钥文件
使用密钥文件对未签名的 APK 安装程序签名生成已签名的 APK 安装程序
完整的程序代码如下
在虚拟机中的效果如图所示
本贴首发于:
http://xuekaiyuan.com/forum.php?mod=viewthread&tid=15
准备环境
本脚本依赖 p7zip,OpenJDK,PHP
代码说明
设置已编译的不包含网页的 APK 安装程序的路径
SOURCEAPK="./AxureViewer.apk"
设置网页的路径
SOURCEWWW="./www"
设置基础路径
BASEDIR="."
计算时间戳
DATETIME="$(/bin/date +%Y%m%d%H%M%S)"
设置工作路径
WORKINGDIR="${BASEDIR}/${DATETIME}"
创建临时文件夹
/bin/mkdir "${WORKINGDIR}"
复制已编译的不包含网页的 APK 安装程序到临时文件夹
cp "${SOURCEAPK}" "${WORKINGDIR}/source.apk"
解压缩已编译的不包含网页的 APK 安装程序到临时文件夹
/usr/local/bin/7za x -o"${WORKINGDIR}/source" "${WORKINGDIR}/source.apk"
删除临时文件中的签名信息
rm -r "${WORKINGDIR}/source/META-INF"
在临时文件夹中创建网页的路径
/bin/mkdir "${WORKINGDIR}/source/assets/www"
复制网页到临刊文件夹中网页的路径
cp -r "${SOURCEWWW}/"* "${WORKINGDIR}/source/assets/www"
自动修改文件名
/usr/local/php/bin/php ./rename.php "${WORKINGDIR}/source/assets/www"
压缩临时文件夹为未签名的 APK 安装程序
/usr/local/bin/7za a -tzip "${WORKINGDIR}/unsigned.apk" "${WORKINGDIR}/source/*"
在临时文件夹中生成一个签名用的密钥文件
/usr/bin/keytool -genkeypair -keystore "${WORKINGDIR}/keystore" -storepass "${DATETIME}" -dname "CN=${DATETIME}, OU=hpx-party.net, O=daonao.com, L=Beijing, L=Beijing, C=CN" -alias "${DATETIME}" -keypass "${DATETIME}"
使用密钥文件对未签名的 APK 安装程序签名生成已签名的 APK 安装程序
/usr/bin/jarsigner -keystore "${WORKINGDIR}/keystore" -storepass "${DATETIME}" -keypass "${DATETIME}" -digestalg SHA1 -signedjar "${WORKINGDIR}/signed.apk" "${WORKINGDIR}/unsigned.apk" "${DATETIME}
完整的程序代码如下
SOURCEAPK="./AxureViewer.apk" SOURCEWWW="./www" BASEDIR="." DATETIME="$(/bin/date +%Y%m%d%H%M%S)" WORKINGDIR="${BASEDIR}/${DATETIME}" /bin/mkdir "${WORKINGDIR}" cp "${SOURCEAPK}" "${WORKINGDIR}/source.apk" /usr/local/bin/7za x -o"${WORKINGDIR}/source" "${WORKINGDIR}/source.apk" rm -r "${WORKINGDIR}/source/META-INF" /bin/mkdir "${WORKINGDIR}/source/assets/www" cp -r "${SOURCEWWW}/"* "${WORKINGDIR}/source/assets/www" /usr/local/php/bin/php ./rename.php "${WORKINGDIR}/source/assets/www" /usr/local/bin/7za a -tzip "${WORKINGDIR}/unsigned.apk" "${WORKINGDIR}/source/*" /usr/bin/keytool -genkeypair -keystore "${WORKINGDIR}/keystore" -storepass "${DATETIME}" -dname "CN=${DATETIME}, OU=hpx-party.net, O=daonao.com, L=Beijing, L=Beijing, C=CN" -alias "${DATETIME}" -keypass "${DATETIME}" /usr/bin/jarsigner -keystore "${WORKINGDIR}/keystore" -storepass "${DATETIME}" -keypass "${DATETIME}" -digestalg SHA1 -signedjar "${WORKINGDIR}/signed.apk" "${WORKINGDIR}/unsigned.apk" "${DATETIME}"
在虚拟机中的效果如图所示
相关文章推荐
- 在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序
- 在 Windows 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序
- android程序自动安装apk
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- Android 程序自动安装下载好的apk 、程序的安装、卸载和更新
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- PhoneGap (Cordova 5.4.0) 生成android签名apk
- Android打开特定文件,例如自动安装APK程序
- android 7.0 apk版本更新,下载之后自动安装
- android工程自动生成apk的路径
- Android 软件安装程序(*.apk)的结构分析、反编译以及汉化
- linux 脚本实现程序自动安装
- zabbix_agent for linux自动安装脚本
- Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式
- Android不安装APK,也能调用其程序
- linux下安装qt for android
- Android 版本更新下载自动安装APK,并解决Android6.0安装失败的问题
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- Android 8.0不能自动安装APK问题的解决方法(完美适配)
- android工程中引入第三方JAR包后安装APK时老是提示找不到库文件 || Android如何将程序打成jar包 || 运行java.lang.noclassdeffounderror错误