android多lib库工程的自动批量构建--准备
打包这个活儿吧,本来没什么技术含量,千篇一律的更改渠道名称,然后编译,签名即可。但是如果发布渠道比较多的话,这种重复工作让人烦不胜烦。我们的应用发布渠道有30多个,若是手工打包,基本不用做其他的事情了。一个优秀的程序员,要持续的为改进和自动化而努力。今天我们来搞一搞自动化打包,后面陆续给出批量自动打包(自动更改渠道名称)
使用工具:Ant (点我下载)
准备:配置Java环境,配置Ant环境 (限于篇幅,不在赘述)
测试项目描述:
建立三个工程。主工程testAutobuild ,两个lib库,分别为testLibOne, testLibTwo 。三个项目的依赖关系为。

在主工程的界面上,将打印来自库1和库2的资源文件,以及来自库1和库2的代码文件,目的就是检测我们的自动打包是否成功,否则的话,程序会因为找不到文件而崩溃。

三个工程的代码非常简单,后面给出附件。
打包工程创建:
为了和android工程分开,单独新建一个java项目,编写ant脚本来完成应用程序的自动打包。
注意,只是完成自动构建,批量构建会在后面的文章中介绍。

自动构建工程的目录非常简单,仅有三个文件。build.properties存放的是通用配置,auto-build.properties存放项目配置,下一篇文章会介绍。
自动构建流程:

对流程和项目结构大致了解后,我们开始动手编码。
原文链接:http://www.67tgb.com/?p=629
转载注明:望月听涛
android多lib库工程的自动批量构建--准备的更多相关文章
- android多lib库工程的自动批量构建--编写ant脚本
基本配置--build.properties 首先编写基本配置build.properties ,主要配置如下: android sdk所在目录 编译项目所使用的项目版本 Jdk所在目录 以及签名时, ...
- android studio依赖库工程Activity显示问题及库工程设置
android studio引用库工程其实不难,直接添加依赖module即可,但是我在操作过程中出现一些奇怪的问题,苦扰我一整天,为了祭奠这苦命的一天特别mark一下. 首先描述一下我的错误现象: s ...
- Android so lib库远程http下载和动态注册
一.背景 在开发Android应用程序的实现,有时候需要引入第三方so lib库,但第三方so库比较大,例如开源第三方播放组件ffmpeg库, 如果直接打包的apk包里面, 整个应用程序会大很多.经过 ...
- 如何把一个android工程作为另外一个android工程的lib库
http://zhidao.baidu.com/question/626166873330652844 一个工程包含另一个工程.相当于一个jar包的引用.但又不是jar包反而像个package 在网上 ...
- [Android Pro] Android 4.1 使用 Accessibility实现免Root自动批量安装功能
reference to : http://www.infoq.com/cn/articles/android-accessibility-installing?utm_campaign=info ...
- 新建Android工程没有自动生成R.JAVA,应该先升级下ADT
前几天非常郁闷,本来计划在Android上做个小东西,结果打开Eclipse新建工程,发现居然没有R.JAVA! 反复测试很多次,均未成功,最后试着升级了下ADT,结果搞定,在这里记下,下次遇到这样的 ...
- android 如何添加第3方lib库到kernel中
注意:只能将lib库放在kernel编译到的地方,如下: alps/kernel/ alps/mediatek/custom/common/kernel/ alps/mediatek/custom/$ ...
- android项目引入第三方库工程出现的问题及解决方案
一.导入libar库工程 1.使用第三方库工程libary,基本上都是从github上下载,解压后里面有个libary文件夹 2.将libary导入到eclipse中,步骤如下 1)在eclipse包 ...
- Keil工程Lib库文件的制作和运用
最近看了百度手环开源项目,发现所有的算法都被封装成了一个lib文件在keil中调用 也是第一次学习到. 问题引出:为什么要做成lib库? 1.有些方案公司为了将自己写的关键部分源代码不进行公开,但是同 ...
随机推荐
- Python DB
#!/usr/bin/python #_*_ coding:utf-8 _*_ import MySQLdb import time import threading import random fr ...
- debian的甘特图工具
sudo apt-get install planner
- postman 获取时间戳的方法 和md5加密的方法
获取时间戳方法: postman.setGlobalVariable("timestamp",Math.round(new Date().getTime())); 这整句是获取 ...
- httpclient的几种请求URL的方式
一.httpclient项目有两种使用方式.一种是commons项目,这一个就只更新到3.1版本了.现在挪到了HttpComponents子项目下了,这里重点讲解HttpComponents下面的ht ...
- 6.9-JDBC
一.JDBC 步骤: 1.加载驱动 2.创建连接 3.创建Statement或PreparedStatement 4.遍历结果集 5.释放资源 二.PrepareStatement sql注入: Pr ...
- Autofac log4net Integration Module
log4net Integration Module While there is no specific assembly for log4net support, you can easily i ...
- instr 函数从后往前计数 instr(spell,' ',-1)
update CY set last=substr(spell,instr(spell,' ',-1));
- FTP和TCP、UDP
应用:TFTP客户端 1. TFTP协议介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议) 是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文 ...
- OpenCL 图像卷积 1
▶ 书上的代码改进而成,从文件读入一张 256 阶灰度图,按照给定的卷积窗口计算卷积,并输出到文件中. ● 代码,使用 9 格的均值窗口,居然硬读写 .bmp 文件,算是了解一下该文件的具体格式,留作 ...
- LUA 表排序
t = { [] = , [] = , [] = } for k, v in pairs(t) do--注意这个输出顺序是没有规律的!!! print(k, v) end local keys = { ...