Korea Blog
안드로이드 애플리케이션 SD 카드에 설치하기
Thursday, February 7, 2013
안드로이드 애플리케이션을 SD 카드에 설치하는 것과 관련한 이슈가 계속해서 제기되고 있습니다. 여러분의 이해를 돕고자 관련 블로그 포스팅을 한글로 제공합니다. 참고 바랍니다.
SD 카드에 설치된 앱 - 자세히 알아보기
작성자: Suchi Amalapurapu
게시일: 2010년 7월 8일
원문 링크:
http://android-developers.blogspot.kr/2010/07/apps-on-sd-card-details.html
안드로이드 2.2에서는 SD 카드 등과 같은 외부 저장 장치에 애플리케이션을 설치할 수 있는 기능을 제공합니다. 이를 통해 사용자는 더 많은 앱을 설치할 수 있으며, 게임과 같이 큰 규모의 에셋을 필요로 하는 앱에 유용합니다. (“SD 카드에 설치된” APK의 모든 콘텐츠가 SD카드에 설치되는 것은 아니라는 점을 주의: dex 파일, 개인 정보 디렉토리, 네이티브 공유 라이브러리는 내부 저장소에 보관됨)
설정 앱에 있는 “앱 관리(Manage Applications)" 화면에서 “SD 카드" 탭이 제공됩니다. 앱 관리 목록에서 표기되는 크기는 내부 저장소에서 앱이 차지하는 공간만을 포함하고 있습니다.
“앱 정보” 화면에 “SD 카드로 이동” 또는 “휴대폰으로 이동” 버튼이 있지만, 종종 비활성화되어 있습니다. 복사가 금지된 앱 및 시스템 앱 업데이트는 SD 카드로 이동할 수 없으며 SD 카드에서 작동한다는 것을 명시화하지 않습니다.
설치 우선권 제어하기
SD 카드 설치는 안드로이드 2.2에서 제공하는 선택 사항으로, 사용자가 아닌 개발자에 의해 결정되며 안드로이드 2.2 이전에 개발된 앱에 영향을 주지 않습니다.
앱 개발자는 루트 매니페스트 요소에서 android:installLocation 필드를 아래 값 중 하나로 설정할 수 있습니다.
>
internalOnly:
내부 저장소에만 설치하기. 내부 저장 공간이 부족하면 저장 공간 에러 발생.
>
preferExternal:
안드로이드 시스템에서 외부 저장소에 앱을 설치하기. 저장 공간이 없을 경우, 해당 앱은 내부 저장소에 설치됨.
>
auto:
안드로이드 시스템에서 최적의 설치 장소를 결정. 디폴트 시스템 정책은 내부 저장소에 먼저 앱을 설치. 시스템 저장 공간이 부족할 경우, 애플리케이션은 외부 저장 장치에 설치됨.
installLocation이 명시되지 않은 경우 (안드로이드 2.2 이전 버전 애플리케이션의 경우), 애플리케이션은 내부 저장소에 설치됩니다. 애플리케이션 업데이트는 디폴트로 기존 설치 장소가 유지되지만, 개발자가 업데이트에서 installLocation 필드를 변경할 수 있습니다. 외부 저장 장치에 설치 가능한 애플리케이션을 이전 버전 디바이스에 설치한다고 해도 호환성에는 문제가 없으며, 해당 애플리케이션은 내부 저장소에 설치되게 됩니다.
애플리케이션 개발자는 adb 설치 플래그로 개발 중인 코드를 외부 저장소에 명시적으로 설치할 수 있습니다 (내부 저장은 -f, 외부 저장은 -s를 사용하여 installLocation 필드를 오버라이드). 또한 adb shell pm 코맨드로 디폴트 설치 장소를 오버라이드하여 SD 카드에 애플리케이션 설치를 검증 및 테스트해 볼 수 있습니다.
adb shell pm setInstallLocation
option
*
option
은 아래 항목 중 하나:
>
0
[auto] 시스템이 결정
>
1
[internal only]
>
2
[external]
현재 설치 장소는 아래 코맨드를 통해서 받을 수 있습니다.
adb shell pm getInstallLocation
SD 카드에 설치할 준비가 되지 않을 경우, 해당 디폴트를 변경하면 애플리케이션이 오동작할 수 있음을 주의하세요.
USB 대용량 저장소 인터렉션
안드로이드 시스템은 SD 카드에 저장된 애플리케이션의 ADK를 안전한 애플리케이션 전용 컨테이너에 저장합니다.
ApplicationInfo
오브젝트 안에 있는 flagFLAG_EXTERNAL_STORAGE는 애플리케이션이 SD 카드에 설치되어 있다는 것을 알려줍니다. 이 저장 공간은 SD 카드에 저장된 앱이 삭제되면 제거됩니다.
안드로이드 디바이스에서 SD 카드가 언마운트되면, SD 카드에 설치된 애플리케이션을 더 이상 사용할 수 없습니다. 내부 저장소는 그대로 남아 있으며 해당 앱은 SD 카드를 다시 넣지 않고도 삭제될 수 있습니다.
안드로이드 프레임워크에서는 몇몇 브로드캐스트 인텐트를 제공하여 론처 등과 같이 다른 애플리케이션의 리소스에 접근하는 애플리케이션 (소규모) 종류를 지원합니다.
> SD 카드가 언마운트되면, 브로드캐스트 인텐트에 있는 추가 속성을 통해서 비활성화 앱 목록 및 이에 상응하는 애플리케이션 uid 목록과 함께
ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE
> SD 카드가 마운트되면, 브로드캐스트 인텐트에 있는 추가 속성을 통해서 활성화된 애플리케이션과 이에 상응하는 애플리케이션 uid 목록과 함께
ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
ACTION_PACKAGE_ADDED, ACTION_PACKAGE_REMOVED
등과 같은 브로드캐스트 인텐트를 처리하는 애플리케이션은 추가적인 알림을 처리하게 됩니다. 애플리케이션이 내부에서 외부 저장 공간으로 (혹은 그 반대로) 옮겨지는 경우, 애플리케이션은 먼저 비활성화되었다가 (브로드캐스트 인텐트
ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE
포함), 에셋 리소스가 복사되고 나서 애플리케이션이 활성화됩니다 (브로드캐스트 인텐트
ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
포함).
보안 및 성능에 주는 영향
SD 카드에 있는 애플리케이션은 Linux의 루프백 인터페이스로 마운트되고 디바이스 전용키로 암호화되기 때문에 다른 디바이스에서 암호를 해독할 수 없습니다. 이는 보안 수단이며 복사 방지를 제공하지는 않는다는 점을 주의하세요. 해당 앱들은 디바이스 내부 저장소에 설치된 보통 애플리케이션의 리소스처럼 모든 사용자에게 읽기 권한을 허용합니다. 복사가 방지된 애플리케이션은 외부 미디어에 설치할 수 없습니다. 안정성을 위하여 시스템 애플리케이션의 업데이트도 외부 매체에 설치될 수 없습니다. 외부 저장 장치에 저장된 애플리케이션 리소스는 읽기만 지원하며, 따라서 SD 카드에 애플리케이션 로딩 및 론칭에 성능 이슈는 없습니다.
SD 카드 콘텐츠 교환 혹은 이동
안드로이드 디바이스에서 SD 카드를 교환할 때 언제나 그렇듯, 이전 카드에서 새로운 카드로 콘텐츠를 물리적으로 복사하는 경우 시스템은 아무 변화도 없었던 것처럼 새로운 카드에서 데이터를 사용하게 됩니다. SD 카드에 설치된 앱의 경우에도 마찬가지입니다.
SD 카드에 설치하지 않아야 하는 경우
SD 카드에 앱을 설치함으로 얻는 장점은 간단합니다. 바로 저장 공간을 확보하기 위한 다툼이 줄어든다는 것입니다. 하지만 SD 카드가 제거되거나 USB 대용량 저장 모드일 경우에 앱이 비활성화된다는 가장 분명한 대가를 치러야 합니다. 단지 인터렉티브 액티비티가 아니라 서비스를 실행하는 것을 포함합니다. 이밖에도 장치 제거는 애플리케이션의 위젯, 입력 방식, 계정 관리자, 장치 관리자, 라이브 월페이퍼, 라이브 폴더 등을 비활성화하며 다시 활성화시키기 위해서는 사용자의 명시적 동작이 필요로 합니다.
No comments :
Post a Comment
ラベル
ad
AdMob
admob_sdk
Advanced Power Searching
Android
Android App Quality
android back button
Android back end
Android navigation
Android Player API
android server
android up button
androidL
androidtv
androidwear
App Translate Service
Audio Focus
Chrome
Chromecast
Code-in 2012
Core App Quality Guidelines
Daydream
design
designing for Tablets
designsprint
dialog
Drive SDK
Game Developers Conference
GCi
GCi 참가자
GDA
GDC
gdg
gdgkorea
Go
Google Cast
Google Code-in
Google Play
Google Play 스토어
Google Search
Google Summer of Code
Google+ Sign-In
Google+ Sign-In Bootcamps
Google+ 로그인
Google+ 로그인 부트캠프
googleanalytics
googleio
GooglePlay #AndroidDevStory #PlayStore #MaterialDesign #AndroidStudio #DeveloperConsole
GSOC
hackathon
HackFair 출품작
In-app Billing
io
io2014
ioapp
iobytes
ioextended
IRC Talk
IRC 서버
java7
kitkat
launch
Marshmallow
materialdesign
mobile ad
mobile_ads_sdk
multiscreen
NaCl
Native YouTube Player API
NRRN 사용 제한
Power Searching
product launch
SD 카드에 앱 설치
SecureKeyFactory
ux
webview
YouTube
YouTube Android Player API
YouTube API
YouTube API 3.0
YouTube API Update RSS Feed
광고
구글 HackFair
구글 Summer of Code
구글 개발자 사이트 홍보
구글 개발자 아카데미
구글 개발자 온라인 강좌
구글 검색
구글 고급 파워 서치
구글 드라이브 앱
구글 부트캠프
구글 아카데미
구글 코드인
구글 플러스 로그인
구글 핵페어
구글로 로그인하기
네이티브 클라이언트
데이드림
멀티 모바일
멀티 플랫폼
모바일 광고
수익화
스마트 브라우저
안드로이드
안드로이드 4.2
안드로이드 Back 버튼
안드로이드 Up 버튼
안드로이드 개인 정보 보호 정책
안드로이드 네비게이션
안드로이드 데이드림
안드로이드 디자인
안드로이드 방향탐색
안드로이드 보안
안드로이드 사용자 데이터
안드로이드 서버 백엔드
안드로이드 앱 품질
안드로이드 원격 제어
안드로이드 태블릿 디자인
안드로이드 현지화
안드로이드 화면 보호기
애드몹
애플리케이션 SD카드 설치
애플리케이션 개발 주민등록번호 사용 제한
애플리케이션 외부 저장 장치
앱 품질 체크리스트
오픈 소스
오픈소스 프로그램
웹 DMB
유튜브
유튜브 API
유튜브 API 3.0
유튜브 API 업데이트
유튜브 모바일
유튜브 안드로이드 플레이어 API
인앱 결제
인터넷상 주민등록번호 수집 이용 제한
주민등록번호 사용제한
추천이미지
출시
크롬브라우저
태블릿 디자인
태블릿용 앱
파워서치
한국 구글 개발자
한국 구글 개발자 사이트
핵심 앱 품질 가이드라인
핵심 태블릿 앱 품질 체크리스트
핵페어
핵페어 출품작
ブログ アーカイブ
2016
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
소셜 스팸 없이 간단하고 안전하게, Google+ 로그인
YouTube API 업데이트 따라잡기
인터넷상 주민등록번호 사용 제한법 - 앱에도 해당됩니다!
2013년에도 “Google Summer of Code”가 개최됩니다.
안드로이드 사용자 데이터 처리
안드로이드 애플리케이션 SD 카드에 설치하기
안드로이드 디자인 문서 - 방향 탐색 (Navigation)
한국 구글 개발자 사이트를 홍보해 주세요!
January
2012
December
November
October
September
August
July
June
May
March
February
January
2011
December
November
Feed
No comments :
Post a Comment