Apk安装包的编译过程与生成

一、将一个Android应用打包生成一个可发布的APK包需要的流程:


1.javac工具将*.java文件进行转换,转换后通常得到一个*.class文件;

2.DX工具对*.class文件进行转换,转换后通常得到一个*.dex文件;

3.通过AAPT工具打包所有的资源文件。打包后得到*.ap_文件;

4.通过apkbuilder工具把前两步得到的*.dex、*.ap_文件打包生成APK。

注:DX、AAPT工具均在D:\xxx\android-sdk-windows\build-tools\xxx\目录下


二、AAPT打包资源:


AAPT工具支持的诸多子命令(部分):

1.aapt l[list]:列出资源压缩包内的内容。

2.aapt d[ump]:查看APK包的指定内容。

3.aapt p[ackage]:打包生成资源压缩包。

4.aapt r[emove]:从压缩包中删除指定文件。

5.aapt a[dd]:向压缩包中添加指定文件

6.aapt v[ersion]:打印AAPT的版本。


AAPT工具打包资源包时常用的语法格式如下:


aapt  -A <附件资源路径>  -S  <资源路径>  -M  <Android应用清单文件>  -I  <额外添加包>  And  -F 目标文件的路径


例如:

aapt  -A assets  -S  res  -M  AndroidManifest.xml  -I  D:\android-sdk-windows\platforms\android-9\atforms\android-9\android.kar  -F  bin\res.ap_

上面的命令将当前目录下assets子目录、res子目录、AndroidManifest.xml文件都打包到bin\res.ap_资源包中

三、DX编译Demo.java文件

 DX工具的常见命令格式如下:

         dx  --dex  [--dump-to=<file>]  [--core-library]  [<file>.class | <file>.{zip,jar,apk} | <directory>]

  上面的命令中[--dump-to=<file>]指定生成的*.dex文件的文件名;而--core-library指定需要转换的*.class、*.zip、*.jar文件或者目录


例如:


1.将Demo文件编译生成Demo.class文件

D:\development\android-sdk-windows\build-tools\20.0.0>javac -source 1.7 -target 1.7 Demo.java

2.将Demo.class文件编译生成Demo.dex文件

D:\development\android-sdk-windows\build-tools\20.0.0>dx --dex --output=Demo.dex Demo.class

3.将Demo.class文件反编译java汇编代码

D:\development\android-sdk-windows\build-tools\20.0.0>javap -c -classpath . Hello.class

4.将.dex文件反编译成dalvik汇编代码

D:\development\android-sdk-windows\build-tools\20.0.0>dexdump.exe -d Demo.dex


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值