利用友盟实现Android多渠道打包
Android作为当前手机市场占有的份额最大的手机操作系统,但是由于各个手机应用市场无法进行统一的管理,比如应用宝、问问市场、安智市场等等,为了能够在不同市场发布同一款应用,并且对该应用市场的下载个数进行统计,所以下面我就说一个同过第三方统计平台进行对应用市场的实时统计和监督,下面简单介绍一下利用友盟统计进行的多渠道打包:
1 . 进入友盟官网,创建友盟统计的应用,申请appkey;
![这里写图片描述](https://img-blog.csdn.net/20170320085312241?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHV3ZWljaGVuZzI0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2 . 集成sdk,只需要在appGradle中对友盟统计的sdk进行依赖(仅仅是对于AndroidStudio):
compile 'com.umeng.analytics:analytics:latest.integration'
3 . 在Manifest.xml中进行配置:
<!--友盟统计-->
<meta-data android:value="58cc94091061d26f19002225" android:name="UMENG_APPKEY"/>
<meta-data android:value="${UMENG_CHANNEL_ID}" android:name="UMENG_CHANNEL"/>
4 . 编写Gradle,我下面直接贴出我Gradle的配置:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.ovov.www.morechanneldemo"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled = true //突破应用方法数65535
manifestPlaceholders = [UMENG_CHANNEL_ID:"umeng"]
}
//添加签名文件(切记将SigningConfigs放在buildType之前,不然找不到release和debug的配置)
signingConfigs {
debug{
}
release {
keyAlias 'channel'
keyPassword '123456'
storeFile file('channel.jks')
storePassword '123456'
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//对打包成功的apk的名字进行配置
applicationVariants.all{
variants -> variants.outputs.each {
output -> def outputFile = output.outputFile
if(outputFile!=null && outputFile.name.endsWith(".apk")){
def fileName = "${variants.productFlavors[0].name}"+".apk"
output.outputFile = new File(outputFile.parentFile,fileName);
}
}
}
}
}
/**
* 添加多渠道市场
*/
productFlavors{
xiaomi{
// manifestPlaceholders = [UMENG_CHANNEL_ID: "xiaomi"]
}
wandoujia{
// manifestPlaceholders = [UMENG_CHANNEL_ID: "wandoujia"]
}
}
productFlavors.all{
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_ID: name]
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
compile 'com.umeng.analytics:analytics:latest.integration'
}