android
来源:互联网 发布:远程服务器连接软件 编辑:程序博客网 时间:2024/05/16 08:59
我们公司是外包的公司,也是平台性质的公司,所以需要一个软件,分成不同的包来打,我就研究了下,下面是我的代码
主要在AndroidManifest.xml和build.gradle
<application android:name=".Myapplication" android:allowBackup="true" android:hardwareAccelerated="true" android:icon="${app_icon}" android:label="${app_name}" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="app_icon" android:value="${app_icon}" /> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL}" /> <meta-data android:name="app_name" android:value="${app_name}" /> <meta-data android:name="packages" android:value="${package}" /> <!-- Required . Enable it you can get statistics data with channel --> <meta-data android:name="JPUSH_APPKEY" android:value="${JPUSH_APPKEY}" /> <!-- </>值来自开发者平台取得的AppKey-->
PS:JPUSH_APPKEY:是极光的key
下面是我的build.gradle文件
android { compileSdkVersion 24 buildToolsVersion '25.0.0' useLibrary 'org.apache.http.legacy' defaultConfig { // applicationId "com.unicornhcht.hcht.unicornhcht.xql" minSdkVersion 15 targetSdkVersion 24 versionCode 16 versionName "1.1.9" multiDexEnabled true; } productFlavors { xql { // 每个环境包名不同 applicationId "你的包名1" manifestPlaceholders = [ app_name:"你的APP名称1", package: applicationId, JPUSH_PKGNAME: applicationId, JPUSH_APPKEY : "极光key1", //JPush上注册的包名对应的appkey. JPUSH_CHANNEL: "自定义渠道名称", //用户渠道统计的渠道名称 UMENG_CHANNEL:"xql", app_icon:"@drawable/icon" ] } qlgf { applicationId "你的包名2" manifestPlaceholders = [ app_name:"你的APP名称2", package: applicationId, JPUSH_PKGNAME: applicationId, JPUSH_APPKEY : "极光key2", //JPush上注册的包名对应的appkey. JPUSH_CHANNEL: "自定义渠道名称", //用户渠道统计的渠道名称 UMENG_CHANNEL:"qlgf", app_icon:"@drawable/icon" ] } qlsm { applicationId "你的包名3" manifestPlaceholders = [ app_name:"你的appn名称3", package: applicationId, JPUSH_PKGNAME: applicationId, JPUSH_APPKEY : "极光key3", //JPush上注册的包名对应的appkey. JPUSH_CHANNEL: "自定义渠道名称",//用户渠道统计的渠道名称 UMENG_CHANNEL:"qlsm", app_icon:"@drawable/icon" ] } xgc { applicationId "你的包名4" manifestPlaceholders = [ app_name:"你的APP名称4", package: applicationId, JPUSH_PKGNAME: applicationId, JPUSH_APPKEY : "极光key4", //JPush上注册的包名对应的appkey. JPUSH_CHANNEL: "自定义渠道名称", UMENG_CHANNEL:"xgc",//用户渠道统计的渠道名称 app_icon:"@drawable/icongc" ] } gc { applicationId "你的包名5" manifestPlaceholders = [ app_name:"你的APP名称5", package: applicationId, JPUSH_PKGNAME: applicationId, JPUSH_APPKEY : "极光key5", //JPush上注册的包名对应的appkey. JPUSH_CHANNEL: "自定义渠道名称", UMENG_CHANNEL:"gc",//用户渠道统计的渠道名称 app_icon:"@drawable/icongc" ] } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } lintOptions { checkReleaseBuilds false abortOnError false } dexOptions { javaMaxHeapSize "4g" }}dependencies { }
代码就这么多,如果你想只打一个包,你直接注销掉你productFlavors 下面配置的其他渠道就可以了,不要那个就注销那个
然后在运行,打包然后就是写key,记得选择包
我是5个包全部都要打,所以最后就是
PS:如果代码里面,有需要分一些平台的功能或者显示的文字,你只需要更加包名来判断就可以了
//获取包名public static String getAppInfopkName(Context context) { try { String pkName = context.getPackageName(); String packageName = context.getPackageManager().getPackageInfo( pkName, 0).packageName; int versionCode = context.getPackageManager() .getPackageInfo(pkName, 0).versionCode; return packageName; } catch (Exception e) { return null; }}
i
if (getAppInfopkName(MainActivity.this).equals("你的包名1")) { //这个包要干嘛} else if (getAppInfopkName(MainActivity.this).equals("你的包名2")) {//这个包要干嘛} else if (getAppInfopkName(MainActivity.this).equals("你的包名3")) {//这个包要干嘛} else if (getAppInfopkName(MainActivity.this).equals("你的包名4")) {//这个包要干嘛} else if (getAppInfopkName(MainActivity.this).equals("你的包名5")) {//这个包要干嘛}
ps:如果有什么不明白的,可以来问我
技术交流群:552123831
阅读全文
0 0
- Android
- android
- Android
- android
- android
- Android
- Android
- android
- android
- android
- Android
- Android
- android!!!
- android
- android
- android
- android
- android:
- Nginx-----源码安装nginx
- Double与Double类型数据相除保留小数工具
- django基本操作
- c# DataTable select 过滤返回新DataTable
- 使用RTL-SDR和Matlab Simulink玩转软件无线电(九)
- android
- 主机常见噪音 的原因 及 降噪方法
- 报文保序的作用的说明
- android studio调试时使用正式签名
- 前段冷门知识总结
- django-QueryDict对象
- window.onload()与$(document).ready()的区别
- Python科学计算库NumPy
- 面试题第三天