简介

华为分析服务预置大量分析模型,可帮助您清晰地了解用户的行为方式,从而实现用户、 产品、 内容的深度洞察,让您实现基于数据驱动的运营,可以就应用营销和产品优化制定明智的决策。
HUAWEI Analytics-Kit 采集端侧数据,用于支持Analytics功能:

您将建立什么

参照本文档的开发流程,通过文档指定的方式调用接口,采集用户设备的ROM版本号、机型、应用名、包名、渠道号、应用版本号 、操作系统版本、系统语言、制造商、屏幕宽度、屏幕高度、操作时间(其中部分信息由SDK接口内部自动采集)上报数据到分析平台的租户中,分析平台通过这些信息进行大数据统计。

您将会学到什么

硬件要求

软件要求

集成HUAWEI HMS Core能力,需要完成以下准备工作:

具体操作,请按照《HUAWEI HMS Core集成准备》中详细说明来完成。

应用创建成功后,点击"分析"图标。

点击"高级分析"页签,点击页面上"启动分析服务"按钮。

点击"开发",在API管理中打开Huawei Analytics

在华为开发者联盟AppGallery Connect的应用页面中点击"开发"页签,点击"概览"后的图标,选择"API管理",打开Huawei Analytics。

添加SDK依赖

  1. 在主工程gradle中添加maven仓地址和agconnect服务依赖。打开主工程目录下的build.gradle文件。
  2. 将maven仓地址添加到"repositories"中。

    repositories { maven {url 'http://developer.huawei.com/repo/'} }

    将agconnect服务依赖添加到"dependencies"中。

    dependencies { classpath 'com.huawei.agconnect:agcp:1.2.1.301' }
  3. 在app模块的gradle中添加HUAWEI Analytics-Kit依赖(版本请根据各业务的发布版本设置)。打开app目录下的build.gradle文件。
  4. 将编译依赖项添加到"dependencies"中。

    dependencies { implementation 'com.huawei.hms:hianalytics:4.0.2.300' }

    添加agconnect插件配置。

    apply plugin: 'com.huawei.agconnect'
  5. 点击Sync now或Sync Project with Gradle Files,开始构建工程。

配置混淆脚本

编译APK前需要配置,不要混淆Analytics Kit,避免功能异常。

Android Studio开发环境里的配置文件是"proguard-rules.pro",Eclipse开发环境里的配置文件是"proguard-project.txt"。

1、打开Android工程的混淆配置文件。

2、加入排除Analytics Kit的混淆配置。

-keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;} -keep interface com.huawei.hms.analytics.type.HAEventType{*;} -keep interface com.huawei.hms.analytics.type.HAParamType{*;}

3、如果开发者使用了"AndResGuard",需要在混淆配置文件中加入"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*"

在上一小节中,您已成功集成了HUAWEI Analytics-Kit,本小节您将尝试编写一个Demo,学会如何使用 HUAWEI Analytics-Kit的主要接口。这是一个具有答题功能的Demo,您可以不用关心业务逻辑,我们为您准备了现成的代码,您只需要按照下文每一步的提示,学会如何利用HUAWEI Analytics-Kit将您所关心的事件,如"回答问题"、"计算分数"、"设置用户属性"等,上报即可。

源码下载

将示例代码提取到src目录

复制代码文件

将所有Java文件从代码目录复制到您的项目中。

复制资源文件

将所有资源文件从res目录复制到您的项目中。

修改AndroidManifest.xml

添加以下代码:

<activity android:name=".SettingActivity"> </activity>

截止目前,您的应用软件已经具备了所需的业务功能,接下来将使用HUAWEI Analytics-Kit上报您所关心的事件

修改MainActivity类

从Analytics Kit中导入以下类:

// TODO: import classes from Analytics Kit import com.huawei.hms.analytics.HiAnalytics; import com.huawei.hms.analytics.HiAnalyticsInstance; import com.huawei.hms.analytics.HiAnalyticsTools; import static com.huawei.hms.analytics.type.HAEventType.*; import static com.huawei.hms.analytics.type.HAParamType.*;

添加以下代码为AnalyticInstance定义变量:

private int score = 0; // TODO: Define a var for Analytics Instance HiAnalyticsInstance instance;

在onCreate方法中添加以下代码以初始化Analytics Kit:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // TODO: Initiate Analytics Kit // Enable Analytics Kit Log HiAnalyticsTools.enableLog(); // Generate the Analytics Instance instance = HiAnalytics.getInstance(this); // You can also use Context initialization // Context context = this.getApplicationContext(); // instance = HiAnalytics.getInstance(context); // Enable collection capability instance.setAnalyticsEnabled(true); // TODO: Registering the HMS Service txtQuestion = (TextView)findViewById(R.id.question_text_view); txtQuestion.setText(questions[curQuestionIdx]);

