ionic android 手工打包指令手册
【工作平台要求】
安装 node.js、cordova、ionic(非必须) 等前端相关软件与组件
(1)安装 Java-SDK,正确配置系统环境变量 JAVA_HOME、CLASSPATH、加入 PATH
node.js、JDK 安装路径不能要有空格和中文!!!
推荐安装路径:
C:\nodejs\
C:\Java\jdk1.8.0_112(注意不要升级java,对应就是这个版本,不然其他的也要升级)
系统环境变量:
JAVA_HOME=C:\Java\jdk1.8.0_112
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
加入 PATH:
%JAVA_HOME%\bin;C:\nodejs\;
(2)安装 Android-SDK,正确配置系统环境变量 ANDROID_HOME、加入 PATH
全部路径中不要有空格和中文!!!例如,主目录是:D:\Android
因为 Windows 系统对文件路径有 255 个字符的限定,
所以不要把 Android 主目录名设置太长!也不要放在很深的子目录里!!
系统环境变量:
ANDROID=D:\Android(非必须偷懒写法)
ANDROID_HOME=D:\Android
加入 PATH:
%ANDROID%\tools;%ANDROID%\platform-tools;
或者
ANDROID_HOME=D:\Android
加入 PATH:
%ANDROID_HOME%\tools;%ANDROID%\platform-tools;
(3)安装 Apache Ant,正确配置系统环境变量 ANT_HOME、加入 PATH(后面例示)
下载:http://apache.fayea.com//ant/binaries/apache-ant-1.10.0-bin.zip
官网:http://ant.apache.org/bindownload.cgi
下载后解压缩在C:或DD盘根目录下(例如:D:\apache-ant-1.10.0)
系统环境变量:
ANT_HOME=D:\apache-ant-1.10.0
PATH 里增加:
%ANT_HOME%\bin;
* npm install -g cordova
npm install -g ionic
npm install -g http-server
* npm install -g gulp
*代表全局和本地即项目(比如myApp)都要安装
【打包前配置、测试】
node -v
java -version
ant -version
android
创建项目文件夹:cordova create myApp(相应目录会自动生成)
进入到项目文件夹里,确保能成功执行(只要不报组件缺失的错,其它的可忽略):
(1)cordova platform add android
(2)ionic run android
【ionic Android 打包流程】
(1)为加快编译速度,强烈建议:手工下载 gradle!下载网址是:
http://services.gradle.org/distributions/gradle-2.14.1-all.zip(.gradle解压到C:\Users\mjx\下面就不会自动去下载)
(2)下载后的zip文件要拷贝到项目的\platforms\android\gradle 文件夹下!
(3)设置环境变量,命令行输入:
set CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=../gradle-2.14.1-all.zip(每次进cmd都要设置)
(4)为加快编译速度,推荐修改组件下载地址为阿里云服务器——
打开项目\platforms\android\build.gradle修改:
repositories {
//mavenCentral() // 注释掉
jcenter()
flatDir {
dirs 'libs'
}
maven {
url "http://maven.aliyun.com/nexus/content/groups/public"
}
}
(5)开始时先输入指令打包(在此过程中程序会检查、添加组件并配置、编译)
ionic build android(如果用ionic打包,config.xml和ionic.config.json里面的名字都要改)
(6)如果不能一次成功的话,可输入终极打包指令( --release 是正式发布选项):
cordova build android --release(如果用cordova打包就只用改config.xml)
(7)成功后,可在项目/platforms/android/build/outputs/apk/ 下找到打好的apk包
附加============================================================================
【关于证书】
Keytool 是Java-SDK下的一个有效的安全钥匙和证书的管理工具;
Android 要求所有程序必须有签名,否则就不安装。
输入指令时要将 XXXXXXXX 改成自己设定的
keytool -genkey -v -keystore my-release-key.keystore -alias XXXXXXXX -keyalg RSA -keysize 2048 -validity 10000
【关于签名】
jarsigner是Java-SDK中包含的用于JAR文件签名和验证的工具。
注意:输入指令时 XXXXXXXX 与证书名须一致!
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk XXXXXXXX
注意:
1.证书和签名都是config.xml中的作者名(注意XXXXXXXX -keyalg RSA中间有空格,另外这里的名字大部分人用项目名,apk名也可以,因为这只是一个别名所以都可以,但是注意上下一致)
2.第一次打包成功后以后打包只需要将自己的文件夹改为www,然后将myAPP里面的www换一个目录名,myApp(app的名字改一下,config.xml里面的app名字改一下,然后证书和签名做完就可以了)
3.HelloWorld-release-unsigned.apk要改为打包的apk名字
4.注意证书和签名操作都是在apk目录下完成,而不是在myApp下面
【App优化】
Zipalign 是android平台上整理APK文件的工具,能够对打包的Android应用程序进行优化。
将Android sdk下面的build-tools下面的zipalign.exe复制到tools文件夹下面
例如:
zipalign -v 4 android-release-unsigned.apk xxxxxxx.apk