이 문서는 DFINERY Android SDK를 Android에 통합하는 방법을 다룹니다. DFINERY SDK를 설치하면 이벤트 분석 기능과 유저 프로필 기능 그리고 액션 기능이 제공됩니다.
시작하기 전에
서비스 설정
DFINERY 콘솔 의 서비스 관리/서비스 정보 페이지에서 데이터 소스 항목에 Android를 체크하셔야 합니다.
지원 정보
최소 지원 SDK : Android 4.4+ / API 19+
최근에 컴파일된 Firebase Cloud Messaging 버전 : 24.0.0
SDK 설치
의존성 추가하기
앱에서 DFINERY SDK의 의존성을 적용하려면 다음 단계를 완료하세요.
1. maven 의존성을 가져오기 위해 repositories 내에 mavenCentral
을 추가합니다.
build.gradle (Gradle 3.5 이전) settings.gradle (Gradle 3.5 이후)
Copy allprojects {
repositories {
mavenCentral()
}
}
Copy pluginManagement {
repositories {
mavenCentral()
}
}
dependencyResolutionManagement {
repositories {
mavenCentral()
}
}
2. 앱의 모듈 디렉터리 내에 있는 build.gradle
파일을 엽니다.
build.gradle build.gradle.kts
Copy dependencies {
implementation 'com.google.android.gms:play-services-appset:16.0.2'
//Get the latest version from https://mvnrepository.com/artifact/com.igaworks.dfinery/android-sdk
implementation 'com.igaworks.dfinery:android-sdk:HERE_LATEST_VERSION'
}
Copy dependencies {
implementation( "com.google.android.gms:play-services-appset:16.0.2" )
//Get the latest version from https://mvnrepository.com/artifact/com.igaworks.dfinery/android-sdk
implementation( "com.igaworks.dfinery:android-sdk:HERE_LATEST_VERSION" )
}
SDK 초기화
초기화 하기
앱에서 DFINERY SDK를 초기화하려면 다음 단계를 완료하세요.
1. Application을 상속한 객체를 생성합니다. 상속한 객체가 이미 있을 경우 해당 객체를 사용합니다.
Java Kotlin
Copy public class BaseApplication extends Application
Copy class BaseApplication : Application ()
2. Application을 상속한 객체에서
onCreate() 메소드를 Override 합니다.
Java Kotlin
Copy @ Override
public void onCreate() {
super . onCreate ();
}
Copy override fun onCreate () {
super . onCreate ()
}
3. onCreate() 메소드 내에 다음 코드를 작성합니다.
Service ID는 DFINERY Console 의 서비스 관리/서비스 정보/Key 정보/서비스키
경로에서 확인이 가능합니다.
Java Kotlin
Copy Dfinery . getInstance () . init ( this , "SERVICE_KEY" );
Copy Dfinery. getInstance (). init ( this , "SERVICE_KEY" )
다음 코드 스니펫은 초기화 작성 완료 시의 예를 보여줍니다.
Java Kotlin
Copy public class BaseApplication extends Application {
@ Override
public void onCreate () {
super . onCreate ();
Dfinery . getInstance () . init ( this , "SERVICE_KEY" );
}
}
Copy class BaseApplication : Application (){
override fun onCreate () {
super . onCreate ()
Dfinery. getInstance (). init ( this , "SERVICE_KEY" )
}
}
4. AndroidManifest.xml에 작성한 Application을 등록합니다.
Copy <? xml version = "1.0" encoding = "utf-8" ?>
< manifest xmlns : android = "http://schemas.android.com/apk/res/android" >
< application
android : name = ".BaseApplication" >
</ application >
</ manifest >
5. AndroidManifest.xml에 필요한 권한을 추가합니다.
Copy < uses-permission android : name = "android.permission.INTERNET" />
< uses-permission android : name = "android.permission.ACCESS_NETWORK_STATE" />
구글 광고 ID 설정하기(선택사항)
Google 광고 ID를 수집하기 위해선 setGoogleAdvertisingId()
메소드를 통해 수동으로 설정해야합니다.
1. 앱의 모듈 디렉터리 내에 있는 build.gradle
파일을 엽니다.
build.gradle build.gradle.kts
Copy dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
}
Copy dependencies {
implementation( "com.google.android.gms:play-services-ads-identifier:18.0.1" )
}
3. AndroidManifest.xml에 필요한 권한을 추가합니다.
Copy < uses-permission android : name = "com.google.android.gms.permission.AD_ID" />
4. setGoogleAdvertisingId()
메소드를 통해 광고 ID를 설정합니다.
광고 ID 수집 로직은 별도의 스레드에서 동작해야 합니다. 아래 코드 스니펫은 Thread를 생성하여 동작했지만, 필요에 따라 다른 방법(AsyncTask, 코루틴 등)을 사용하여도 됩니다.
Java Kotlin
Copy new Thread( new Runnable() {
@ Override
public void run() {
try {
AdvertisingIdClient . Info idInfo = AdvertisingIdClient . getAdvertisingIdInfo(getApplicationContext());
DfineryProperties . setGoogleAdvertisingId( idInfo . getId() , idInfo . isLimitAdTrackingEnabled());
} catch ( Exception e) {
e . printStackTrace();
}
}
}) . start ();
Copy Thread {
try {
val idInfo = AdvertisingIdClient. getAdvertisingIdInfo (
applicationContext
)
DfineryProperties. setGoogleAdvertisingId (idInfo.id, idInfo.isLimitAdTrackingEnabled)
} catch (e: Exception ) {
e. printStackTrace ()
}
}. start ()
SDK 설정
SDK 초기화 시에 로그 활성화 등의 옵션을 설정할 수 있습니다.
로그 활성화 하기
로그 활성화는 DFINERY의 설정을 적용하는 DfineryConfig를 사용하여 설정 가능합니다. DfineryConfig는 init()
메소드 호출 시에 파라미터로 넣어 적용하거나 res/values/dfinery.xml
을 사용하여 설정 할 수 있습니다.
Copy setLogEnable( boolean enable)
첫 번째 인자인 enable
은 로그를 표시할지 말지 설정하는 값입니다. 기본값은 false
입니다.
BuildConfig.DEBUG
값을 넣어 디버그 모드일때만 로그가 출력 되고 배포시에는 출력되지 않게끔 설정할 수 있습니다.
Java Kotlin dfinery.xml
Copy DfineryConfig config = new DfineryConfig . Builder ()
. setLogEnable ( true )
. build ();
Dfinery . getInstance () . init ( this , "SERVICE_KEY" , config);
Copy val config = DfineryConfig. Builder ()
. setLogEnable ( true )
. build ()
Dfinery. getInstance (). init ( this , "SERVICE_KEY" , config)
Copy <? xml version = "1.0" encoding = "utf-8" ?>
< resources >
< bool name = "com_igaworks_dfinery_log_enable" translatable = "false" >true</ bool >
</ resources >
로그 레벨 변경하기
로그 레벨은 Dfinery의 설정을 적용하는 DfineryConfig를 사용하여 설정 가능합니다. DfineryConfig는 init()
메소드 호출 시에 파라미터로 넣어 적용하거나 res/values/dfinery.xml
을 사용하여 설정 할 수 있습니다.
Copy setLogLevel( int logLevel)
첫번째 인자인 logLevel
은 로그 표시 레벨을 설정하는 값입니다. 기본값은 Log.ERROR(6)
입니다.
Java Kotlin dfinery.xml
Copy DfineryConfig config = new DfineryConfig . Builder ()
. setLogLevel ( Log . DEBUG )
. build ();
Dfinery . getInstance () . init ( this , "SERVICE_KEY" , config);
Copy val config = DfineryConfig. Builder ()
. setLogLevel (Log.DEBUG)
. build ()
Dfinery. getInstance (). init ( this , "SERVICE_KEY" , config)
Copy <? xml version = "1.0" encoding = "utf-8" ?>
< resources >
< integer name = "com_igaworks_dfinery_log_level" >2</ integer >
</ resources >
완료
SDK 설치 및 초기화가 완료되었습니다.