多渠道打包,为的就是统计各个渠道的下载数量,或者新增用户、日活跃量用户的一些相关数据,这就与友盟统计相关了。所以我们用友盟进行多渠道打包就可以了。
那么如何做呢,首先我们进入友盟的官网https://www.umeng.com/
选择开发者中心,看到如下图片
然后回到自己的项目,在app的build.gradle添加以下代码
//友盟多渠道打包 compile 'com.umeng.analytics:analytics:latest.integration'
如果无法正常集成请添加如下代码 :
allprojects {
repositories {
mavenCentral()
}
}
- 1
- 2
- 3
- 4
- 5
接着,在AndroidManifest.xml文件下添加以下代码
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
在<application>标签内添加
<!--友盟统计SDK配置--> <meta-data android:name="UMENG_APPKEY" android:value="5ad8501cb27b0a6c9a0000e9"/> <!--设置动态渠道变量--> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_V}" />
在app的build.gradle文件里配置
defaultConfig { applicationId "com.example.searchphone" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true //突破应用方法书65535的限制 manifestPlaceholders = [UMENG_CHANNEL_V:"umeng"]//默认的打包名称 }
签名文件的生成
//配置签名文件 signingConfigs { debug { storeFile file("C:\\Users\\zhengyg\\AndroidStudioProjects\\zhengwanshi_signing.jks") storePassword "z3115002510" keyAlias "MyAlias" keyPassword "z3115002510" } //签名文件配置 release { storeFile file("C:\\Users\\zhengyg\\AndroidStudioProjects\\zhengwanshi_signing.jks") storePassword "z3115xxx" keyAlias "MyAlias" keyPassword "z311xxx" } }
buildTypes { release { minifyEnabled false//是否混淆 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release //指定生成的apk文件名 applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { // 输出apk名称为ruijie_v1.0_wandoujia.apk def fileName = "${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } } }
productFlavors { xiaomi { } wandoujia { } } productFlavors.all{ flavor ->flavor.manifestPlaceholders = [UMENG_CHANNEL_V: name] }
在控制台的打包命令:
./gradlew assembleDebug
./gradlew assembleRelease
操作结果:
图形化打包操作:
操作结果: