华为分析服务预置大量分析模型,可帮助您清晰地了解用户的行为方式。从而实现用户、产品、内容的深度洞察,让您实现基于数据驱动的运营,可以就应用营销和产品优化制定明智的决策。
HUAWEI Analytics Kit采集端侧数据,用于支持Analytics功能:
在这个codelab中,您将基于我们提供的Demo project,创建一个Demo App。通过Demo App您可以体验到:
集成HUAWEI HMS Core能力,需要完成以下准备工作:
dependencies {
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
dependencies {
implementation 'com.huawei.hms:hianalytics:6.7.0.300'
}
c)添加agconnect插件配置。
方法一:在文件头apply plugin: 'com.android.application'下一行添加如下配置。
apply plugin: 'com.huawei.agconnect '
方法二:在"plugins"中添加如下配置。
plugins {
id 'com.android.application'
//添加如下配置
id 'com.huawei.agconnect'
}
1. 在应用级根目录下打开混淆配置文件“proguard-rules.pro”,加入排除HMS Core SDK的混淆配置脚本。
-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.**{*;}
2. 如果开发者使用了"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将您所关心的事件,如"回答问题"、"计算分数"、"设置用户属性"等,上报即可。
将所有Java文件从代码目录复制到您的项目中。
将所有资源文件从res目录复制到您的项目中。
<application
......
<meta-data>
android:name="install_channel"
android:value="AppGallery">
</meta-data>
......
</application>
<application
<activity android:name=".SettingActivity">
</activity>
</application>
截止目前,您的应用软件已经具备了所需的业务功能,接下来将使用HUAWEI 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.*;
private int score = 0;
// TODO: Define a variable for the Analytics Kit instance.
HiAnalyticsInstance instance;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// TODO: Initialize Analytics Kit.
// Enable Analytics Kit logging.
HiAnalyticsTools.enableLog();
// Generate an Analytics Kit instance.
instance = HiAnalytics.getInstance(this);
txtQuestion = (TextView)findViewById(R.id.question_text_view);
txtQuestion.setText(questions[curQuestionIdx]);
}
private void reportAnswerEvt(String answer) {
// TODO: Report a custom event.
// Event name: Answer
// Event parameters:
// -- question: String
// -- answer: String
// -- answerTime: String
// Initialize 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 custom event.
instance.onEvent("Answer", bundle);
}
private void postScore() {
// TODO: Report a score through the SUBMITSCORE event.
// Initialize parameters.
Bundle bundle = new Bundle();
bundle.putLong(SCORE, score);
// Report a predefined event.
instance.onEvent(SUBMITSCORE, bundle);
}
// TODO: Import classes from Analytics Kit.
import com.huawei.hms.analytics.HiAnalytics;
import com.huawei.hms.analytics.HiAnalyticsInstance;
// TODO: Define a variable for the Analytics Kit instance.
HiAnalyticsInstance instance;
// TODO: Generate an Analytics Kit instance.
instance = HiAnalytics.getInstance(this);
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
editFavorSport = (EditText)findViewById(R.id.edit_favorite_sport);
// TODO: Set users' favorite sport using the setUserProfile API.
instance.setUserProfile("favor_sport",strFavorSport);
}
});
关于API简介,请参见《HUAWEI Analytics API参考》。
在模拟器中启动应用,根据界面引导操作报告事件。
adb shell setprop debug.huawei.hms.analytics.app <package_name>
打开后会保持启用状态,所有事件将在"华为分析"页签的"应用调试"实时上报。
您可以执行如下命令行停用调试模式。
adb shell setprop debug.huawei.hms.analytics.app .none.
请在应用的第一个Activity的onCreate()方法中进行初始化,否则可能影响自动采集的生命周期事件的处理,HUAWEI Analytics Kit必须在主线程中初始化。
HUAWEI Analytics Kit使用AAID(匿名应用程序标识符)来识别用户。
在以下情况下,将重置AAID:
HUAWEI Analytics Kit需要以下权限,但是Analytics Kit已在内部对其进行了预设,因此开发人员无需申请权限。
Analytics Kit提供的示例代码中默认配置的gradle版本可能高于您当前使用的版本,出现报错情况,建议您修改为低版本。例如:gradle-4.10.2-all。
干得好,您已经成功完成了HUAWEI Analytics Kit的使用,并学到了:
您可以阅读下面链接,了解更多相关的信息。
相关文档
您可以点击下方按钮下载源码。