Migrate from the HockeySDK to App Center Android SDK

Follow this documentation if you're looking to update your application to use App Center SDK instead of HockeySDK.

1. Update the libraries

Open the project's app level build.gradle file (app/build.gradle) and replace the following line in the dependencies { ... } configuration.

Before:

implementation 'net.hockeyapp.android:HockeySDK:...'

After:

def appCenterSdkVersion = '4.1.0'
implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}"
implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}"
implementation "com.microsoft.appcenter:appcenter-distribute:${appCenterSdkVersion}"

The App Center SDK is designed with a modular approach – you can integrate only those services that you're interested in. Each SDK module needs to be added as a separate dependency in this section. See the equivalences in the next table:

HockeyApp class App Center module
MetricsManager Analytics
CrashManager Crashes
UpdateManager Distribute

2. Update the SDK setup code

2.1 Convert the application identifier

The App Center SDK uses application identifiers in the globally unique identifier (GUID) format. Your HockeyApp App ID can be used by App Center but you need to convert it to a different format. To convert the identifier you must add four hyphens to get an 8-4-4-4-12 representation.

Before (HockeyApp): 00112233445566778899aabbccddeeff

After (App Center): 00112233-4455-6677-8899-aabbccddeeff

2.2 Replace SDK initialization in the application code

  1. Replace the following imports in your activity class.

    Before:

    import net.hockeyapp.android.CrashManager;
    import net.hockeyapp.android.metrics.MetricsManager;
    import net.hockeyapp.android.UpdateManager;
    

    After:

    import com.microsoft.appcenter.AppCenter;
    import com.microsoft.appcenter.analytics.Analytics;
    import com.microsoft.appcenter.crashes.Crashes;
    import com.microsoft.appcenter.distribute.Distribute;
    
  2. Replace registration code inside your app's main activity class' onCreate-callback.

    Before:

    CrashManager.register(this);
    MetricsManager.register(getApplication());
    UpdateManager.register(this);
    

    After:

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

    If you used metadata to provide the application identifier, you must copy it from there to the initialization code and remove

    <meta-data android:name="net.hockeyapp.android.appIdentifier" android:value="..." />
    

    from your AndroidManifest.xml file.

  3. Replace HockeyApp API calls throughout the application. The detailed API mapping tables are given below.

3. Services and feature comparison

Core

Feature HockeyApp App Center
Adjust the log level HockeyLog.setLogLevel AppCenter.setLogLevel
Identify installations Internal only AppCenter.getInstallId
Identify users Documentation (crashes only) AppCenter.setUserId

Analytics

Feature HockeyApp App Center
Automatically track sessions Yes, can be disabled by MetricsManager.setSessionTrackingDisabled Documentation (can't be disabled)
Custom events with properties MetricsManager.trackEvent Analytics.trackEvent
Disable service at runtime MetricsManager.disableUserMetrics and MetricsManager.enableUserMetrics Analytics.setEnabled

Crashes

Feature HockeyApp App Center
Automatically send crashes Documentation (disabled by default) Documentation (enabled by default)
Attach additional meta data Documentation Documentation (can be attached from listener)
Customize user dialog Yes Documentation (not provided by default)
Get info about the sending status Documentation Documentation
Info about a previous crash CrashManager.getLastCrashDetails Crashes.getLastSessionCrashReport

Distribute

Note

Unlike in HockeyApp, App Center in-app updates feature only works with RELEASE builds (by default) that are distributed using the App Center Distribute service. If the app is using a private distribution group, once the app is installed and opened for the first time after the App Center Distribute SDK has been added, a browser will open to authenticate the user and enable in-app updates. This browser will also open if you set the private in-app update track at runtime. This is a ONE-TIME step that won't occur for subsequent releases of your app. Refer to the App Center Distribute Documentation for more details.

Feature HockeyApp App Center
Restricted in-app updates LoginManager.verifyLogin Distribute.setUpdateTrack
Disable service at runtime UpdateManager.unregister Distribute.setEnabled
Customize the update dialog Documentation Documentation

Feedback Service

The feedback service won't be supported in App Center. See HockeyApp feedback.