介绍
这篇文章主要介绍Android多渠道打包时怎么获取当前渠道,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Android是什么
Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。
作为Android应用程序,发布多个分发平台是常规操作,然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码。
这里把简单的代码记一下。
首先,分渠道打包很简单。
在项目的构建。gradle里设置
android { … productFlavors { ,,,home_site { ,,,,,dimension “money" ,,,,,manifestPlaceholders =, (UMENG_CHANNEL_VALUE:“home_site") ,,,} ,,,main_store { ,,,,,dimension “money" ,,,,,manifestPlaceholders =, (UMENG_CHANNEL_VALUE:“main_store") ,,,} ,,,other_store { ,,,,,dimension “money" ,,,,,manifestPlaceholders =, (UMENG_CHANNEL_VALUE:“other_store") ,,,} ,,} }
其中的,尺寸是维度,通过,flavorDimensions设置。
defaultConfig { ,,,… ,,,flavorDimensions “money" 以前,,}>设置维度主要是为了管理方便。
这个项目里总共设置了三个渠道
其中,UMENG_CHANNEL_VALUE可以随便命的名,不过项目里的友盟统计会需要用到渠道名,所以这里就用“友盟”的命名方法了。
接下来就是获取当前的渠道名,这样就可以根据不同的渠道包设置不同的逻辑,比如设置某一模块在某些平台发布的版本隐藏,而再另一些平台的版本上显示。
首先,需要在,AndroidManifest。xml文件定义信息变量。
& lt;应用程序 ,,,android:图标=癅mipmap/logo" ,,,android:标签=癅string/app_name" ,,,android: name=?App" ,,,android: roundIcon=癅mipmap/logo" ,,,android:主题=癅style/AppTheme.NoActionBar"比; ,,,… ,,,& lt;元数据 ,,,,,android: name=癈HANNEL_NAME" ,,,,,android: value=https://www.yisu.com/zixun/" $ {UMENG_CHANNEL_VALUE} "/> 应用程序>然后就可以在应用程序或活动中获取了。
ApplicationInfo ApplicationInfo =,空; ,,,try { ,,,,,applicationInfo =, getPackageManager () .getApplicationInfo (getPackageName (),, PackageManager.GET_META_DATA); ,,,,,if (applicationInfo ==, null), { ,,,,,,,返回; ,,,,,} ,,,,,String value =, applicationInfo.metaData.getString (“CHANNEL_NAME"); ,,,,,CommonConfig.CHANNEL_NAME=价值; ,,,,,//按渠道设置差异化代码 ,,,,,System.out.println (“CHANNEL_NAME:“+价值); ,,,,,switch (值){ ,,,,,,,case “home_site": ,,,,,,,,,//逻辑1 ,,,,,,,,,休息; ,,,,,,,case “main_store": ,,,,,,,,,//逻辑2 ,,,,,,,,,休息; ,,,,,,,case “other_store": ,,,,,,,,,//逻辑3 ,,,,,,,,,休息; ,,,,,} ,,,},catch (PackageManager.NameNotFoundException e), { ,,,,,e.printStackTrace (); ,,,}以上是“Android多渠道打包时怎么获取当前渠道“这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
Android多渠道打包时怎么获取当前渠道