您的位置:首页 > 其它

手把手教你纯命令行打包apk

2016-05-22 11:20 239 查看
我使用的环境变量的配置:
Jdk1.6\bin
Sdk\tools

第一部分:通过命令行创建简单的android项目

1.在创建安卓项目的目录中打开命令行窗口

2.在命令行窗口中输入命令(命令写在一行上)

>android create project

--target <target_ID>

--name <项目名称>

--path <项目的路径>

--activity <Activity的名称>

--package <项目的包名>

android create project --target7--nameDemo
--path D:\Z_test\Demo--activity MainActivity--packagecom.demo.www



注:1.不知道的命令可以使用 >android --help来查看

2.target_ID指的是当前拥有的API的id号,使用命令>android
list target 来查看

3.接下来进入项目中进行操作 >cd Demo

第二部分:命令行打包(有的目录没有随着安卓项目的创建而创建,需要手动创建,使用命令>mkdir <文件名>)

1.生成R.java文件

a.创建gen目录>mkdir gen 这是在当前项目的目录下的命令行,所以直接输入想起的文件名就可以了,绝对路径也是可以



b.运行aapt命令生成R.java文件

>aapt package -f -m -J gen -S res -I E:\sdk\platforms\android-19\android.jar -M AndroidManifest.xml



2.将java文件编译成class文件

>javac -encoding UTF-8 -target 1.6 -bootclasspath E:\sdk\platforms\android-19\android.jar -d bin src\com\demo\www\*.java gen\com\demo\www\R.java



注:a.-target 1.6 是指jdk的版本,经验是使用1.6的编译dex时不会出现问题,使用1.7就不能编译成功

b.-d bin src\com\demo\www\*.java -d 表示指定存放生成的class文件的位置,后面就是要编译的java文件

3.生成dex文件(注意:使用绝对路径)

>dx --dex --output=D:\Z_test\Demo\bin\classes.dex D:\Z_test\Demo\bin



注:前面是dex文件 ,后面是操作的目录,也就是存放到的目录

4.生成资源包文件

>aapt package -f -M AndroidManifest.xml -S res -A assets -I E:\sdk\platforms\android-19\android.jar -F bin\resources



5.生成未签名的apk包(sdk3.0以后将apkbuilder删除了)

>java -cp E:\sdk\tools\lib\sdklib.jar com.android.sdklib.build.ApkBuilderMain Demo.apk -v -u -z bin\resources -f bin\classes.dex -rf src



效果:



第三部分:命令行生成签名文件

>keytool -genkey -alias key_demo.keystore -keyalg RSA -validity 20000 -keystore key_demo.keystore



注:文件夹下的key_demo.keystore就是我们需要的签名文件 20000表示证书的有效天数

第四部分:用生成的签名文件对未签名的apk进行签名(jdk一定要是1.6,)

>jarsigner -verbose -keystore key_demo.keystore -signedjar demo_signed.apk D:\Z_test\Demo\demo.apk key_demo.keystore



我在使用jdk为1.7时,签名后会出现以下警告:

警告:

未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期

日期 (2063-07-18) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

第五部:最后验证是否签名成功

>jarsigner -verify demo_signed.apk

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: