apk 확장 작업 방식이 바뀌었고 Android Studio를 사용하여 라이브러리가 작동하는 경우에도이 게시물의 끝에있는 사람들에게 유용한 정보입니다.
당신은 확장 파일이 아직 활성화되지 않습니다 얻을 수있는 링크로 더 이상 초안을 사용할 수 없습니다 1
참고. 확장 파일을 사용하여 알파 또는 베타 버전을 먼저 업로드해야합니다. 확장 파일을 추가하는 것은 업로드하는 두 번째 apk에서만 가능합니다. 따라서 APK 아래의 개발자 게시 섹션에서 세부 정보를 클릭하면 apk 확장 파일이 표시됩니다.
주 2
당신이 안드로이드 스튜디오를 사용하고 그냥 자신의 응용 프로그램 src 디렉토리에 패키지 이름과 자바 파일을 복사하지 않는 다운로더 라이브러리를 사용하도록하려는 경우. eclipse에서 다운로더 라이브러리를 가져오고 export => gradle 빌드 파일을 선택하십시오. 그런 다음 라이브러리를 Android Studio에서 모듈로 가져올 수 있습니다.
주 3
이 확실하지만 또한 플레이 스토어를 통해이어야 한 번 응용 프로그램을 다운로드하여 테스트 장치의 계정에 대한 액세스 권한을 가지고 neccesary 생각하지 않습니다. 따라서 알파 작업을하는 경우 google + 테스트 그룹을 만들고 자신이나 다른 테스트 장치를 추가하십시오.
그냥 지 확인하세요 APK 확장 다운로드를 구현하기 매우 쉽게 이러한 라이브러리와 BTW
:
활동을 (당신이 확장의 다운로드 을 구현하려는 하나를 다운로드가 완료되지 않은 경우 팩 (자동으로 ))는 IDownloaderClient를 구현합니다.
서비스 & 수신기를 설정하고 매니페스트에 설정하십시오.
서비스 클래스의 BASE64_PUBLIC_KEY가 올바른지 여부. first apk => 개발자 콘솔 의 서비스 및 API에서 앱을 찾으십시오. =>이 앱의 라이센스 코드. 주 또는 패치 파일 중 하나를
그것은 클래스 XAPKS 느릅 나무를 사용 boolean expansionFilesDelivered() {
for (XAPKFile xf : xAPKS) {
String fileName = Helpers.getExpansionAPKFileName(this, xf.mIsMain, xf.mFileVersion);
Log.i(TAG, "Expansion filename " +fileName);
if (!Helpers.doesFileExist(this, fileName, xf.mFileSize, false))
return false;
}
return true;
}
이 확장 파일을 나타내는, 수 :
이 코드는 확장 파일이 장치에서 찾을 수 있는지 확인하는 데 사용됩니다 특정 파일 크기 (바이트)를 가지며 apk 버전과 연결됩니다 (처음 추가 된 버전).
private static class XAPKFile {
public final boolean mIsMain; // true
public final int mFileVersion; //example 4
public final long mFileSize; //example 126515695L
// example => main expansion that was first introduced in apk version 4 and is 126515695 bytes in size
XAPKFile(boolean isMain, int fileVersion, long fileSize) {
mIsMain = isMain;
mFileVersion = fileVersion;
mFileSize = fileSize;
}
}
그것 또한 아주 쉽게 구글이 제공 한 우편 도구 (com.android.vending.zipfile)를 사용하여 확장 파일에서 직접 동영상 파일 및 기타 물건을 읽을 수 있습니다.
라이브러리에서 제공된 메소드를 사용하여 확장 파일을 먼저 얻으십시오. 매개 변수는 기본 확장 apk 버전 (필요한 확장 팩이 처음 추가 된 apk 버전)과 패치 apk 버전을 나타내는 정수입니다.
ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(context, APKX_MAIN_APK, APKX_PATCH_APK);
이 zipresourcefile에서 직접 비디오를 재생하려면 비디오
: 당신이 FileDescriptor에 얻을하고 MediaPlayer를이 사용할 수 있습니다이 assetFileDescriptor에서 지금
AssetFileDescriptor a = expansionFile.getAssetFileDescriptor(pathToFileInsideZip);
, 올바른 구문을 얻을 수 있습니다 비디오를 재생할 미디어 플레이어도 두 번째와 세 번째 매개 변수가 필요합니다. 시작 오프셋과 길이를 AssetFileDescriptor에서 가져올 수 있습니다.
player.setDataSource(a.getFileDescriptor(), a.getStartOffset(), a.getLength());
기타 (이미지 같은) 다른 모든 것들 그냥 zipresourcefile의 inputstream의 얻을 수있는 경우 :
ALSO
expansionFile.getInputStream(pathToFileInsideZip);`
것은 당신이 비디오를 압축하지 않는 확인을 이것에 대한 지퍼가 작동합니다! 예를 들어 파일을 MP4를 압축하지 :
zip -n .mp4 -r zipfile.zip . -x ".*" -x "*/.*"
이봐, 내 응용 프로그램은 초안 모드에, 난 내가 올바른 크기를 퍼트 여전히 같은 오류가 발생 한 테스트 계정에 놓여있다. 다른 아이디어가 있습니까? –
드라프 모드도 더 이상 작동하지 않으면 올바르게 테스트하려면 알파 또는 베타 버전으로 앱을 게시해야합니다. apk 확장 파일에 대한 자세한 내용은 내 anwer를 참조하십시오. – Jordy