内容简介:多渠道打包
Gradle 简单配置多渠道打包。 转载请声明出处 。
这段时间,公司项目集成了第三方行为分析SDK,并且希望对各个渠道的信息做一些统计,这就必然会设计到多渠道打包。
多渠道打包思路其实也很简单,通过 Gradle 配置修改 Manifest 中 meta-data 的值,这样打包生成的多个包中 meta-data 就可以不一样,在代码中获取到不同的 meta-data 值,由此来区分不同的渠道。
1.配置 Gradle
在项目主工程的 build.gradle 中,添加如下配置:
android {
productFlavors {
xiaomi {
manifestPlaceholders = [CHANNEL_VALUE: "xiaomi"]
}
tencent {
manifestPlaceholders = [CHANNEL_VALUE: "tencent"]
}
baidu {
manifestPlaceholders = [CHANNEL_VALUE: "baidu"]
}
...
}
这里的 CHANNEL_VALUE 是后面 Manifest 中对应的值。如果一个项目要在 meta-data 中配多个参数,每增加一个渠道难免会多写很多行代码,可以参考下面的简便写法:
android {
productFlavors {
xiaomi {}
tencent {}
baidu {}
...
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
}
}
这样写可以直接把 productFlavors 的 name 配到 meta-data 中。
2.配置 Manifest
在 Manifest 的 application 下配置 meta-data ,如下:
<application
android:name="..."
android:icon="..."
android:label="...">
<meta-data
android:name="channel_value"
android:value="${CHANNEL_VALUE}" />
<activityandroid:name="..."
android:label="..." />
...
</application>
这里的 CHANNEL_VALUE 就会被赋值为上面 gradle 中配的 name(CHANNEL_VALUE: name),而 channel_value 可以在 java 中获取到。
3.获取 meta-data 值
在 java 中可以获取到 meta-data 配置的值,通过这个值,我们就可以区分不同的渠道信息了。
String channelValue = "";
try {
ApplicationInfo appInfo = getPackageManager().getApplicationInfo(getPackageName(),
PackageManager.GET_META_DATA);
channelValue = appInfo.metaData.getString("channel_value");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
以上所述就是小编给大家介绍的《多渠道打包》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Android 多渠道打包配置
- Walle —— Android多渠道打包神器
- App 多渠道打包及重签名方案
- Android美团多渠道打包Walle集成
- 美团多渠道打包工具Walle源码解析
- Android官方多渠道方案详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning ASP.NET 4 in C# and Vb
Imar Spaanjaars / Wrox / 2010-3-19 / GBP 29.99
This book is for anyone who wants to learn how to build rich and interactive web sites that run on the Microsoft platform. With the knowledge you gain from this book, you create a great foundation to ......一起来看看 《Beginning ASP.NET 4 in C# and Vb》 这本书的介绍吧!