2014-07-12 2 views
1

짧게 유지하겠습니다. 내 앱에 필요한 수많은 파일이 들어있는 디렉토리가 있습니다. 나는 내부 메모리에 그것을 유지 무의미한 때문에, SD 카드로 이동해야합니다. 어떻게해야합니까?Android 앱 리소스를 외부 메모리로 이동

처음에는 디렉토리를 res로 유지 한 다음 외부 메모리에 필요한 폴더를 열고 만들고 모든 파일을 이동해야한다고 가정합니다.

어떻게하면 되나요? ? 앱을 실행할 때마다 외부 폴더의 무결성을 확인해야합니까?

감사합니다.

+0

현재 동일한 요구 사항이 있으며 APK 확장 파일이 더 나은 솔루션이라고 생각합니다. http://developer.android.com/google/play/expansion-files.html –

답변

1

res 폴더를 사용하여이를 수행 할 수 없으며 res 폴더는 apk 파일 내에서 유지 관리되도록 설계되었습니다.

파일이 앱으로 분리되어 저장되도록하려면 앱을 설치 한 후 리소스를 다운로드하고 원하는 위치에 저장해야합니다.하지만 나중에 무결성 및로드 여부를 확인해야합니다. 너 자신도.

+0

어디서 다운로드할까요? APK로 파일을 번들로 묶은 다음 SD 카드로 옮길 방법이 없습니까? –

+0

서버가 필요합니다. –

2

각 res/폴더를 쉽게 반복 할 수 있으며 원하는 경우 SDCARD로 복사 할 수도 있습니다. 입술/원시 폴더에 대한 예 :

void iterate_over_res_raw() { 
    Field[] fields = R.raw.class.getFields(); 
    for (int count=0; count < fields.length; count++){ 
     String rawElement = fields[count].getName(); 
    } 
} 

그리고 SDCARD에 선택된 자원이 복사에서

.


그러나 이것은 당신이 그들을 복사 후 고해상도 파일을 삭제할 수 없습니다 때문에 문제가 해결되지 않습니다. 앱이 자체 APK 콘텐츠를 삭제하거나 업데이트 할 수 없습니다. 보안 제한 사항입니다.


그래서 당신은 무엇을 할 수 :

A.없이/최소한의 리소스 파일과 APK를 생성하고이 서버에서 먼저 실행시 SDCARD에 추가 리소스를 다운로드했다.

B.

는 preferExternal에의 installLocation을 설정하여 SDCARD에 전체 APK 설치 허용 :
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="string" 
      ....... 
      android:installLocation="preferExternal" > 

는 도움이되기를 바랍니다.

관련 문제