Android打包技术之命令行打包

1.先进入到当前项目所在目录下。

2.当前目录下使用aapt命令,生成R文件。

    <aapt所在路径> package  -f -m -J <生成的R文件所在的目录> -S res -M AndroidManifest.xml  -I  <sdk所在路径>\platforms\android-4.2\android.jar

     回车,就在 <生成的R文件所在的目录> 目录下看到了生成的R文件了。

   我自己的完整命令是:

D:\adt-bundle-windows\sdk\platform-tools\aapt package -f -m -J D:\UserProfiles\nickwang\workspace\android-custom-class-loading-sample\gen -S res -M AndroidManifest.xml -I D:\adt-bundle-windows\sdk\platforms\android-4.2\android.jar

3.aidl(Android Interface Definition Language)命令,根据.aidl定义文件生成java文件

  先略过,目前项目暂时还没用到aidl

4.javac,编译源文件

   还是在当前项目的目录下使用javac命令。我使用的完整命令是:

javac -encoding utf-8 -target 1.6 -d bin src/com/example/dex/*.java gen/com/example/dex/R.java -bootclasspath D:\android-sdk-windows\platforms\android-8\android.jar

  读者在使用时,可以将-d后的两个参数 分别对应你自己项目的src文件目录和已经生成的R.java文件;-bootclasspath后面对应android.jar对应的路径。

这里可能遇到两个问题:

1.目标版本 1.6 与默认的源版本 1.X 冲突

2.Dx bad class file magic (cafebabe) or version (0033.0000) 


解决办法是:PC安装的java版本和编译的target参数最好都是1.6,1.7编译的话,打包会出问题。

5.dx命令,打包dex文件

D:\android-sdk-windows\platform-tools\dx.bat --dex --output=D:\UserProfiles\nickwang\workspace\android-custom-class-loading-sample\bin\classes.dex D:\UserProfiles\nickwang\workspace\android-custom-class-loading-sample\bin
然后可以看到生成dex文件了。
解决办法和上面一样是: PC安装的java版本和编译的target参数最好都是1.6,1.7编译的话,此刻打包就出现问题了。

6.aapt将资源文件打包

D:\android-sdk-windows\platform-tools\aapt package -f -M AndroidManifest.xml -S res -A assets -I D:\android-sdk-windows\platforms\android-8\android.jar -F bin\resouces.ap_
可以看到bin文件夹下生成resouces.ap_文件了。

参数说明:

-f 强制覆盖

-M 指定Manifest文件

-S 指定资源目录

-A 指定资产目录

-I 指定引入的类库

-F 指定要生成的包

7.apkbuilder命令打包

D:\android-sdk-windows\tools\apkbuilder.bat <打包的apk放置的位置> -u -z <已经生成的_ap文件位置> -f <dex文件位置> -rf <项目的src目录的位置>
我的打包命令是:
D:\android-sdk-windows\tools\apkbuilder.bat D:\UserProfiles\nickwang\workspace\android-custom-class-loading-sample\bin\test_unsined.apk -u -z D:\UserProfiles\nickwang\workspace\android-custom-class-loading-sample\bin\resouces.ap_ -f D:\UserProfiles\nickwang\workspace\android-custom-class-loading-sample\bin\classes.dex -rf D:\UserProfiles\nickwang\workspace\android-custom-class-loading-sample\src
生成apk包

8.生成签名证书

任意目录下,使用cmd命令:
keytool -genkey -alias release -keyalg RSA -validity 20000 -keystore release.keystore
然后依次输入密码,所在国家等信息,即可在当前目录下生成release.keystore

9.对apk进行签名

jarsigner -keystore release.keystore -storepass <密码> -keypass <密码>  -signedjar <签名后的程序包所在位置> <待签名的程序包所在路径> release









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值