본문 바로가기

프로그래밍/Android

안드로이드 앱의 설치 위치 지정해주기

안드로이드 버전 2.2 이상부터는 앱을 외부 저장장치에도 저장할 수 있게 됐습니다.




위의 링크를 따라가 보시면, 인스톨 위치를 설정하는 방법에 대한 원문을 보실 수 있습니다.


저는 좀 간단하게 설명을 드리죠.
인스톨 위치를 설정하기 위해서는 manifest 파일을 수정하시면 됩니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
... >

위에서 보면 android:installLocation="preferExternal" 부분이 중요한 부분이죠.


android:installLocation의 값을 무엇으로 주냐에 따라 인스톨 위치가 결정됩니다.
여기 예제에서는 preferExternal 였구요, 이는 외부 저장 장치(SD카드 등)에 기본적으로 저장을 하고, 만약 외부 저장 장치가 꽉 차면 내부에 저장을 하겠다는 뜻입니다.

preferExternal 말고도 autointernalOnly도 값으로 들어갈 수 있습니다.

auto는 기본적으로 내부에 저장을 하고, 내부에 공간이 없으면 외부에 저장을 하겠다는 뜻입니다.
internalOnly는 무조건 내부에만 저장을 하겠다는 뜻이죠.



참고!!! 

현재 개발 중인 안드로이드 라이브러리 버전이 2.2보다 낮다면 android:installLocation을 넣어주면 없는 속성이라고 에러를 발생시킵니다. 
그래서 프로젝트 오른 클릭 - Properties - Android - Project Build Target을 2.2 이상으로 해줘야합니다.
또한 manifest에서 android:minSdkVersion을 4정도로 해주는게 좋습니다. 보통 3이하로 하게 되면 필터링 문제가 생기기 때문에 4이상이 좋은 것 같습니다.


즉, 최종적인 메니페스트는 다음과 같이 구성되겠죠?

<manifest android:installLocation="preferExternal"
.......>
<application .......>
</application>
<user-sdk android:minSdkVersion="4" />
</manifest>