---
code: android_sdk_autotrack
name: "自动采集"
wikiToken: CSyTwo8RhiMLtVk5ZshcxA6YnYc
parentWikiToken: Ci0xwEVoxiX0GSkkVPLc7bZRnQf
updateTime: 1745309677000
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v5.0&lan=zh-CN&code=android_sdk_autotrack
---
# 自动采集

OpenHarmony SDK 支持包括安装、启动、关闭等在内事件的自动采集。

### 一、介绍

AE 系统提供自动化收集数据的接口，您可根据业务需求自行选择需要自动收集的数据。

目前支持的自动采集事件类型有：

1. 安装事件：记录 APP 被安装的行为
1. 启动事件：包括打开 APP 和从后台打开APP
1. 关闭事件：包括关闭 APP 和App进入后台
1. 浏览事件：用户在 APP 中浏览页面（Ability）
1. 点击事件：用户在 APP 中点击控件
1. 崩溃事件：APP 发生崩溃时记录崩溃信息（native层的崩溃暂不支持）
接下来将会详细介绍每种数据的采集方法

### 二、开启自动采集

您可以调用`enableAutoTrack`，打开自动采集功能：

```
//APP安装事件 TDAutoTrackEventType.APP_INSTALL
//APP启动事件 TDAutoTrackEventType.APP_START
//APP关闭事件 TDAutoTrackEventType.APP_END
//APP浏览页面事件 TDAutoTrackEventType.APP_VIEW_SCREEN
//APP点击控件事件 TDAnalytics.TDAutoTrackEventType.*APP_CLICK*
//APP崩溃事件 TDAutoTrackEventType.APP_CRASH
TDAnalytics.enableAutoTrack(context,TDAutoTrackEventType.APP_START | TDAutoTrackEventType.APP_INSTALL | TDAutoTrackEventType.APP_END | TDAutoTrackEventType.APP_VIEW_SCREEN | TDAutoTrackEventType.APP_CLICK | TDAutoTrackEventType.APP_CRASH)
```

<!-- unsupported block: 19 -->

enableAutoTrack需要在主线程中调用，如果需要在work线程中初始化SDK，可参考下面的代码

```
**const **workerInstance = **new **worker.ThreadWorker("./workers/worker.ets");
TDAnalytics.enableAutoTrack(**this**.context,
  TDAutoTrackEventType.APP_START | TDAutoTrackEventType.APP_INSTALL | TDAutoTrackEventType.APP_END |
  TDAutoTrackEventType.APP_VIEW_SCREEN | TDAutoTrackEventType.APP_CRASH |
  TDAutoTrackEventType.APP_CLICK,
  (command: string, params: Object, appId?: string) => {
    //这里会将需要触发的自动采集事件回调出来，需要将消息发送到work线程去处理
    workerInstance.postMessage({
      type: command,
      params: params
    })
  })
```

```
**const **workerPort = worker.workerPort;

workerPort.onmessage = (d: MessageEvents): void => {
  **if **(d.data.type === 'track') {
    TDAnalytics.track(d.data.params);
  } **else if **(d.data.type === 'timeEvent') {
    TDAnalytics.timeEvent(d.data.params);
  } **else if **(d.data.type === 'flush') {
    TDAnalytics.flush()
  }
}
```

### 三、详细介绍

##### 3.1 安装事件

APP 安装事件将会记录 APP 的实际安装，在 APP 启动时上报，事件触发时间是 APP 安装后首次启动的时间，APP 升级并不会触发安装事件，而删除重装后会上报安装事件。

- 事件名：ta_app_install
##### 3.2 启动事件

APP 启动事件将会在用户开启 APP，或从后台唤醒 APP 时触发，详细的事件介绍如下：

- 事件名：ta_app_start
- 预置属性：`#resume_from_background`，布尔型，表示 APP 是用户开启还是从后台唤醒，取值为 true 表示从后台唤醒，false 为直接开启。
- 通过ApplicationStateChangeCallback中的onApplicationForeground回调来触发
##### 3.3 关闭事件

APP 关闭事件将会在用户关闭 APP，或将 APP 调至后台时触发，详细的事件介绍如下：

- 事件名：ta_app_end
- 预置属性：`#duration`，数值型，表示该次 APP 访问（自启动至结束）的时长，单位是秒。
- 通过ApplicationStateChangeCallback中的onApplicationBackground回调来触发
##### 3.4 浏览页面事件

APP 浏览页面事件会在用户浏览页面（`Ability`）时触发，详细的事件介绍如下：

- 事件名：ta_app_view
- 预置属性：
`#screen_name`，字符串型，为`Ability`的简单类名

##### 3.5 点击事件

APP 控件点击事件将会在用户点击控件（view）时触发

- 事件名：ta_app_click
- 预置属性：
`#screen_name`，字符串型，为控件所属`Activity`的包名.类名

`#element_type`，字符串型，为控件的类型

`#element_id`，字符串型，为控件的 ID

##### 3.6 崩溃事件

当 APP 出现未捕获异常时，会上报 APP 崩溃事件

- 事件名：ta_app_crash
- 预置属性：`#app_crashed_reason`，字符型，记录崩溃时的堆栈轨迹
- 通过ErrorObserver的onUnhandledException来监听，暂不支持native的崩溃采集。
