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 ...
随机推荐
- [JQuery]ScrollMe滚动特效插件
最近考完试,一切顺利,昨晚闲着无聊把最近要用的一个插件翻译了一下:ScrollMe. (╯‵□′)╯︵┻━┻地址请戳: /* ScrollMe -李明夕翻译(╯‵□′)╯︵┻━┻ */ ScrollM ...
- Get MAC address using POSIX APIs
#include <stdio.h>#include <unistd.h>#include <netdb.h>#include <arpa/inet.h> ...
- 如何为 smartraiden 贡献代码
如何为 smartRaiden 贡献代码 1.Fork 项目 登录 github 账号,并访问https://github.com/SmartMeshFoundation/SmartRaiden,然后 ...
- [ActionScript 3.0] 通过BitmapData将对象保存成jpg图片
此方法需要用到JPGEncoder.as和BitString.as这两个类,是将BitmapData对象转换成ByteArray,然后通过FileStream把此ByteArray写入到文件保存成jp ...
- web渗透-sql注入
何为sql注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,得到想要得到的信息. OWASPTop 10 此处的注 ...
- js导出页面的表格到excel(NB的大神洗了好几个,挑一个记下来)
var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.in ...
- js数组的常用操作
数组合并 var arr=[1,"abc","张三","122"]; var b=["今天天气不错","适合学 ...
- 海思hi35xx 开发学习(3):视频输入
视频输入(VI)模块实现的功能:通过 MIPI Rx(含 MIPI 接口.LVDS 接口和 HISPI 接口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口接收视频数据.V ...
- Qt for android运行时出错 Error: Target id 'android--1' is not valid
[提问]windows7下Qt for android运行时出错 Error: Target id 'android--1' is not valid[复制链接] 上一主题下一主题 离线yijun ...
- 数据库表的约束constraints
数据库表的约束constraints 数据完整性约束 表的数据有一定的取值范围和联系,多表之间的数据有时也有一定的参照关系. 在创建表和修改表时,可通过定义约束条件来保证数据的完整性和一致性. 约束条 ...