그러면 브라우저에서 폴더를 단일 압축 파일(“ZIP” 파일이라고 함)으로 다운로드합니다. 브라우저 기본 설정에 설정된 대로 브라우저가 일반적으로 파일을 다운로드하는 모든 곳에서 ZIP 파일을 찾을 수 있습니다. 원래 폴더와 이름이 같지만 .zip으로 끝납니다. 주의: APK 파일과 달리 공유 저장소에 저장된 모든 파일은 사용자 및 기타 앱에서 읽을 수 있습니다. 나는 http를 사용하여 인터넷어딘가에 사용할 수있는 일부 데이터 파일을 필요로하는 gradle 프로젝트가 있습니다. 목표는 이 불변의 원격 파일이 처음 빌드될 때 한 번 당겨지는 것입니다. 후속 빌드는 다시 다운로드하지 않아야 합니다. APK 확장 파일이 장치에 저장되면 파일을 읽는 방법은 사용한 파일 유형에 따라 다릅니다. 개요에서 설명한 대로 확장 파일은 원하는 모든 종류의 파일일 수 있지만 특정 파일 이름 형식을 사용하여 이름이 바뀌고 /Android/obb//에 저장됩니다. 예를 들어, 다음은 DownloaderService의 완전한 구현입니다: 이 경우 각 XAPKFile 개체는 알려진 확장 파일의 버전 번호와 파일 크기를 보유하고 있으며 주요 확장 파일인지 여부에 대한 부울을 보유합니다. (자세한 내용은 샘플 앱의 샘플다운더활동 클래스를 참조하십시오.) 대부분의 경우 “외부 웹 사이트의 파일” 필드를 예로 설정해야 합니다. 각 앱에 대해 이 디렉터리에는 두 개 이상의 확장 파일이 없습니다. 하나는 기본 확장 파일이고 다른 하나는 패치 확장 파일(필요한 경우)입니다.

새 확장 파일로 앱을 업데이트할 때 이전 버전이 덮어씁니다. 안드로이드 4.4 (API 수준 19)이기 때문에 앱은 외부 저장소 권한없이 OBB 확장 파일을 읽을 수 있습니다. 그러나 Android 6.0(API 수준 23)의 일부 구현에서는 나중에 도허가가 필요하므로 앱 매니페스트에서 READ_EXTERNAL_STORAGE 권한을 선언하고 런타임에 권한을 요청해야 합니다. 다운로드 기능 라이브러리의 프로젝트 속성에 라이선스 확인 라이브러리를 추가해야 합니다. 다시 생성하거나 다시 다운로드할 수 있는 파일은 iCloud에 백업되지 않는 파일로 플래그를 지정하지 않는 한 ~/Documents 폴더에 상주할 수 없습니다(오프라인으로 사용할 수 있어야 하는 동적 콘텐츠를 처리하지 않는 경우 앱 자산에 추가하기만 하면 됩니다). Google Play URL을 사용하여 확장 파일을 다운로드하는 솔루션을 직접 개발하려는 경우 앱 라이선스 설명서를 따라 라이선스 요청을 수행한 다음 응답 엑스트라에서 확장 파일 이름, 크기 및 URL을 검색해야 합니다. 라이선스 서비스의 확장 파일 이름, 크기 및 URL을 캡처하는 라이선스 정책으로 APKExpandPolicy 클래스(라이선스 확인 라이브러리에 포함)를 사용해야 합니다.