友盟渠道打包工具主要是提供基本的通过工程源码打包的功能。
常见错误见这里目前不支持的Apk特性见这里(可能会导致发布的SDK产生严重bug)。
Google 现在已经发布了最新的构建系统(New Building System) , 在 Android Studio 中已经支持了最新的 构建系统,如果开发者已经迁移,可以使用新的系统方面的生成渠道包,这是取代渠道打包工具的最佳方式。
工程结构图 :
- CommonTools 共用的工具类,包括对 `Apktool` , `Jarsigner` , `zipalign` 的封装 - UIControls_35 共用的UI类,对大部分控件的样式都是在这里设置的 - UmengMarket Marekt 组件,现在还没有实现 - UmengPackage 打包组件 - UmengTools 工程主要UI,管理 UmengMarket, UmengPackage, UmengTools 三个组件 - UmengWidget 小工具组件,目前仅有解包分析的功能
打包工具组件:
- Source - Builder - ApkBuilder.cs 通过 APK 打包的 Builder 实现 - Builder.cs 抽象 Builder 类,提供打包的主要逻辑 - SourceBuilder.cs通过源码打包的 Builder 实现 (目前代码还没有实现) - Worker.cs 打包过程对外接口
V2.0 版本仅实现了通过 .apk
打包的方式,本质上对 apk
文件进行反编译,修改 AndroidManifest.xml
文件后,再重新打包,我们使用的工具是开源的拆包工具 Apktool
将 apktool
添加到当前 process
的环境变量
执行 apktool d --no-src -f xxxx.apk temp
拆解apk
替换或者添加 AndroidManifest.xml
中的 友盟channel
执行apktool b temp unsigned.apk
重新打包apk
执行 SignApk.jar
生成签名后的 apk 文件
执行 zipAlign
生成对齐优化后的 apk 文件
回到 3 替换新的渠道
完成打包
使用 JarSigner.jar 给 Apk 签名, SignApk.jar
文件是我们修改过的 apk
签名工具,实现了和 ADT 中一样的签名方式,使用如下:
Usage: signapk file.{keystore} keystore_password key_entry key_password input.apk output.apk
为什么需要这个工具 1、国内应用市场繁多,上线的apk应用需要知道自己在哪个渠道下载的; 2、简直是急速啊:5M的apk,1秒种能打300个; 3、因为是急速,可以做网页下载时动态打渠道包功能(如:分享apk给好友,好友下载打开apk后直接计算准确的分享量); 该工具的原理 利用的是Zip文件“可以添加comment(摘要)”的数据结构特点,在文件的末尾写入任意数据,而不用重新解压zip文件(a
现在随着友盟这类统计工具在项目中集成,根据不同渠道打不同的APK包也成为日常工作之一。神马?你还在手动改渠道号一个一个打包?!那你一定是个非常勤奋的程序员- -!正好尝试使用Android Studio,稍微了解了下Android Studio的使用的构建工具:Gradle。 什么是Gradle 你可以看一下Gradle主页。 简单来说,Gradle是一个自动化编译部署测试工具。Gradle内容很
国内Android应用下载有360、小米、豌豆荚、百度等等非常多的渠道, 如果我们想统计每个渠道的下载量和活跃度,就需要使用统计平台. 我们以友盟统计为例,介绍如何配置渠道信息并执行自动化打包. 1.在AndroidMainfest.xml配置可动态替换的渠道参数 友盟集成文档中有说明,使用友盟统计需要在AndroidMainfest.xml配置相应的渠道号: <meta-data andro
我们在日常开发中多多少少都会遇到多渠道打包的情况。这些版本可能会上传到不同的应用市场,也可能是是线下多渠道推荐。有时候可能不同的渠道使用的资源图片都不一样。古老的做法就是,需要打多少个渠道包拉出多少份代码分支,分别替换对应的资源文件和包名配置信息等。这种做法非常的耗时耗力。Gradle 可以帮我们用一份代码通过配置实现打出所有的渠道包。 1. 创建多渠道资源文件目录 首先,我们新创建一个工程,然后
本文向大家介绍Android Studio多渠道打包套路,包括了Android Studio多渠道打包套路的使用技巧和注意事项,需要的朋友参考一下 说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常开发中常用的渠道统计工具,而我们的打包方法就是基于友盟统计实施的。按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值: 上面的v
本文向大家介绍Android多渠道打包时获取当前渠道的方法,包括了Android多渠道打包时获取当前渠道的方法的使用技巧和注意事项,需要的朋友参考一下 作为Android app,发布多个分发平台是常规操作。然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码。 这里把简单的代码记一下。 首先,分渠道打包很简单。 在项目的bui
sbt 是一个简单的 Scala 项目构建工具,要求 Java 1.5 或者更高。
本文向大家介绍Android Studio多渠道打包的配置方法,包括了Android Studio多渠道打包的配置方法的使用技巧和注意事项,需要的朋友参考一下 说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常开发中常用的渠道统计工具,而我们的打包方法就是基于友盟统计实施的。按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值: 上面的value值Cha