添加以下代码以完成reportAnswerEvt方法:

private void reportAnswerEvt(String answer) { // TODO: Report a customzied Event // Event Name: Answer // Event Parameters: // -- question: String // -- answer:String // -- answerTime: String // Initiate Parameters Bundle bundle = new Bundle(); bundle.putString("question", txtQuestion.getText().toString().trim()); bundle.putString("answer",answer); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH); bundle.putString("answerTime",sdf.format(new Date())); // Report a preddefined Event instance.onEvent("Answer", bundle); }

添加以下代码以完成postScore方法:

private void postScore() { // TODO: Report score by using SUBMITSCORE Event // Initiate Parameters Bundle bundle = new Bundle(); bundle.putLong(SCORE, score); // Report a preddefined Event instance.onEvent(SUBMITSCORE, bundle); }

绑定与解绑HMS服务

如果您想要体验账号登录登出、应用内购买或者广告等自动化事件功能,则需要添加绑定与解绑HMS服务代码;如果不需要体验,则可以跳过,继续执行下一小节操作。

初始化Analytics Kit完成后,添加注册HMS服务代码。

// TODO: Registering the HMS Service // Register the HMS service and collect automatic events (account event or InAppPurchase event, etc.). instance.regHmsSvcEvent(); txtQuestion = (TextView)findViewById(R.id.question_text_view); txtQuestion.setText(questions[curQuestionIdx]);

在onDestroy方法中解绑HMS服务。

@Override protected void onDestroy() { super.onDestroy(); // TODO: UnRegistering the HMS Service // After the HMS service is unbound, no automatic event (account event or InAppPurchase event, etc.) is reported. instance.unRegHmsSvcEvent(); }

修改SettingActivity类

从HUAWEI Analytics-Kit中导入以下类:

// TODO: import classes from Analytics Kit import com.huawei.hms.analytics.HiAnalytics; import com.huawei.hms.analytics.HiAnalyticsInstance;

添加以下代码为AnalyticInstance定义变量:

// TODO: Define a var for Analytics Instance HiAnalyticsInstance instance;

添加以下代码以初始化Analytics Kit:

// TODO: Genarate Analytics Kit Instance instance = HiAnalytics.getInstance(this);

添加以下代码以保存用户属性:

btnSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editFavorSport = (EditText)findViewById(R.id.edit_favoraite_sport); strFavorSport = editFavorSport.getText().toString().trim(); // TODO: save favorite sport by user setUserProperty instance.setUserProfile("favor_sport",strFavorSport); } });

关于API简介,请参见《 Huawei Analytics API索引》

在模拟器中启动应用。

单击一些按钮以报告事件。

  1. 登录AppGallery Connect网站,点击"分析"图标。
  2. 选择需要查看分析数据的应用。
  3. 点击"高级分析"页签。
  4. 检查数据, 有关详细信息,请参阅《 Huawei Analytics用户指南》

应用调试

在Android设备上执行如下命令行开启调试模式:

adb shell setprop debug.huawei.hms.analytics.app <package_name>

打开后会保持启用状态,所有事件将在"高级分析"页签的"应用调试"实时上报,直到执行如下命令行停用调试模式:

adb shell setprop debug.huawei.hms.analytics.app .none.

查看上报的调试数据:

常见FAQs

1.应该在什么时候初始化?
答: 请在应用的第一个Activity的onCreate方法中进行初始化,否则可能影响自动采集页面生命周期事件的处理,HUAWEI Analytics-Kit必须在主线程中初始化。
2. HUAWEI Analytics Kit如何识别用户?
答:HUAWEI Analytics Kit使用AAID(匿名应用程序标识符)来识别用户。
3.什么时候会重置AAID?重置后, HUAWEI Analytics Kit如何收集用户的统计信息?
答:在以下情况下,将重置AAID:(1)卸载或重新安装应用程序。 (2)用户清除应用程序数据。
重置AAID后,该用户将被计为新用户。
4. Analytics Kit需要哪些权限?
答:Analytics Kit需要以下权限,但是Analytics Kit已在内部对其进行了预设,因此开发人员无需申请权限。

5. 测试中无法查看到当前上报数据的分析结果?

答:(1)当应用调试关闭时,在"实时分析"中可查看部分分析结果,其它分析功能如"事件分析"、"行为分析"等需要第二天凌晨加工处理完成后才能看到数据分析结果;(2)当应用调试开启时,上报的测试数据不会被处理分析,只会在"应用调试"中查看到查看到。

干得好,你已经成功完成了HUAWEI Analytics-Kit的使用,并学到了:

您可以阅读下面链接,了解更多相关的信息。

相关文档

您可以在Github上下载源码:github.com/Huawei/Consumer/tree/master/Codelabs/AnalyticsKit
也可以点击下方按钮下载源码。

源码下载

已复制代码