gradle神器~Android多渠道配置管理(1)
前言
从事Android开发六年了,对个人的工作中遇到的Android多渠道实际情况做个总结,希望能与各位同行共同交流。
背景:
个人经历的公司有B2C、O2O和B2B等等吧,不管哪种形式的平台模式,都需要把Android APP的发布到不同的应用商店,国内市场的应用商店之多不用我说,各位同行也知晓。更坑的是各大应用商店平台的要求还不一样,在此情况下怎么更好的管理Android工程代码就非常有必要,Eclipse的年代我就不多提了,下面依次递深的记录我使用gradle打包的过程
环境配置:
以后所有的文章如果不做特殊的说明,都是在此环境基础之上进行运行的
jdk: 1.80
gradle: gradle-3.3-all.zip
Android Studio3.0
工程根目录下build.gradle的设置:
dependencies { classpath 'com.android.tools.build:gradle:2.3.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }
Android多渠道常规打包:
最初形态的gradle多渠道打包现在已经烂大街了,就是为了简单的统计和区分各个应用商店平台,过多的解释也就不废话了,只需要在android代码块中添加对应的渠道名字就可以,比如要发布的应用商店 xiaomi、360、google……
1.添加渠道
添加完成后sync编译一下,在AS工具的BuildVariants可以查看当前所有的渠道:
2.必须在AndroidManifest.xml
中添加meta-data
,
android:value="${XXXX}" XXXX替换成gradle中的值,我的是CHANNEL_NAME如下所示:
<meta-data android:name="CHANNEL_TEST" android:value="${CHANNEL_NAME}" />
3. 获取AndroidManifest.xml的渠道名称:
/** * 获得channel id * @param context * @return */ public static String getMetaData(Context context, String key) { String CHANNELID = ""; try { ApplicationInfo ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); CHANNELID = ai.metaData.getString(key); } catch (Exception e) { } return CHANNELID; }
完成以上三步执行gradle assembleRelease就会打包所有的渠道包,就可以实现后台统计在指定渠道上的下载统计了。
版权声明:本文为博主原创文章,转载请标明出处。