前言
之前介绍了ADT编译air android项目的资源,接下来介绍编译源码部分,在这之前 我会贴几张图,以说明我们在FB中开始创建 air项目 到 发布APK的整个过程,现在终于开始说编译源码的问题了,这个问题我打算从最开始的android SDK编译开始说.接下来这篇文章可能有点枯燥,但是没关系,对于我这个健忘症患者来说,如果把技术写的细致才是关键. 首先最直观的方式:[/url]基本步骤应该是这样的,但是也并不绝对详细.毕竟还有ANE的各种处理,签名的各种处理,临时文件的各种处理,外部资源的各种处理等等. 可能大家看到这张图没什么感觉,但是如果我们看看APK的基本构成应该就了解了. [url=http://shadowkong.com/wp-content/uploads/2013/12/apkfile.png]随便一个APK使用压缩工具解压后就可以看到. 上图中aapt编译资源 在 第一篇 第二篇分析中已经详细介绍了.所以这篇讲的是java编译dex文件的部分.我会选择从最基本的JDK开始介绍.之所以说那么细,是由于我是一个健忘症患者. 上图提到了JRE,JRE是java JDK中的东西.是java运行库的核心部分. 在这之前还需要解释一下android原生开发的编译打包过程,首先看两张图: - JAVA的JDK与JRE与LVM结构(图来自博客在线)
ps:JRE是AIRSDK的核心承载框架. [/url] 再次披露:为什么AIR for android只支持android2.2以上? 由于在android2.2以上 google才给android引入JIT (JUST IT TIME 即时编译技术) 而AS偏偏是一种十足的即时编译语言. - 打包android原生程序流程(图来自exetype)
[url=http://shadowkong.com/wp-content/uploads/2013/12/apk.png] 与ADT打包AIR程序相比,打包android原生程序其实都做了同样的事情: aapt-javac-dx-makeapk-jarsigner-adb 编译资源-编译源码-打包APK-签名-安装 只是ADT按照adobe自家的规则自定义的封了一层膜而已.现在就让我们解开这层膜!!! 案例地址
Anti-ADT:https://github.com/recter/Anti-ADT
本文来自:http://shadowkong.com/archives/1429
|