Android 入门

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方法。

App Center SDK 使用模块化体系结构,因此你可以使用任何或所有服务。

可以在 App Center SDK 收集的数据、一般数据保护条例常见问题解答页中找到有关 App Center 收集的数据的信息。

让我们开始在应用中设置 App Center Android SDK,以使用 App Center Analytics 和 App Center 崩溃。 若要将 App Center Distribute 添加到应用,请查看 App Center Distribute 的文档

1.先决条件

在开始之前,请确保满足以下先决条件:

  • Android 项目在 Android Studio 中设置。
  • 你的目标是运行 Android 版本 5.0 (API 级别 21) 或更高版本的设备。

2.在 App Center 门户中创建应用以获取应用机密

如果已在 App Center 门户中创建了应用,则可以跳过此步骤。

  1. 前往 appcenter.ms
  2. 注册或登录,然后单击页面右上角的 “添加新 应用”按钮,然后从下拉菜单中选择“ 添加新应用 ”。
  3. 输入应用的名称和可选说明。
  4. 选择 “Android ”作为操作系统,选择 “Java ”作为平台。
  5. 单击 “添加新应用 ”按钮。

创建应用后,可以在 2 下的入门页面上获取其应用机密。启动 SDK。 或者,可以单击 “设置”,在右上角单击 三个垂直点 ,然后选择“ 复制应用机密 ”以获取应用机密。

3.添加 App Center SDK 模块

  1. 打开项目的应用级别 build.gradle 文件 (app/build.gradle) ,并在 后面 apply plugin添加以下行。 在项目中包括所需的依赖项。 在本部分中,每个 SDK 模块都需要添加为单独的依赖项。 如果要使用 App Center Analytics 和崩溃,请添加以下行:
dependencies {
    def appCenterSdkVersion = '5.0.4'
    implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}"
    implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}"
}

注意

如果 Android Gradle 插件的版本低于 3.0.0,则需要通过编译替换单词实现

注意

由于 jCenter 支持终止, 我们所有的程序集都已移动到 Maven Central 存储库。 请按照 本指南 操作,了解如何从 jCenter 迁移到 Maven Central。 请注意,Maven Central 不包含已弃用的模块。 确保项目没有已弃用的 App Center SDK 模块的依赖项。

  1. 确保在 Android Studio 中触发 Gradle 同步。

在应用程序中集成 SDK 后,可以启动 SDK 并使用 App Center。

4.启动 SDK

4.1 添加 start () 方法

若要使用 App Center,必须选择加入要使用的模块 () 。 默认情况下,不会启动任何模块,必须在启动 SDK 时显式调用每个模块。
在应用的 main activity 类中onCreate插入以下行,以使用 App Center AnalyticsApp Center 崩溃

AppCenter.start(getApplication(), "{Your App Secret}", Analytics.class, Crashes.class);
AppCenter.start(application, "{Your App Secret}", Analytics::class.java, Crashes::class.java)

警告

不建议在源代码中嵌入应用机密。

如果需要单独启动 App Center 服务,应:

  1. 使用应用机密配置或启动它。
  2. 如果代码可以多次调用,检查是否已配置 App Center。
  3. 在没有应用机密的情况下启动所需的服务 () 。
AppCenter.configure(application, "{Your App Secret}");
if (AppCenter.isConfigured()) {
    AppCenter.start(Analytics.class);
    AppCenter.start(Crashes.class);
}
AppCenter.configure(application, "{Your App Secret}");
if (AppCenter.isConfigured()) {
    AppCenter.start(Analytics::class.java);
    AppCenter.start(Crashes::class.java);
}

如果应用程序的多个入口点 (例如,深层链接活动、服务或广播接收器) ,请在应用程序自定义类或每个入口点中调用 start 。 在后一种情况下,如果 App Center 已在调用之前start配置,检查:

if (!AppCenter.isConfigured())) {
  AppCenter.start(getApplication(), "{Your App Secret}", Analytics.class, Crashes.class);
}
if (!AppCenter.isConfigured()) {
  AppCenter.start(application, "{Your App Secret}", Analytics::class.java, Crashes::class.java)
}

4.2 将占位符替换为应用机密

请确保将文本替换为 {Your App Secret} 应用程序的实际值。 可以在 App Center 门户的“入门”页或“设置”页上找到应用机密。

入门页包含上述代码示例,其中包含应用机密,只需复制粘贴整个示例即可。

上面的示例演示如何使用 start() 方法,并包括 App Center Analytics 和 App Center 崩溃。

如果不想使用这两个服务之一,请从上面的方法调用中删除相应的参数。

除非在 start 方法中将每个模块显式指定为参数,否则不能使用该 App Center 服务。 此外,API start() 只能在应用的生命周期中使用一次 - 所有其他调用都将向控制台记录警告,并且只有第一次调用中包含的模块可用。

例如 - 如果只想加入 App Center Analytics,则应修改 API 调用, start() 如下所示:

AppCenter.start(getApplication(), "{Your App Secret}", Analytics.class);
AppCenter.start(application, "{Your App Secret}", Analytics::class.java)

插入 start() 方法后,Android Studio 会自动建议所需的导入语句,但如果看到无法识别类名的错误,请将以下行添加到活动类中的 import 语句:

import com.microsoft.appcenter.AppCenter;
import com.microsoft.appcenter.analytics.Analytics;
import com.microsoft.appcenter.crashes.Crashes;
import com.microsoft.appcenter.AppCenter
import com.microsoft.appcenter.analytics.Analytics
import com.microsoft.appcenter.crashes.Crashes

你已准备好在 SDK 自动收集的门户上可视化分析和崩溃数据。

查看 App Center AnalyticsApp Center 崩溃 的文档,了解如何自定义和使用这两个服务的更高级功能。

若要了解如何开始使用应用内更新,请阅读 App Center Distribute 的文档。

5. 备份规则仅 (Android)

注意

面向 Android 6.0 (API 级别 23) 或更高版本的应用会自动启用自动备份。 

注意

如果已有包含备份规则的自定义文件,请切换到第三步。

如果使用自动备份来避免获取有关设备的错误信息,请遵循后续步骤:

5.1. 对于 Android 11 (API 级别 30) 或更低。

  1. res/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
  1. 打开项目的 AndroidManifest.xml 文件。 将 android:fullBackupContent 属性添加到 <application> 元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:fullBackupContent="@xml/appcenter_backup_rule"
  1. 将以下备份规则添加到 appcenter_backup_rule.xml 文件:
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
      <exclude domain="sharedpref" path="AppCenter.xml"/>
      <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
      <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
      <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
      <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
  </full-backup-content>

5.2. 对于 Android 12 (API 级别 31) 或更高版本。

  1. res/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
  1. 打开项目的 AndroidManifest.xml 文件。 将 android:dataExtractionRules 属性添加到 <application> 元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:dataExtractionRules="@xml/appcenter_backup_rule"
  1. 将以下备份规则添加到 appcenter_backup_rule.xml 文件:
<data-extraction-rules xmlns:tools="http://schemas.android.com/tools">
    <cloud-backup>
        <exclude domain="sharedpref" path="AppCenter.xml"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
        <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
        <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
    </cloud-backup>
    <device-transfer>
        <exclude domain="sharedpref" path="AppCenter.xml"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
        <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
        <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
    </device-transfer>
</data-extraction-rules>