Android多渠道打包实现不同的功能模块
2016-04-28 15:37
791 查看
个人观点:学习重在积累,每天一点积累,你成为大神就更进了一步,好了我就不装逼了。
相关博客:
http://www.cnblogs.com/0616–ataozhijia/p/4203997.html
/article/1538551.html
大家一起来看看这样一个需求:项目需要打包成有支付功能的和没有支付功能的。肯定就会想到多渠道打包,想到多渠道打包自然就会用到
首先你必须在
这里的
然后在你项目的
推荐做法:
为啥要加
记得添加:
注意你需要打
最关键的一步,既然我们在
如:
好了,如果你有更好的方案,请给我留言。
相关博客:
http://www.cnblogs.com/0616–ataozhijia/p/4203997.html
/article/1538551.html
大家一起来看看这样一个需求:项目需要打包成有支付功能的和没有支付功能的。肯定就会想到多渠道打包,想到多渠道打包自然就会用到
Umeng的多渠道打包,那么在渠道下面又怎么实现功能控制呢?于是我就想啊….xxx于是乎,我有了这样一个思路。
首先你必须在
AndroidManifest.xml中的
meta-data修改以下的样子:‘
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" /> </application>
这里的
android:name你可以随意命名,如
android:name="KOOL_POS"。
android:value的值就多个
${},如
android:value="${KOOL_POS_VALUE}"。
然后在你项目的
gradle中添加多渠道:
productFlavors { baidu {} taobao {} qq {} }
推荐做法:
productFlavors { baidu { applicationId "com.github.ws.baidu" } taobao { applicationId "com.github.ws.taobao" } qq { applicationId "com.github.ws.qq" } }
为啥要加
applicationId呢,是为了防止多渠道打包不会覆盖安装。
记得添加:
productFlavors.all { flavor -> flavor.manifestPlaceholders = [KOOL_POS_VALUE: name] }
注意你需要打
baidu的包,请把
name改成
"baidu"。如:
flavor.manifestPlaceholders = [KOOL_POS_VALUE: "baidu"],其他的同理。
最关键的一步,既然我们在
AndroidManifest.xml中配置了
meta-data,那么就可以在
Java代码中获取
meta-data信息,就可以知道是打谁的包呢。
如:
try { ApplicationInfo info = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); String value = info.metaData.getString("UMENG_CHANNEL"); switch (value) { case "baidu": //处理 baidu 打包功能模块 break; case "taobao": //处理 taobao 打包功能模块 break; case "qq": //处理 qq打包功能模块 break; default: } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); }
好了,如果你有更好的方案,请给我留言。
相关文章推荐
- Android M(6.0) 权限解决方案
- android surfaceview自定义视频播放器横竖屏切换总结
- Android知识梳理之自定义View
- Android4.0以后监听Home键
- Android 软引用(SoftReference)与LruCache
- Android前台界面之详解TextView内容任意长度的伸缩、显示与隐藏
- android intent 传递list或者对象
- Android 内存分析命令
- Android M(6.0) 权限解决方案
- Android onTouch事件解析
- Android Studio如何设置代码自动提示
- 专访包建强:为什么我说Android插件化从入门到放弃?
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- 初始化PopupWindow Caused by: android.view.WindowManager$BadTokenException:
- Android——消息机制
- 解决 Bitmap too large to be uploaded into a texture exception
- Android图片处理:识别图像方向并显示
- 直接应用项目中的Android图片缓存技术
- Android--高效地加载大图片
- Android中使用DownloadManager类来管理数据下载的教程