-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathproductflavor.gradle
More file actions
85 lines (73 loc) · 2.94 KB
/
productflavor.gradle
File metadata and controls
85 lines (73 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
-配置多渠道打包productFlavors
//
//1)为什么要多渠道打包?
//
//安卓应用商店(一个商店也叫做一个渠道,如360,baidu,xiaomi)众多,大大小小几百个,我们发布应用之后需要统计各个渠道的用户下载量,所以才有了多渠道打包。
//现在有比较成熟的第三方应用帮我们实现统计功能(比如友盟),统计的本质就是收集用户信息传输到后台,后台生成报表,帮助我们跟踪分析并完善app。通过系统的方法已经可以获取到,
//版本号,版本名称,系统版本,机型,地区等各种信息,唯独应用商店(渠道)的信息我们是没有办法从系统获取到的,所以我们就人为的在apk里面添加渠道信息(其实就用一个字段进行标识,如360,baidu),
//我们只要把这些信息打包到apk文件并将信息传输到后台,后台根据这个标识,可以统计各个渠道的下载量了,并没有多么的高大上。
//
//说了那么多,其实多渠道打包只需要关注两件事情:
//
//
//将渠道信息写入apk文件
//
//将apk中的渠道信息传输到统计后台
//
//
//添加配置,以友盟的方式,传到友盟来统计,他需要UMENG_CHANNEL_VALUE来区分
//
//
android {
productFlavors {
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
}
_360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "_360"]
}
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
}
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
}
}
//
//然后在Android左下角可以通过Build Variants选择构建不同渠道应用
//
//每种渠道都对应这些buildType 在选择buildVarient时候会全部显示出来
//
//通过不同的打包渠道,我们还可以将框架层抽离,比如我们的开发两个app图标和应用名字不一样,应用也不一样,可以通过这种,来实现多个apk
android{
buildTypes {
release {
signingConfig signingConfigs.keystore
minifyEnabled false
manifestPlaceholders = ["app_name":'Gradle详解正式版']
buildConfigField "boolean","isDebug","false"
}
debug{
applicationIdSuffix ".debug"
manifestPlaceholders = ["app_name":'Gradle详解测试版']
buildConfigField "boolean","isDebug","true"
}
other{
applicationIdSuffix ".other"
manifestPlaceholders = ["app_name":'Gradle普通版本']
buildConfigField "boolean","isDebug","false"
}
}
productFlavors{
obm{
buildConfigField "String","VERSION","\"obm\""
}
oem{
buildConfigField "String","VERSION","\"oem\""
}
odm{
buildConfigField "String","VERSION","\"odm\""
}
}
}