개발 가이드
이 문서는 Android SDK를 활용한 앱 개발 지침을 제공합니다. SDK는 콘텐츠 재생 및 관리를 위한 핵심 API를 제공하며, 플레이어 UI는 개발자가 직접 구현해야 합니다.
Android SDK API 레퍼런스
SDK에 포함된 전체 API 명세는 아래 문서를 참고하세요.
지원 아키텍처 및 라이브러리 구성
SDK는 다양한 디바이스 환경과의 호환성을 보장하기 위해 다음 CPU 아키텍처용 Native 라이브러리와 Java 라이브러리를 포함합니다.
- 지원 아키텍처: arm64-v8a, armeabi, armeabi-v7a, x86, x86_64
- 라이브러리
kollusplayer_sdk-debug.jar: 개발 단계에서 사용하며 디버그 로그를 포함합니다.kollusplayer_sdk-release.jar: 실제 마켓 배포용이며 로그를 포함하지 않습니다.
KollusStorage
KollusStorage는 SDK의 핵심 요소로, 다음과 같은 주요 기능의 라이프사이클 관리 및 데이터 처리를 담당합니다.
- SDK 인증
- 콘텐츠 정보 조회
- 콘텐츠 다운로드 및 삭제
- 스트리밍 캐시 데이터 관리
인스턴스 초기화 및 해제 절차
1. 인스턴스 획득 (getInstance)
KollusStorage는 하나의 스토리지에 대해 단일 인스턴스(Singleton)로 운영되어야 합니다.
공통 BaseActivity에서 초기화한 후, 하위의 모든 Activity가 동일한 인스턴스를 공유하도록 설계하는 것을 권장합니다.
2. SDK 인증 (initialize)
발급받은 키를 사용하여 SDK 사용의 유효성을 검증합니다.
public int initialize(String key, String expireDate, String packageName);
- 반환 코드
ErrorCodes.ERROR_OK: 정상ErrorCodes.ERROR_INVALID_KEY: 잘못된 키ErrorCodes.ERROR_EXPIRED_KEY: 키 만료
3. 경로 및 디바이스 설정 (setDevice/setDeviceAsync)
데이터가 저장될 스토리지 경로와 디바이스 고유 식별자를 설정합니다.
비동기 방식인 setDeviceAsync보다 안정성이 높은 동기 방식인 setDevice 사용을 강력히 권장합니다. (동기 방식 처리 시 평균 소요 시간: 약 100ms)
동기 방식 (권장)
public int setDevice(String storagePath, String deviceSha1, String deviceGUIDMd5, boolean bTablet);
비동기 방식
public void setDeviceASync(String storagePath, String deviceSha1, String deviceGUIDMd5, boolean bTablet, OnKollusStorageDeviceListener listener);
4. 자원 해제 및 재설정 (finish)
사용 중인 리소스를 정리하거나 스토리지 경로를 변경해야 할 때 이 메서드를 호출합니다.
finish()를 호출한 후 다시 스토리지를 사용하려면 반드시 위의 1~3번 과정을 다시 수행해야 합니다.