欢迎来到天天文库
浏览记录
ID:30502985
大小:94.38 KB
页数:15页
时间:2018-12-30
《app自动化之使用ant编译项目多渠道打包》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、App自动化之使用Ant编译项目多渠道打包 随着工程越来越复杂,项目越来越多,以及平台的迁移(我最近就迁了2回),还有各大市场的发布,自动化编译android项目的需求越来越强烈,后面如果考虑做持续集成的话,会更加强烈。 经过不断的尝试,在ubuntu环境下,以花界为例,我将一步一步演示如何使用命令行,使用ant编译android项目,打包多渠道APK。 要点: (1).编译android的命令使用 (2).ant基本应用 (3).多项目如何编译(包含androidlibrary) (4).如何多渠道打包 ps:我将以最原始的方式来实现,而不是使用andr
2、oid自带的ant编译方式,并尽量详细解释,这样有益于我们彻底搞懂android打包的基本原理。1.Android编译打包的整体过程 使用ant,ant的参考文档:http://ant.apache.org/manual/index.html 首先,假设现在已经有这样的一个项目(多工程的,简单的单工程就更简单了):world├──baseworld //androidlibrary,基础类库,共享于其他主应用├──floworld //androidproject,花界应用├
3、──healthworld //androidproject,健康视线应用├──speciality //androidproject,其它应用├──starworld //androidproject,其它应用├──build.xml //ant编译脚本,可用于整个项目的编译,也可只编译某个工程├──code_checks.xml├──kaiyuanxiangmu_world.keys
4、tore //密钥└──README.md 一个大的项目world,下面有1个基础AndroidLibrary和4个AndroidProject。我们要做的就是编译这4个人project成对应的一系列各市场APK。 那么我们在来看看baseworld和floworld的工程结构: AndroidLibrary,baseworld:baseworld├──assets //assets目录,其中文件可能会被主应用覆盖├──libs //存放第三方ja
5、r库├──res //类库资源,其中文件可能会被主应用覆盖├──src //源码,可直接供主应用使用├──AndroidManifest.xml├──lint.xml├──proguard.cfg├──project.properties└──README.md 和AndroidProject,floworld:floworld/├──assets //assets目录,主应用优先级高├──build
6、├──data├──libs //存放第三方jar库├──res //主应用资源,主应用优先级高├──src //源码,可直接供主应用使用├──AndroidManifest.xml├──build.xml //ant编译脚本,可用于整个项目的编译,也可只编译某个工程├──default.properties├──lint.xml├──proguard
7、.cfg├──project.properties└──README.md 结构已经出来了,那么android打包主要是在做什么? 说白了,先编译java成class,再把class和jar转化成dex,接着打包aaset和res等资源文件为res.zip(以res.zip示例),再把dex和res.zip合并为一个未签名apk,再对它签名,最终是一个带签名的apk文件。 当然这么说忽略了很多细节。 下面我把这些步骤用一句话分别列举如下,脑子里先有一个整体的流程,后续再结合ant详细展开: (1).生成用于主应用的R.java;
此文档下载收益归作者所有