Android多渠道打包工具
http://www.cnblogs.com/huangtianhui/archive/2012/07/14/2591382.html
鉴于Android市场众多,基于各种利益考虑,以及未来app能够更有针对性的投放市场,肯定是要监测每个渠道的数据的。
如果通过eclipse每次修改下渠道名,然后再导出包,如果有十多个渠道要分发,那就得打十多个包,这无疑是很费力的,程序员的精力不应该过多的耗费在这些琐碎重复的事情上。这些琐碎重复的事情能用机器来做最好就让机器来做。
我是一个比较懒的人,不乐意做琐碎重复的事情。几个月前,在网上找了好久,也没发现有能够进行批量多渠道打包的工具,就想着琢磨自己写一个。以前在 外包公司做测试的时候学过一些批处理命令和perl脚本,不过忘得差不多了,但是网上搜了下立马就能回忆起怎么用。经过了三四个晚上的奋战,总算是把多渠 道打包的工具给写出来了。
该工具能够对Android工程进行编译,混淆,优化,打包,Ant据说也可以,但是不会用也懒得学。我厂用的是Umeng的渠道统计,在AndroidManifest.xml文件里添加如下此句
<meta-data android:value="{qudao_tag}" android:name="UMENG_CHANNEL"></meta-data>
即可,把{qudao_tag}填写在配置文件里,工具打包时会自动替换{qudao_tag}为相应的渠道名。
已经用了好几个月了,基本上是稳定了,现在决定把它开源出来下载地址,我想还是有很多人需要的。整个工具每个脚本的执行过程如下图所示(clickMeToStartCompile是需要用户点击的,当然点击clickMeToCompile效果也一样):



混淆主要用的是eclipse自动生成的混淆脚本proguard.cfg,但发现自己做的项目用到了webview以及js调用,混淆之后js根本找不到相应的方法,于是最后加了如下这句才好了
-keep public class * extends android.app.Activity { public protected *; }
,这句其实就是声明所有activity里面的public,protected方法都不要混淆。混淆之后,反馈的错误信息室无法准确定位的,但可以根据错误反馈的方法通过混淆时生成的map找到对应源码的方法。
用命令行编译的方式对认识整个编译的过程是很有帮助的,有兴趣的可以看看下,其中还有不完善的地方,有兴趣有能力的可以帮忙改善下。
-------------------------------------
Hudson_Jenkins+SVN 配置使用手册__实验室编写
Android多渠道打包工具的更多相关文章
- Android 多渠道打包原理和使用
每次中午吃饭总会和技术同学聊天.当做 iOS 开发的做安卓开发的人员在一起的时候,他们中间又多了一个话题:iOS 开发难还是安卓开发难. 这个时候做安卓开发的同学最激动说安卓开发要自己画界面.机型复杂 ...
- 多渠道打包工具Walle源码分析
一.背景 首先了解多渠道打包工具Walle之前,我们需要先明确一个概念,什么是渠道包. 我们要知道在国内有无数大大小小的APP Store,每一个APP Store就是一个渠道.当我们把APP上传到A ...
- 更便捷的Android多渠道打包方式
本文先回顾了以往流行的多渠道打包方式,随后引入的mcxiaoke的packer-ng-plugin项目,介绍该项目在实际应用(配合友盟统计)中如何解决更方便的Android多渠道打包问题 多渠道打包方 ...
- 写你自己 android 多通道打包工具 可以包libs和.so文件
android上传应用程序,需要区分各个信道. 通常更改配置文件中的一个通道id,假设有多个通道,手动更改并生成apk这将是非常麻烦的,及增加误差的概率. 在这个课堂上分享一个打包工具.也可在网上类似 ...
- android 多渠道打包
android 多渠道打包 原理 在manifest文件中,application标签内部设置不同的metadata标签即可,可以通过java api获取这个matedata内的值 友盟提供的多渠道打 ...
- 【Android】Android多渠道打包--Gradle打包
Android多渠道打包--Gradle打包 前言 由于App一般都会在多个应用市场上架,为了分析App在每个不同渠道的具体的数据,一般都会对不同渠道打包不同的App.多渠道打包有多种方式,这里只介绍 ...
- android多渠道打包牛B工具
http://www.orchidshell.com/ 兰贝壳儿:一个Eclipse插件,为Android开发提供了多渠道打包功能和一些工具类.
- [转]安卓新一代多渠道打包工具Walle 解决渠道包V2签名问题
转自https://www.jianshu.com/p/572b59829a08 为什么要打多个渠道的包? 大家都知道,android应用商店大大小小有几百个,作为一个有志向的app,就需要做到统计各 ...
- Android自动打包工具aapt详解
概念 在Android.mk中有LOCAL_AAPT_FLAGS配置项,在gradle中也有aaptOptions,那么aapt到底是干什么的呢? aapt即Android Asset Packagi ...
随机推荐
- Middleware / 中间件
中间件格式 module.exports = options => { return (ctx, next) => { // do something } } 中间件格式为一个高阶函数,外 ...
- C,C++面试题2
面试题1:变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明.一个变量可以在多个地方声明,但是只在一个地方定义.加入extern修饰的是变量的声明,说明此变量将在文件以 ...
- C# 利用CMD命令行结束进程
public static void CmdKillProcess(int pid) { string cmdStr = string.Format("t ...
- layui与多级联动返填
<script> layui.use(['form', 'layer'], function () { $ = layui.jquery; var form = layui.form() ...
- Sublime text3!行首,行尾,批量编辑!
1.Windows下的操作操作步骤 1.Ctrl + H 2.打开正则,输入^,然后Find All,查找所有的行首 3.打开正则,输入$,然后Find All,查找所有的行尾 4.光标闪动,就可以进 ...
- idea debug 启动慢出现假死
断点设置不合理引发应用启动慢问题java idea应用启动很慢|非常慢|超级慢的问题排查! 解决关于应用启动超慢这个问题,其实两年前就已经遇到过,https://blog.csdn.net/li396 ...
- 实用的bash别名和函数
本文来自于:程序师 作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令.如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在 ...
- oracle无监听程序的解决方法(PLSQL)Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务
\PLSQL\instantclient_11_2 listener.ora # listener.ora Network Configuration File: E:\software\PLSQL\ ...
- luoguP4568 [JLOI2011]飞行路线
https://www.luogu.org/problemnew/show/P4568 题目中 k 的大小只有 10,我们可以考虑建立分层图跑最短路 相同层中 a -> b 的权值仍为 val, ...
- AtCoder Grand Contest 031题解
题面 传送门 题解 比赛的之后做完\(AB\)就开始发呆了--简直菜的一笔啊-- \(A - Colorful\ Subsequence\) 如果第\(i\)个字母选,那么它前面任意一个别的字母的选择 ...