|
经过前面三篇的介绍,我相信大家应该知道ADT在编译 打包 AIR FOR ANDROID项目的时候的整个工作流程,所以关于流程原理上的东西 在这里就不多赘述了,ADT编译android源码相比编译资源来说就简单很多,大家直接看源代码注释就能看明白.这一篇分析的是 ADT操作androidSD之中的dx工具把 一堆jar文件编译成dex文件的操作过程,我们都知道 每一个apk文件都需要一个dex文件,而dex文件则是可以被android设备直接执行的文件,就类似与swf文件对于flash player而言.对于想了解更多android程序原理和结构的同学,我推荐大家去购买由国内知名安全论坛看雪学院出品的一本超级好书:android软件安全与逆向分析. 不够这本书需要一定的android基础.现在我们知道dex文件便是android设备最终可执行的文件 那么我们的ADT是如何生成dex文件的呢?下面我们直接看代码.
- ADT编译android项目源码
- 分析代码后得出的完整命令如下
- //调用java执行dx.jar
- java
- //设定内存限制 举个例子 如下
- -Xmx512M -Xmz256M
- //调用 dx.jar
- -jar dx.jar
- //编译dex文件选项
- --dex
- //指定编译完成后的文件输出
- --outpath=D:/out/outdex.dex
- //启动类的模版类
- AppEntry_release.jar
- //资源ID所在的类 就是R.java(R.class文件)
- resource.jar
- //运行时类
- android/lib/runtimeClasses.jar
- //下面的ANE类库
- FlashRuntimeExtensions.jar
- [add ane is jar ]
复制代码 到现在,应该对整个编译源码过程有了大致的了解.
执行完这个函数后 会生成一个dex文件 用于下一步:打包APK
本文来自:http://shadowkong.com/archives/1460
|