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 门户中创建了应用,则可以跳过此步骤。
- 前往 appcenter.ms。
- 注册或登录,然后单击页面右上角的 “添加新 应用”按钮,然后从下拉菜单中选择“ 添加新应用 ”。
- 输入应用的名称和可选说明。
- 选择 “Android ”作为操作系统,选择 “Java ”作为平台。
- 单击 “添加新应用 ”按钮。
创建应用后,可以在 2 下的入门页面上获取其应用机密。启动 SDK。 或者,可以单击 “设置”,在右上角单击 三个垂直点 ,然后选择“ 复制应用机密 ”以获取应用机密。
3.添加 App Center SDK 模块
- 打开项目的应用级别 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 模块的依赖项。
- 确保在 Android Studio 中触发 Gradle 同步。
在应用程序中集成 SDK 后,可以启动 SDK 并使用 App Center。
4.启动 SDK
4.1 添加 start () 方法
若要使用 App Center,必须选择加入要使用的模块 () 。 默认情况下,不会启动任何模块,必须在启动 SDK 时显式调用每个模块。
在应用的 main activity 类中onCreate
插入以下行,以使用 App Center Analytics 和 App 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 服务,应:
- 使用应用机密配置或启动它。
- 如果代码可以多次调用,检查是否已配置 App Center。
- 在没有应用机密的情况下启动所需的服务 () 。
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 Analytics 和 App Center 崩溃 的文档,了解如何自定义和使用这两个服务的更高级功能。
若要了解如何开始使用应用内更新,请阅读 App Center Distribute 的文档。
5. 备份规则仅 (Android)
注意
面向 Android 6.0 (API 级别 23) 或更高版本的应用会自动启用自动备份。
注意
如果已有包含备份规则的自定义文件,请切换到第三步。
如果使用自动备份来避免获取有关设备的错误信息,请遵循后续步骤:
5.1. 对于 Android 11 (API 级别 30) 或更低。
- 在 res/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
- 打开项目的 AndroidManifest.xml 文件。 将
android:fullBackupContent
属性添加到<application>
元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:fullBackupContent="@xml/appcenter_backup_rule"
- 将以下备份规则添加到 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) 或更高版本。
- 在 res/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
- 打开项目的 AndroidManifest.xml 文件。 将
android:dataExtractionRules
属性添加到<application>
元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:dataExtractionRules="@xml/appcenter_backup_rule"
- 将以下备份规则添加到 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>