多渠道打包

淩亂°似流年 2022-07-17 00:28 430阅读 0赞

###多渠道打包概念

* 发布到不同渠道上的apk,标记不同的渠道,目的是为了统计该渠道的下载量,留存率等等数据
* 了解下载量
* 针对性的打广告

###渠道统计的核心
1 为apk打标记(渠道的标识)
2 运行apk的时候取出标记
3 上传标记给服务器统计

###友盟渠道统计的实现

  1. 打标记:在清单文件中的meta-data结点下配置渠道

  1. 运行apk的时候,友盟的api,会取出meta-data的渠道信息
  2. 上传渠道标记到友盟自己的服务器,用户就可以通过友盟的后台查看具体的渠道统计了

###多渠道打包的方式

  1. 一个一个分别导出
  2. ant:要求比较高,需要懂得如何编写ant脚本,但是编写好之后,执行一个命令就可以
  3. 友盟的打包工具
  4. Gradle 多渠道打包 ,比较新
  5. ,使用比较简单
  6. 快速打包

###如何选择

  1. 如果只是修改`渠道名`可以考虑用`umeng打包工具`或者`gradle多渠道打包`,其实绝大数公司情况属于此种情况;
  2. 打包过程需要`定制化的配置`,可以考虑用ant或者gradle定制打包,可以参考`http://tech.meituan.com/mt-apk-adaptation.html\`,说明的情况.
    1.自定义包名
    2.自定义签名

###umeng打包工具
####下载地址
`https://github.com/umeng/umeng-muti-channel-build-tool\`

####步骤
看具体视频

###gradle多渠道打包
####1. 在AndroidManifest.xml中定义占位符

####2. 在module的gradle脚本中替换占位符

productFlavors {
wangdoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: “wangdoujia”]
}
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: “xiaomi”]
}
anzhi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: “anzhi”]
}
}

###快速打包(1分钟打900个渠道包,不是梦)

####参考网址:

http://www.open-open.com/lib/view/open1418262988402.html
http://tech.meituan.com/mt-apk-packaging.html 美团自动化之旅

####准备

下载python: https://www.python.org
下载别人写好的脚本: https://github.com/GavinCT/AndroidMultiChannelBuildTool

####步骤

  1. 安装Python
  2. `..PythonTool\info\channel.txt`,里面去添加自己想要的渠道
  3. 放置apk到`MultiChannelBuildTool.py`所在目录
  4. 双击`MultiChannelBuildTool.py`执行脚本,完成多渠道打包;
  1. 拷贝`ChannelUtil.java`到项目中
  2. 代码设置渠道`AnalyticsConfig.setChannel(ChannelUtil.getChannel(this));`

###新一代Android渠道打包工具:1000个渠道包只需要5秒

* 参考:http://www.open-open.com/lib/view/open1453684213136.html(新一代Android渠道打包工具:1000个渠道包只需要5秒)

####步骤
1.修改项目根目录的 build.gradle

buildscript {
……
dependencies{
// add packer-ng
classpath ‘com.mcxiaoke.gradle:packer-ng:1.0.4’
}
}

2.修改Android模块的 build.gradle

apply plugin: ‘packer’

dependencies {
// add packer-helper
compile ‘com.mcxiaoke.gradle:packer-helper:1.0.4’
}

3.Java代码中获取当前渠道(在应用程序启动的时候),在Application子类中的onCreate()方法中

public class MyApplication extends Application {
@Override
public void onCreate() {//程序的入口方法
….
// 如果没有使用PackerNg打包添加渠道,默认返回的是””
// com.mcxiaoke.packer.helper.PackerNg
final String market = PackerNg.getMarket(this);
// 或者使用 PackerNg.getMarket(Context,defaultValue)
// 之后就可以使用了,比如友盟可以这样设置
AnalyticsConfig.setChannel(market);
….
}
}
4.添加打包的签名,可以通过图形界面添加

signingConfigs {
//add
config {
keyAlias ‘itheima’
keyPassword ‘itheima’
storeFile file(‘C:/itheima.jks’)
storePassword ‘itheima’
}
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’

//add
signingConfig signingConfigs.config
}
}
5.创建markets.txt放到根目录,#号后面是注释,可有可无

Google_Play#play store market
Gradle_Test#test
SomeMarket#some market
HelloWorld

  1. 通过命令进行打包

gradle -Pmarket=markets.txt clean apkRelease

7.效果

发表评论

表情:
评论列表 (有 0 条评论,430人围观)

还没有评论,来说两句吧...

相关阅读

    相关 多渠道打包

    多渠道打包的本质:在APK的内部加标识 多渠道打包的本质:在APK的内部加标识 多渠道打包目的:是为真实了解我们在不同分发市场的下载量,

    相关 Android多渠道打包实践

    今天来和大家分享的内容是在AS下实现多渠道打包。关于如何打包APK的流程以及如何生成keystore或者jks文件本篇博客不会涉及。 首先,在我们要上线App的最后一步就是打

    相关 多渠道打包

    \\\多渠道打包概念 >\ 发布到不同渠道上的apk,标记不同的渠道,目的是为了统计该渠道的下载量,留存率等等数据 >\ 了解下载量 >\ 针对性的打广告

    相关 android多渠道打包

    美团多渠道打包以快出名,早有耳闻,但总觉得神龙见首不见尾,大多文章都是讲原理的东西,却始终难懂到底怎么样用,今天就以初学者的姿态一边探索,一边总结,也希望能帮住大家少走写冤枉路