Android多渠道打包

产品每次发布,都需要打很多渠道的包。之前用per脚本打包,后来添加了自定义空间属性后,就不能打了。Ant脚本打包又嫌麻烦,引用的工程太多。最后想到一个办法就是反编译。

原理:每个渠道的包只有AndroidManifest.xml文件中渠道的ID不一样。所以反编译APK后,修改AndroidManifest.xml的渠道ID。最后重新打包。

步骤:

1.反编译已经打好包的APK(这里只用了-s,尝试过加上-r,但是AndroidManifest.xml文件没有被反编译,就删掉了)

1 java -jar apktool.jar  d -s APK_NAME

2.修改AndroidManifest.xml文件中渠道ID

3.生成未签名的APK

1 java -jar apktool.jar  b FILE_DIR UNSIGN_APK_NAME

4.将未签名的APK进行签名

1 jarsigner -verbose -keystore KEY_FILE_NAME -storepass PASSWORD -sigalg SHA1withRSA -digestalg SHA1 -signedjar SIGN_APK UNSIGN_APK ALIAS_NAME

5.将签名的APK进行优化

1 zipalign -v 4 SIGN_APK ZIPALIGN_APK

新的APK就生成了。以上步骤需要配置好JDK和SDK环境变量。

可以自己写一个java代码,循环替换渠道ID,就可以自动生成对应渠道包了

简略的写了个多渠道打包工具。可以猛戳这里进行下载。使用方法参见下载包里面的README.txt文件

时间: 2024-09-30 18:50:14

Android多渠道打包的相关文章

Android 多渠道打包方式详解

Android 多渠道打包方式详解 面试的时候,如果面试官突然问到:你们渠道包是怎么打的?如果你说是用gradle一个一个编译的,然后他很鄙视的说这个效率太低啦,你们写过什么脚本自己打渠道包没?你肯定心里想,卧槽,这么狂炫吊炸天,自己写脚本打包?!其实这个根本也不是太难啦!!今天就来聊聊多渠道打包的原理以及如何自己DIY多渠道打包的工具! 渠道包出现 当一个产品到发版的时候,我们搞Android的就会面临一个超级尴尬的问题:国内这么多的渠道,渠道统计是必须做滴,那么十多个主要渠道再加无限量的地推

Gradle实战:Android多渠道打包方案汇总

查看原文:http://blog.csdn.net/u010818425/article/details/52319382 Gradle实战系列文章: <Gradle基本知识点与常用配置> <Gradle实战:不同编译类型的包同设备共存> <Gradle实战:发布aar包到maven仓库> <Gradle实战:执行sql操作hive数据库> 本文将延续之前几篇博客的风格,先从基本概念入手,这有助于我们对后文的理解: 在后续的代码中如果忘了某个概念的具体意义,

Android 多渠道打包方案

常规Build 我们先来回顾一下通过Ant或者Gradle进行多渠道批量打包,通常是在AndroidManifest中配置: <meta-data android:name="CHANNEL" android:value="xxx" /> meta-data通过配置value来动态改变渠道名称,然后我们可以在代码中这样去获取Channel private String getChannelNameFromManifest(){ try { return

Android多渠道打包:极简实现方法

做安卓开发多年,总是在产品业务功能上兜兜转转,近来终于在了一个App完整的全流程开发体验:不仅是业务功能的开发,更介入到了App推广技术的领域,包括安装包快速下载.免填邀请码安装.排重防盗刷等等,对App推广技术的了解,让我感触很深,认识到产品业务功能再好,推广运营能力不行,也会在市场上举步维艰. 在对app推广技术的了解过程中,我发现了一款不错的安卓多渠道打包工具openinstall,它有几个优点值得称道,我在此推荐给大家.它的几个优点是: 优点一,首先是免费的: 优点二,openinsta

android 多渠道打包

1.packerNg 式打包 Android应用使用的APK文件就是一个带签名信息的ZIP文件,根据 ZIP文件格式规范,每个ZIP文件的最后都必须有一个叫 Central Directory Record 的部分,这个CDR的最后部分叫"end of central directory record",这一部分包含一些元数据,它的末尾是ZIP文件的注释.注释包含Comment Length和File Comment两个字段,前者表示注释内容的长度,后者是注释的内容,正确修改这一部分不

Android 多渠道打包验证

原文链接:http://my.oschina.net/aibenben/blog/373596 作者自己编写了java验证脚本 使用VeidyapkTol.zip,在c盘根目录解压,会有两个文件夹,把你要验证的apk放到apk文件夹,然后打开apkTol文件夹里面,直接双击test.bat,OK! VeidyapkTol.zip 在文件目录下即可下载

android studio 多渠道打包

第一就是配置:在项目的build.gradle里面配置  先上图,再上代码. 第二步,就是打包.(网上有介绍用命令打包,可是我这人太懒,发现了个小窍门,直接在android studio 里面进行.)上图(另外,后面我还是补上了gradle命令打包的介绍.大家可以看看http://my.oschina.net/aibenben/blog/370985) 如果没有keystore,先创建一个,默认为.jks文件,一样的. 大家这里创建完后,可以再回头看看前面配置的build.gradle里面sig

Gradle实现的两种简单的多渠道打包方法

Android多渠道打包Gradle多渠道打包友盟多渠道打包productFlavors 本来计划今天发Android的官方技术文档的翻译——<Gradle插件用户指南>的第五章的,不过由于昨天晚上没译完,还差几段落,所以只好推后了. 今天就说一下使用Gradle进行类似友盟这样的多渠道打包的方法吧. 本文原创,转载请注意在CSDN上的出处: http://blog.csdn.net/maosidiaoxian/article/details/42000913 目前我掌握的方法有两种,都非常简

Android 新一代多渠道打包神器

关于作者: 李涛,腾讯Android工程师,14年加入腾讯SNG增值产品部,期间主要负责手Q动漫.企鹅电竞等项目的功能开发和技术优化.业务时间喜欢折腾新技术,写一些技术文章,个人技术博客:www.ltlovezh.com . ApkChannelPackage是一种快速多渠道打包工具,同时支持基于V1和V2签名进行渠道打包.插件本身会自动检测Apk使用的签名方法,并选择合适的多渠道打包方式,对使用者来说完全透明. Github地址: https://github.com/ltlovezh/Apk