使用动态标签管理器Dynamic Tag Manager(以下简称"DTM"),您可以从Web界面快速、安全、轻松地部署及更新标签配置,配合HUAWEI Analytics强大的分析能力,实现基于数据驱动的运营。
在这个codelab中,您将使用已经创建好的Demo Project实现对DTM开放服务的API调用,通过Demo Project您可以体验到:
集成HUAWEI HMS Core能力,需要完成以下准备工作:
针对Android Studio开发环境,华为提供了Maven仓集成方式的HMS Core SDK包。在开始开发前,您需要将HMS Core SDK集成到您的Android Studio项目中。
远程Maven仓集成SDK的操作步骤如下所示:
Android Studio的代码库配置在Gradle 插件7.0以下版本、7.0版本和7.1及以上版本有所不同。请根据您当前的Gradle 插件版本,选择对应的配置过程。
7.0以下版本 | 7.0版本 | 7.1及以上版本 |
7.0以下版本
a. 打开Android Studio项目级"build.gradle"文件。
b. 添加HUAWEI agcp插件以及Maven代码库。
buildscript {
repositories {
google()
jcenter()
// 配置HMS Core SDK的Maven仓地址。
maven {url 'https://developer.huawei.com/repo/'}
}
dependencies {
...
// 增加agcp插件配置,推荐您使用最新版本的agcp插件。
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
}
allprojects {
repositories {
google()
jcenter()
// 配置HMS Core SDK的Maven仓地址。
maven {url 'https://developer.huawei.com/repo/'}
}
}
7.0版本
a. 打开Android Studio项目级"build.gradle"文件。
b. 添加HUAWEI agcp插件以及Maven代码库。
buildscript {
repositories {
google()
jcenter()
// 配置HMS Core SDK的Maven仓地址。
maven {url 'https://developer.huawei.com/repo/'}
}
dependencies {
...
// 增加agcp插件配置,推荐您使用最新版本的agcp插件。
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
}
c. 打开项目级"settings.gradle"文件,配置HMS Core SDK的Maven仓地址。
dependencyResolutionManagement {
...
repositories {
google()
jcenter()
// 配置HMS Core SDK的Maven仓地址。
maven {url 'https://developer.huawei.com/repo/'}
}
}
7.1及以上版本
a. 打开Android Studio项目级"build.gradle"文件。
b. 如果App中添加了"agconnect-services.json"文件则需要在"buildscript > dependencies"中增加agcp插件配置。
buildscript {
dependencies {
...
// 增加agcp插件配置,推荐您使用最新版本的agcp插件。
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
}
c. 打开项目级"settings.gradle"文件,配置HMS Core SDK的Maven仓地址。
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
// 配置HMS Core SDK的Maven仓地址。
maven { url 'https://developer.huawei.com/repo/' }
}
}
dependencyResolutionManagement {
...
repositories {
google()
mavenCentral()
// 配置HMS Core SDK的Maven仓地址。
maven { url 'https://developer.huawei.com/repo/' }
}
}
apply plugin: 'com.huawei.agconnect'
implementation 'com.huawei.hms:hianalytics:{version}'
implementation 'com.huawei.hms:dtm-api:{version}'
在完成以上的配置后,点击工具栏中的gradle同步图标,完成"build.gradle"文件的同步,将相关依赖下载到本地。
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-keep public class androidx.recyclerview.widget.RecyclerView{
public <methods>;
}
-keep public class androidx.recyclerview.widget.RecyclerView$LayoutManager{
public <methods>;
}
-keep public class android.support.v7.widget.RecyclerView{
public <methods>;
}
-keep public class android.support.v7.widget.RecyclerView$LayoutManager{
public <methods>;
}
若开发者使用了AndResGuard,则需要在应用级的"build.gradle"文件中加入AndResGuard允许清单。
"R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*",
"R.string.agc*"
在Demo的MainActivity中实现以下流程:获得HiAnalyticsInstance实例、自定义事件、打点上报。
"Java示例代码"
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获得HiAnalyticsInstance实例
HiAnalyticsInstance instance = HiAnalytics.getInstance(this);
HiAnalyticsTools.enableLog();
// 开发者自定义事件打点上报
// 自定义事件名称为"Purchase"
String eventName = "Purchase";
// 自定义事件相关的字段
Bundle bundle = new Bundle();
bundle.putDouble("price", 999);
bundle.putLong("quantity", 100L);
bundle.putString("currency", "CNY");
// 进行事件上报
if (instance != null) {
instance.onEvent(eventName, bundle);
}
}
"Kotlin示例代码"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val instance = HiAnalytics.getInstance(this)
HiAnalyticsTools.enableLog()
// 开发者自定义事件打点上报
// 自定义事件名称为"Purchase"
val eventName = "Purchase"
// 自定义事件相关的字段
val bundle = Bundle()
bundle.apply {
putDouble("price", 999.0)
putLong("quantity", 100L)
putString("currency", "CNY")
}
// 进行事件上报
instance.let {
it.onEvent(eventName, bundle)
}
}
干得好,您已经成功完成了codelab并学到了:
您可以阅读下面链接,了解更多相关的信息。
相关文档
您可以单击下面的按钮下载源代码: