Research Android APK Expansion Files(.OBB)

이미지 출처 : http://developer.sonymobile.com/knowledge-base/tutorials/android_tutorial/tips-for-reducing-apk-file-size-2/
 안드로이드 앱을 만들어 구글 플레이에 서비스할 때 APK용량은 최대 50mb로 제한됩니다. 그럼 50메가 넘어가는 앱은 어떻게 서비스를 해야할까요? 수단과 방법을 가리지않고 apk를 최적화해서 빌드 하는 방법도 있겠습니다. 또는 패치 시스템을 개발할 수도 있겠죠.

 전자는 저도 해보지 않아 모르겠지만 후자의 경우라면 cocos2d-x 기반 프로젝트시 curl을 이용해서 http나 ftp 프로토콜을 사용해 파일을 다운로드 할 수있습니다. 유니티3D 기반 프로젝트라면 에셋번들을 사용해서 나중에 패치로 적용할 파일을 관리하고 WWW 객체로 추가 다운로드하면 됩니다. 여기서 curl이나 에셋번들만 가지고는 단순히 파일을 받거나 패킹하는 것만 되는거고 그런 파일들을 버전관리까지 해주면서 최종 패치까지하는 패치 시스템은 직접 구현을 해줘야합니다.

 위의 전자와 후자 말고 다른 대안도 있습니다. iOS는 모르겠지만 안드로이드에서는 지금 리서치중인 APK Expansion Files는 OBB 파일을 사용해서 처리할 수 있다고합니다. 확장파일이라고도 부르는 것 같네요. 사실 현재 중국버전 준비하면서 후자인 패치 시스템을 개발한 상태입니다. 유니티3D 에셋 번들 패치시스템이요. 그런데 중국에서 다 해놨더니 구글의 확장파일로 해달라고 요구사항이 와서 이렇게 리서치중이네요.

 확장파일을 사용해서 기본적인 50MB 외에 최대 각각 2GB의 파일 2개를 사용할 수 있다고합니다. 2개중 한개는 기본 확장파일이고 나머지 다른 한개는 선택사항으로 패치 확장파일로 사용된다네요. 기본 확장파일에는 크게 패치할 내용이 아닌것들을 묶어주면 되겠고, 패치 확장파일에는 자주 패치가 이루어지는 파일을 묶어주면 되겠습니다.

 위에서도 말했지만 이런 일련의 과정들이 추가 비용없이 구글이 제공하는 api만 사용할 줄 알면 패치 서버나 따로 패치 시스템 구현이 없는 즉, 추가 비용없이 개발할 수 있게되는거죠. 파일 호스팅도 구글에서 제공하니까요.

 다음에는 유니티3D 안드로이드에 OBB를 적용하는 것을 정리해보겠습니다.

참고

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.