从 HockeySDK 迁移到 App Center Android SDK
重要
Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。
如果要更新应用程序以使用 App Center SDK 而不是 HockeySDK,请遵循此文档。
1. 更新库
() app/build.gradle
打开项目的应用级别 build.gradle 文件,并替换配置中的dependencies { ... }
以下行。
早于:
implementation 'net.hockeyapp.android:HockeySDK:...'
晚于:
def appCenterSdkVersion = '5.0.6'
implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}"
implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}"
implementation "com.microsoft.appcenter:appcenter-distribute:${appCenterSdkVersion}"
App Center SDK 采用模块化方法设计 - 只能集成感兴趣的服务。 在本部分中,需要将每个 SDK 模块添加为单独的依赖项。 请参阅下表中的等效项:
HockeyApp 类 | App Center 模块 |
---|---|
MetricsManager |
Analytics |
CrashManager |
Crashes |
UpdateManager |
Distribute |
2.更新 SDK 设置代码
2.1 转换应用程序标识符
App Center SDK 使用全局唯一标识符 (GUID) 格式的应用程序标识符。 App Center 可以使用 HockeyApp 应用 ID,但需要将其转换为不同的格式。 若要转换标识符,必须添加四个连字符才能获取 8-4-4-4-12 表示形式。
在 (HockeyApp) 之前: 00112233445566778899aabbccddeeff
(App Center) 后: 00112233-4455-6677-8899-aabbccddeeff
2.2 替换应用程序代码中的 SDK 初始化
替换活动类中的以下导入。
早于:
import net.hockeyapp.android.CrashManager; import net.hockeyapp.android.metrics.MetricsManager; import net.hockeyapp.android.UpdateManager;
晚于:
import com.microsoft.appcenter.AppCenter; import com.microsoft.appcenter.analytics.Analytics; import com.microsoft.appcenter.crashes.Crashes; import com.microsoft.appcenter.distribute.Distribute;
替换应用的“main活动类”-callback 中的
onCreate
注册代码。早于:
CrashManager.register(this); MetricsManager.register(getApplication()); UpdateManager.register(this);
晚于:
AppCenter.start(getApplication(), "{Your App Secret}", Analytics.class, Crashes.class, Distribute.class);
如果使用元数据来提供应用程序标识符,则必须将其从那里复制到初始化代码并删除
<meta-data android:name="net.hockeyapp.android.appIdentifier" android:value="..." />
从 AndroidManifest.xml 文件。
在整个应用程序中替换 HockeyApp API 调用。 下面提供了详细的 API 映射表。
3. 服务和功能比较
核心
功能 | HockeyApp | 应用中心 |
---|---|---|
调整日志级别 | HockeyLog.setLogLevel |
AppCenter.setLogLevel |
标识安装 | 仅供内部使用 | AppCenter.getInstallId |
标识用户 | 仅崩溃 | AppCenter.setUserId |
分析
功能 | HockeyApp | 应用中心 |
---|---|---|
自动跟踪会话 | 是,可通过 禁用 MetricsManager.setSessionTrackingDisabled |
无法禁用文档 () |
具有属性的自定义事件 | MetricsManager.trackEvent |
Analytics.trackEvent |
在运行时禁用服务 |
MetricsManager.disableUserMetrics 和 MetricsManager.enableUserMetrics |
Analytics.setEnabled |
崩溃
功能 | HockeyApp | 应用中心 |
---|---|---|
自动发送崩溃 | 默认情况下禁用 | 默认启用文档 () |
附加其他元数据 | 是 | 可以从侦听器) 附加文档 ( |
“自定义用户”对话框 | 是 | 默认情况下未提供文档 () |
获取有关发送状态的信息 | 是 | 文档 |
有关上一次崩溃的信息 | CrashManager.getLastCrashDetails |
Crashes.getLastSessionCrashReport |
分发
注意
与 HockeyApp 不同,App Center 应用内更新功能仅适用于 默认情况下 使用 App Center 分发 服务分发 () 版本。 如果应用使用的是专用通讯组,在添加 App Center 分发 SDK 后首次安装并打开应用后,浏览器将打开以对用户进行身份验证并启用应用内更新。 如果在运行时设置专用应用内更新跟踪,此浏览器也会打开。 这是一次性步骤,不会在应用的后续版本中发生。 有关更多详细信息,请参阅 App Center 分发文档 。
功能 | HockeyApp | 应用中心 |
---|---|---|
受限的应用内更新 | LoginManager.verifyLogin |
Distribut.setUpdateTrack |
在运行时禁用服务 | UpdateManager.unregister |
Distribute.setEnabled |
自定义更新对话框 | 是 | 文档 |
反馈服务
App Center 不支持反馈服务。 请参阅 HockeyApp 反馈。