本文介紹如何接入Android使用者體驗監控資料到全棧可觀測應用。
前提條件
已建立2.1.0及以上版本的全棧可觀測執行個體。具體操作,請參見建立全棧可觀測執行個體。
步驟一:SDK整合
在Android Studio工程的App或Module層級的build.gradle檔案中添加如下配置。
// opentelemetry 協議庫
implementation(platform("io.opentelemetry:opentelemetry-bom:1.30.0"))
implementation("io.opentelemetry:opentelemetry-api")
implementation('io.opentelemetry:opentelemetry-sdk')
implementation("io.opentelemetry:opentelemetry-semconv:1.30.0-alpha")
// Android平台崩潰捕獲
implementation 'io.github.aliyun-sls:aliyun-log-android-sdk:2.7.0@aar'
implementation 'io.github.aliyun-sls:android-crashreporter:1.0.0@aar'
implementation 'io.github.aliyun-sls:android-exporter-otlp:1.0.0@aar'
implementation 'io.github.aliyun-sls:android-otel-common:1.0.0@aar'
步驟二:許可權配置
上報錯誤監控資料時需要申請網路許可權,即需要在AndroidManifest.xml檔案中添加以下許可權申明。
<uses-permission android:name="android.permission.INTERNET" />
步驟三:初始化SDK
private void initCrashReporter() {
ConfigurationManager.getInstance().setProvider(
scope -> AccessKey.accessKey(
"${access-key-id}",
"${access-key-secret}",
"${access-key-token}"),
scope -> Workspace.workspace("https://${endpoint}", "${project}", "${instanceId}"),
scope -> {
Environment environment = Environment.environment();
// 設定環境資訊,預設為default。一般情況下,建議debug版本設定為dev,release版本設定為pub。
environment.setEnv("default");
// 設定使用者ID,可選。
//environment.setUid("123456789");
// 設定裝置ID,可選。
//environment.setUtdid("your device id");
return environment;
}
);
// 一般情況下,建議debug版本設定為true,release版本設定為false。
final boolean debuggable = false;
// 完成SDK初始化。
CrashReporter.init(context, debuggable);
}
變數說明
變數 | 說明 | 樣本 |
| 服務入口是訪問一個Project及其內部資料的URL,Log Service提供私網網域名稱和公網網域名稱。更多資訊,請參見服務入口。 | cn-hangzhou.log.aliyuncs.com |
| Log ServiceProject名稱,更多資訊,請參見管理Project。 | test-project |
| 全棧可觀測服務執行個體ID。更多資訊,請參見建立執行個體。 | test-traces |
| AccessKey ID用於標識使用者,更多資訊,請參見存取金鑰。 建議您遵循最小化原則,按需授予RAM使用者必要的許可權。關於授權的具體操作,請參見建立RAM使用者及授權,RAM自訂授權樣本。 | 無 |
| AccessKey Secret是使用者用於加密簽名字串和Log Service用來驗證簽名字串的密鑰,必須保密。 | 無 |
${access-key-token} | AccessKey Token,僅當AccessKey是通過STS方式擷取時才需要。 |