欢迎来到天天文库
浏览记录
ID:19154272
大小:41.50 KB
页数:16页
时间:2018-09-27
《程序载eclipse自动化生成apk的过程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、android程序载eclipse自动化生成apk的过程 从事安卓开发的人都知道,在我们写好java代码之后eclipse直接就帮我们把代码生成为APK格式的文件。apk格式就是在安卓上可以直接安装的一种格式。那么自动化的去生成个性化apk的时候,我们就需要编写脚本或代码来自动生成一个apk,在生成apk之前必须了解下android编译apk的过程; 现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统、自动生成发布文件等等。这些都需要我们对Android工程的编译和打包有一个深入的理
2、解,至少要知道它的每一步都做了什么,需要什么环境和工具,输入和输出是什么。那么我们就来挖掘一下Android的编译过程中的细节。 首先,我们假定你的系统(什么系统都行,不限于Linux还是Windows系统,当然,我在这里默认使用Linux系统来举例子,但在Windows中几乎没有什么差别)已经安装了JDK和AndroidSDK。再假定你的AndroidSDK的路径是ANDROID_SDK_HOME,你想要编译的AndroidOS版本是ANDROID_OS_VERSION(比如android-1.6、andro
3、id-8、android-10等)。 我们重点关心的是(1)这个过程的输入是什么?(2)这个过程的输出是什么?(3)这个过程使用了什么工具?至于使用什么参数,可以自己去看对应命令的帮助文件,或者在网上搜索,这不是本文的重点。 步骤中提到的工具如下表:名称功能介绍在操作系统中的路径aaptAndroid资源打包工具${ANDROID_SDK_HOME}/platform-tools/apptaidlAndroid接口描述语言转化为.java文件的工具${ANDROID_SDK_HOME}/platform-to
4、ols/aidljavacJavaCompiler${JDK_HOME}/javac或/usr/bin/javacdex转化.class文件为DavikVM能识别的.dex文件${ANDROID_SDK_HOME}/platform-tools/dxapkbuilder生成apk包${ANDROID_SDK_HOME}/tools/opkbuilderjarsigner.jar文件的签名工具${JDK_HOME}/jarsigner或/usr/bin/jarsignerzipalign字节码对齐工具${ANDRO
5、ID_SDK_HOME}/tools/zipalign 第一步:打包资源文件,生成R.java文件 【输入】Resource文件(就是工程中res中的文件)、Assets文件(相当于另外一种资源,这种资源Android系统并不像对res中的文件那样优化它)、AndroidManifest.xml文件(包名就是从这里读取的,因为生成R.java文件需要包名)、Android基础类库(Android.jar文件) 【输出】打包好的资源(一般在Android工程的bin目录可以看到一个叫resources.ap_
6、的文件就是它了)、R.java文件(在gen目录中,大家应该很熟悉了) 【工具】aapt工具,它的路径在${ANDROID_SDK_HOME}/platform-tools/aapt(如果你使用的是Windows系统,按惯例路径应该这样写:%ANDROID_SDK_HOME%platform-toolsaapt.exe,下同)。 第二步:处理AIDL文件,生成对应的.java文件(当然,有很多工程没有用到AIDL,那这个过程就可以省了) 【输入】源码文件、aidl文件、framework.aidl文件 【
7、输出】对应的.java文件 【工具】aidl工具 第三步:编译Java文件,生成对应的.class文件 【输入】源码文件(包括R.java和AIDL生成的.java文件)、库文件(.jar文件) 【输出】.class文件 【工具】javac工具 第四步:把.class文件转化成DavikVM支持的.dex文件 【输入】.class文件(包括Aidl生成.class文件,R生成的.class文件,源文件生成的.class文件),库文件(.jar文件) 【输出】.dex文件 【工具】javac工具
8、 第五步:打包生成未签名的.apk文件 【输入】打包后的资源文件、打包后类文件(.dex文件)、libs文件(包括.so文件,当然很多工程都没有这样的文件,如果你不使用C/C++开发的话) 【输出】未签名的.apk文件 【工具】apkbuilder工具 第六步:对未签名.apk文件进行签名 【输入】未签名的.apk文件 【输出】签名的.apk文件 【工具】j
此文档下载收益归作者所有