这两天项目组需要自定义android apk,看了两天的命令行打包apk,发现了几个问题,现在跟大家分享下,写的不好欢迎踊跃拍砖哈。亲,包邮哦!
1.首先要用的几个命令我一次贴上来
----- --------------------------------华丽的分割线------------------------------------------------
1.使用aapt生成R.java类文件:
D:\test\YQL>
aapt p -f -m -J gen -S res -I android.jar -M AndroidManifest.xml
2.编译.java类文件生成class文件:
D:\test\YQL>
javac -classpath android.jar -d bin src\cn\ffcs\yql\activity\*.java src\cn\ffsf\jql\base\*.java src\cn\ffsf\jql\utils\*.java gen\cn\ffcs\yql\activity\R.java
3.使用android SDK提供的dx.bat命令行脚本生成classes.dex文件:
D:\test\YQL>
dx --dex --output=D:\test\YQL\bin\classes.dex D:\test\YQL\bin
4.这生成应用程序apk文件
D:\test\YQL>
aapt p -f -F yql.apk -v -u -z -M AndroidManifest.xml -S res -A assets -I android.jar
5.把前面生成的classes.dex文件压缩到apk文件,最终生成可运行的apk应用程序
D:\test\YQL>
aapt add yql.apk bin\classes.dex
6.生成签名文件
D:\test\YQL>
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
7.生成的apk进行自动签名,无签名的apk是无法安装。
D:\test\YQL>
jarsigner -verbose -keystore ffcs-yql-key.keystore yql.apk alias_name
8.优化APK
D:\test\YQL>
zipalign -v 4 D:\test\YQL\yql_signed.apk E:\yql.apk
---------------------------------华丽的分割线-----------------------------------------------------
都有注释我就不重复了啰嗦了
2.为了避免路径跳来跳去,一次配置好环境变量好了。
----------------------------------轻轻的割一下--------------------------------------------------------
C:\Program Files\Java\jdk1.6.0_10\bin;
E:\android-sdk-windows\platforms\android-7\tools
E:\android-sdk-windows\tools
----------------------------------轻轻的割一下--------------------------------------------------------
不是copy我这个到环境变量里,写出路径是想让你们看清除引用那些路径,我这个项目用的是android 2.1 所以引用的是android-7\tools
3.把项目所用到的android.jar 放到D:\test\YQL下,也就是你的项目工程目录下。
-------------------------------------------------------------------------------------------------------------很能割---------------------------------------------------------------------------------------------------------
执行到此基本上可以生成可执行的APK,接下来就是真机测试的问题了。
1.真机测试老是提示未安装程序
原因:如果在安装之前你安装了eclipse 在项目工程下bin\*.apk 那么请 先卸载,再安装 因为在eclipse生成的apk 是加了证书的,你现在做的release 证书和eclipse生成的证书不一样,所以不能安装新证书的APK文件
2.没有加证书的apk 不能安装
3.手动打包APK 和网络 文件流一起,可以生成很个性化的apk文件,本文意义所在啦。
各位大侠如果有什么错误,欢迎大家往死里拍,谢谢了!!!