打包这个活儿吧,本来没什么技术含量,千篇一律的更改渠道名称,然后编译,签名即可。但是如果发布渠道比较多的话,这种重复工作让人烦不胜烦。我们的应用发布渠道有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库工程的自动批量构建--准备的更多相关文章

  1. android多lib库工程的自动批量构建--编写ant脚本

    基本配置--build.properties 首先编写基本配置build.properties ,主要配置如下: android sdk所在目录 编译项目所使用的项目版本 Jdk所在目录 以及签名时, ...

  2. android studio依赖库工程Activity显示问题及库工程设置

    android studio引用库工程其实不难,直接添加依赖module即可,但是我在操作过程中出现一些奇怪的问题,苦扰我一整天,为了祭奠这苦命的一天特别mark一下. 首先描述一下我的错误现象: s ...

  3. Android so lib库远程http下载和动态注册

    一.背景 在开发Android应用程序的实现,有时候需要引入第三方so lib库,但第三方so库比较大,例如开源第三方播放组件ffmpeg库, 如果直接打包的apk包里面, 整个应用程序会大很多.经过 ...

  4. 如何把一个android工程作为另外一个android工程的lib库

    http://zhidao.baidu.com/question/626166873330652844 一个工程包含另一个工程.相当于一个jar包的引用.但又不是jar包反而像个package 在网上 ...

  5. [Android Pro] Android 4.1 使用 Accessibility实现免Root自动批量安装功能

    reference to  :  http://www.infoq.com/cn/articles/android-accessibility-installing?utm_campaign=info ...

  6. 新建Android工程没有自动生成R.JAVA,应该先升级下ADT

    前几天非常郁闷,本来计划在Android上做个小东西,结果打开Eclipse新建工程,发现居然没有R.JAVA! 反复测试很多次,均未成功,最后试着升级了下ADT,结果搞定,在这里记下,下次遇到这样的 ...

  7. android 如何添加第3方lib库到kernel中

    注意:只能将lib库放在kernel编译到的地方,如下: alps/kernel/ alps/mediatek/custom/common/kernel/ alps/mediatek/custom/$ ...

  8. android项目引入第三方库工程出现的问题及解决方案

    一.导入libar库工程 1.使用第三方库工程libary,基本上都是从github上下载,解压后里面有个libary文件夹 2.将libary导入到eclipse中,步骤如下 1)在eclipse包 ...

  9. Keil工程Lib库文件的制作和运用

    最近看了百度手环开源项目,发现所有的算法都被封装成了一个lib文件在keil中调用 也是第一次学习到. 问题引出:为什么要做成lib库? 1.有些方案公司为了将自己写的关键部分源代码不进行公开,但是同 ...

随机推荐

  1. 黄聪:[C#]如何获取变量的名字,不是值,是名称。返回名字的字符串

    找了好久,最后在国外的论坛找到了解决办法,直接贴代码吧. 方法一: public static class MemberInfoGetting { public static string GetMe ...

  2. bzoj 3119: Book

    Description Wayne喜欢看书,更喜欢买书.某天Wayne在当当网上买书,买了很多很多书.Wayne有一个奇怪的癖好,就是第一本书的价格必须恰为X,而之后买的每一本书,若是比上一本更昂贵, ...

  3. appium -ios-安卓 获取元素时 配置参数的方法

    iPhone_5S{ "automationName": "XCUITest", "platformName": "iOS&quo ...

  4. ddt数据驱动

    数据驱动原理 1.测试数据为多个字典的list类型 2.测试类前加修饰@ddt.ddt 3.case前加修饰@ddt.data() 4.运行后用例会自动加载成三个单独的用例 5.测试结果: Testi ...

  5. CFGym 101490J 题解

    一.题目链接 http://codeforces.com/gym/101490 二.题面 三.题意 给你n个点,代表学生所在位置,n个点,代表老师所在位置.每个学生分配一个老师.让你找出一个最小的学生 ...

  6. pythonNet day04

    本地套接字 作用:用于本地不同程序间的进行数据传输 本地套接字的创建流程 1.创建套接字对象 sockfd = socket(AF_UNIX,SOCK_STREAM) 2.绑定本地套接字文件,如果文件 ...

  7. findbug、p3c、checkstyle、sonar安装使用

    idea插件安装方式: Preferences—>Plugins—>查找插件—>Install Preferences—>Plugins—>Install plug fr ...

  8. 《GB/T 20988-2007:信息系统灾难恢复规范》[中](国家质检总局 & 国标委)阅读笔记

    第 0 章:引言 [感]GB/T 20988 引用了 SHARE 78 会议(标准)上的有关内容和思想,并结合国家重要信息系统行业技术发展和实践经验制定而成. GB/T 20988 提出了信息系统灾难 ...

  9. 015年传智播客JavaEE 第168期就业班视频教程15-模块规范化

    注册功能最起码得有个用户名和密码吧. bigint相当于Java里面的Long.Long型最大的那个数字是19位,我们这里是20位,绝对够用. userName长度预留20%,让它后期可扩展.6-12 ...

  10. 19.Remove Nth Node From End of List(List; Two-Pointers)

    Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...