使用动态标签管理器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并学到了:
您可以阅读下面链接,了解更多相关的信息。
相关文档
您可以单击下面的按钮下载源代码: