본문으로 건너뛰기

개발 환경 설정

LLM 프롬프트 제공

LLM 기반 SDK 정합을 위해서는 Android 프롬프트 섹션을 참고하세요. 단계별 프롬프트와 통합 프롬프트를 사용할 수 있습니다.

Dependency 설정​

FLOWER SDK를 Android 프로젝트에서 사용하려면 AnypointMedia의 Maven repository를 통해 Gradle dependencies에 라이브러리를 추가합니다.

또한 SDK의 일부 전이 의존성(transitive dependency)은 Google Maven repository와 JitPack에서 받아오므로, AnypointMedia repository와 함께 google()과 https://jitpack.io도 반드시 선언해야 합니다.

repositories {
google()
maven(url = "https://maven.anypoint.tv/repository/public-release")
maven(url = "https://jitpack.io")
}

...

dependencies {
implementation("flower-sdk:sdk-android-ott:X.X.X")
}
주의

google() 또는 https://jitpack.io가 repository 목록에 없으면 SDK의 전이 의존성을 해석하는 단계에서 빌드가 실패합니다. 프로젝트가 settings.gradle(.kts)의 dependencyResolutionManagement에서 repository를 선언하는 구조라면, 모듈 수준 build.gradle(.kts) 대신 해당 위치에 추가하세요.

Media3 ExoPlayer(FlowerMedia3ExoPlayer) 사용 시 추가 의존성​

FlowerMedia3ExoPlayer를 통해 Media3 ExoPlayer를 사용하는 경우, 기본 sdk-android-ott 의존성 외에 Media3 버전에 대응하는 추가 아티팩트를 함께 의존성에 추가해야 합니다.

버전 2.9.16부터 FLOWER SDK는 Media3 버전 간 바이너리 호환성 문제를 피하기 위해 Media3 어댑터를 버전별 아티팩트로 분리하여 배포합니다. 추가 아티팩트는 sdk-android-ott를 참조(의존)하므로 두 아티팩트를 함께 추가해야 하며, 추가 아티팩트만 단독으로 사용할 수는 없습니다.

지원하는 androidx.media3 버전: 1.2.1 이상. 사용 중인 androidx.media3 버전에 맞는 아티팩트를 선택하세요.

사용 중인 androidx.media3 버전추가할 아티팩트
1.2.1 이상flower-sdk:sdk-android-ott-media3-{androidx.media3-version}:X.X.X
dependencies {
implementation("flower-sdk:sdk-android-ott:X.X.X")

// FlowerMedia3ExoPlayer를 사용할 때만 필요합니다.
// 사용 중인 androidx.media3 버전과 일치하는 아티팩트를 선택하세요.
implementation("flower-sdk:sdk-android-ott-media3-1.10.1:X.X.X")
}
노트

기본 sdk-android-ott 아티팩트는 항상 필요합니다. sdk-android-ott-media3-* 아티팩트는 FlowerMedia3ExoPlayer를 통해 Media3 ExoPlayer를 사용하는 경우에만 추가하면 되며, 내부적으로 sdk-android-ott에 의존합니다. FlowerExoPlayer2(레거시 ExoPlayer) 또는 FlowerBitmovinPlayer만 사용하는 경우에는 추가할 필요가 없습니다.

정보

위 표에 해당하지 않는 androidx.media3 버전(예: 1.2.1 미만)을 사용 중이라면 dev-support@anypointmedia.com으로 문의해 주세요.

Android Cleartext Traffic 예외 설정​

FLOWER SDK를 사용할 때, SDK가 HTTP를 통해 올바르게 통신하려면 특정 도메인을 cleartext traffic 예외로 설정해야 합니다. Android 9(API 레벨 28)부터 cleartext(HTTP) 트래픽이 기본적으로 차단됩니다.

아래 두 가지 방법 중 하나를 선택할 수 있습니다:

  1. Network Security Config를 사용하여 특정 도메인에 대해서만 cleartext traffic 허용 (권장)
  2. usesCleartextTraffic="true"를 사용하여 전체 cleartext traffic 허용

방법 1 (권장) — 특정 도메인만 허용​

1. Network Security Config 파일 생성​

다음 파일을 생성합니다:

app/src/main/res/xml/network_security_config.xml

2. 다음 설정 추가​

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">
prod-reds-device-ad-distributor.ap-northeast-2.elasticbeanstalk.com
</domain>
</domain-config>
</network-security-config>

cleartextTrafficPermitted="true" → 이 도메인에 대해서만 HTTP 트래픽을 허용합니다.

includeSubdomains="true" → 모든 하위 도메인도 허용합니다(필요 없는 경우 false로 설정).

3. AndroidManifest.xml에 적용​

<application> 태그 안에 다음을 추가합니다:

<application
android:name=".MyApplication"
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="false"
... >

이 방법은 지정된 도메인에만 HTTP 접근을 허용하므로 더 안전합니다.

방법 2 — 전체 Cleartext Traffic 허용 (권장하지 않음)​

다음과 같이 설정하면 모든 도메인에 대해 HTTP를 허용할 수 있습니다:

<application
android:name=".MyApplication"
android:usesCleartextTraffic="true"
... >

주의 사항

  • 모든 도메인에 대해 HTTP 트래픽이 허용됩니다.
  • 이 경우 Network Security Config는 필요하지 않습니다.
  • 보안 위험으로 인해 프로덕션 환경에서는 권장하지 않습니다.

(참고) Android 버전별 동작​

Android 버전동작
API 28+ (Android 9+)HTTP가 기본적으로 차단됨
API 27 이하HTTP가 기본적으로 허용됨