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

本文详细介绍了如何通过命令行创建Android项目、打包、生成签名文件并对未签名的apk进行签名的过程,提供了具体步骤及命令行指令。

我使用的环境变量的配置:

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指的是当前拥有的APIid号,使用命令>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

 

 

我在使用jdk1.7时,签名后会出现以下警告:

警告:
未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期
日期 (2063-07-18) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

 

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

              >jarsigner -verify demo_signed.apk



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值