Android 시작

중요

Visual Studio App Center는 2025년 3월 31일에 사용 중지될 예정입니다. Visual Studio App Center가 완전히 사용 중지될 때까지 계속 사용할 수 있지만 마이그레이션을 고려할 수 있는 몇 가지 권장 대안이 있습니다.

지원 타임라인 및 대안에 대해 자세히 알아봅니다.

App Center SDK는 모든 서비스를 사용할 수 있도록 모듈식 아키텍처를 사용합니다.

App Center SDK에서 수집한 데이터, 일반 데이터 보호 규정FAQ 페이지에서 App Center에서 수집한 데이터에 대한 정보를 찾을 수 있습니다.

App Center Analytics 및 App Center 크래시를 사용하도록 앱에서 App Center Android SDK 설정부터 시작해 보겠습니다. App Center 배포를 앱에 추가하려면 App Center 배포에 대한 설명서를 살펴보세요.

1. 사전 요구 사항

시작하기 전에 다음 필수 조건을 충족시키는지 확인합니다.

  • Android 프로젝트는 Android Studio에서 설정됩니다.
  • Android 버전 5.0(API 수준 21) 이상을 실행하는 디바이스를 대상으로 합니다.

2. App Center 포털에서 앱을 만들어 앱 비밀을 가져옵니다.

App Center 포털에서 앱을 이미 만든 경우 이 단계를 건너뛸 수 있습니다.

  1. appcenter.ms.
  2. 등록하거나 로그인하고 페이지의 오른쪽 위 모서리에 있는 새 추가 단추를 클릭하고 드롭다운 메뉴에서 새 앱 추가 를 선택합니다.
  3. 앱의 이름 및 선택적 설명을 입력합니다.
  4. Android를 OS로 선택하고 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를 시작할 때 각 모듈을 명시적으로 호출해야 합니다.
앱의 기본 활동 클래스 ' onCreate-callback 내에 다음 줄을 삽입하여 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 합니다. 후자의 경우 호출 전에 start App Center가 이미 구성되어 있는지 검사.

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 크래시를 모두 포함하는 방법을 보여 줍니다.

두 서비스 중 하나를 사용하지 않으려면 위의 메서드 호출에서 해당 매개 변수를 제거합니다.

시작 메서드에서 각 모듈을 매개 변수로 명시적으로 지정하지 않는 한 해당 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)

Android Studio는 메서드를 삽입 start() 한 후 필요한 import 문을 자동으로 제안하지만 클래스 이름이 인식되지 않는 오류가 표시되면 작업 클래스의 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 배포 설명서를 참조하세요.

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>