기본적으로 SDCard에 설치


29

내부 메모리에 응용 프로그램을 먼저 다운로드 한 다음 수동으로 SD 카드로 이동 해야하는 대신 기본적으로 마이크로 SD 카드에 응용 프로그램을 설치하도록 Android에 지시하는 방법이 있는지 알고 싶습니다.

감사



특히 @Yeradis로 인해 android.stackexchange.com/a/4976/156
GAThrawn

4
@GAThrawn 아니오, 그것은 그 속임수가 아닙니다. 당신이 연결 한 질문은 오히려 "앱을 SD로 옮길 수 있는가"입니다. 이것이 "기본 설치 위치를 지정하는 방법"입니다. 같은 거리, 다른 집.
Izzy

답변:


33

HowtoGeek의이 기사 활용하는 가능한 방법을 설명합니다 .

  • USB 디버깅 사용
  • 장치를 컴퓨터에 연결
  • 명령을 실행 adb shell pm setInstallLocation 2
    (또는 새로운 구문 , adb shell pm set-install-location 2)
  • 연결이 끊어졌습니다.

이 명령은 장치 기본 설치 대상을 SDCard로 설정합니다. 그렇다고 모든 것이 거기에 설치되는 것은 아닙니다 .이를 지원하는 앱만 설치 될 것이며 개발자는 필요하다고 생각되면 앱 매니페스트에서이를 "지배"할 수 있습니다. 로부터 링크 된 API 참조 :

기본 설치 위치를 변경합니다. 위치 값 :

  • 0: 자동 — 시스템이 최적의 위치를 ​​결정하도록합니다.
  • 1: 내부 — 내부 장치 스토리지에 설치합니다.
  • 2: 외부 — 외부 매체에 설치합니다.

참고 : 이것은 디버깅 전용입니다. 이를 사용하면 응용 프로그램이 중단되고 다른 바람직하지 않은 동작이 발생할 수 있습니다.

ADB에 대한 자세한 내용과 컴퓨터에 최소 버전을 설치하는 방법 (전체 SDK를 설치하지 않아도 됨)을 보려면 tag-wiki를 살펴보십시오 .


업데이트 : t0mm13b의 답변 과 혼동을 피하기 위해 설치 과정에서 약간의 여유 공간이 있습니다.

  1. 에서 일부 앱을 찾아서 설치하기로 결정했습니다.
  2. "설치"를 클릭하고 이용 약관에 동의하면 가 ( 예 : )에 다운로드 됩니다/data/local . 변경할 수 없습니다.
  3. 다운로드가 완료되면 .apk자동으로 설치됩니다. 위치는 여러 가지에 따라 다릅니다.
    • 개발자가 android:installLocation자신의 앱에 속성을 지정하지 않은 Manifest경우 앱은 내부 스토리에 설치됩니다. 완전 정지, 다른 선택 사항 없음 ( API 참조 참조 ).
    • 이로 android:installLocation설정되어 preferExternal있고 외부 저장소를 사용할 수 있으면 해당 저장소로 이동합니다.
    • 로 설정되면 auto다시 다음에 의존합니다.
      1. 앱에 위젯, 서비스가 포함되어 있고 부팅시 시작하고 싶은 다른 것들이 있으며 내부 저장소로 이동합니다. 완전히 멈추고 다른 선택은 없습니다.
      2. 장치 "기본 설치 위치"가 가리키는 곳으로 이동합니다.

그이 ... :) 응용 프로그램이 자신의 위젯을 가지고 특히, 작동하지 않을 수 - 경고를 포함 도움이 될 수 있습니다
t0mm13b

내가 쓴대로 : 이것을 지원하는 앱만이 거기에 갈 것입니다 :) 위젯, 서비스 등은 그것을 지원하지 않는다고 말합니다 :)
Izzy

명령 ADB 쉘 오후 setInstallLocation 2 오류 실행 한 후 : 장치를 찾을 수 없습니다
moudrick

1
처음 두 단계를 건너 뛰거나 (USB 디버깅 사용 후 장치 연결) – Windows에 있고 해당 드라이버를 설치하지 않은 것 같습니다. 제발 해당 링크를 따라 하고 @moudrick, 거기에서 이동합니다.
Izzy

5

변경할 수 없습니다! 그것이 안드로이드가 작동하는 방식입니다.

Google Play에서 다운로드 한 모든 파일은 다음과 같은 내부 파일 시스템으로 이동합니다.

  • 설정> 애플리케이션 관리
  • 해당 응용 프로그램을 탭 하고 SD 카드이동 버튼 이 활성화 되어 있는지 확인한 다음 그렇게 할 수 있습니다.

SDCard이동 버튼 이 비활성화되거나 회색으로 표시되면 홈 화면의 자체 위젯과 같이 앱이 작동하지 않을 수 있습니다.

또한 이 페이지 오른쪽의 관련 사이드 바 에서이 답변 을 참조하십시오. :)


1
확실합니까, t0mm13b? 여기에adb shell pm setInstallLocation 2 설명 된 것처럼 ADB 명령 (예 : SDCard) 이 없었습니까 ?
Izzy

1
개발자는 매니페스트에서 앱에 SDCard로 이동할 수있는 기능을 제공하도록 지정할 수 있습니다. android:installLocation="auto"보지 못했을 adb shell pm setInstallLocation 2것입니다. 아마도이 경우에 패키지 이름을 지정할 것입니다.
t0mm13b

1
아니요, t0mm13b- 내 답변 과 링크 된 기사를 참조하십시오. 장치의 기본 설치 위치를 설정합니다 . 따라서 Manifest"자동"이라고 표시되면 바로 여기입니다. Manifest"auto"가 아닌 다른 쪽이 말 한다면 해당 쪽으로 이동합니다 Manifest. 참조 : API 심판을 , 또한 여기 에 대해 pm set-install-location(새로운 구문) 명령.
Izzy

1
내가 AndroidManifest를의에 대해 지정된 것을 -이지는 android:installLocation- 실제로SDCard에로 이동 ... 일부의 devs를 지정하지 않는 관리 응용 프로그램 설정에서하고 사용할 수있는 버튼을 렌더링하지만 난 인정 - 그렇게 할 수있는 ADB 명령을 본 적이 중
t0mm13b

1
아, 지금은 그것을 얻을 - 다른 초점을 : "응용 프로그램은 SD에 설치하도록되어 있지 않은 경우, 당신은 그렇게 할 수 없다"당신은 말을했다 - 나는 그것이 기본적으로 어디로 가는지에 집중하는 동안 별도로 명시하지 않는 한 . 그러나 답변의 첫 4 줄을 확인하십시오. 그러나 당신은 맞습니다 : 다운로드는 먼저로 가고 /data/local거기에서 앱이 설치됩니다. 그러나 설정 및 매니페스트에 따라 내부 또는 외부에 직접 설치됩니다. // 이것에 대해 자세히 논의하고 싶다면, 술집, 아헴, 채팅을 기억하십니까? :)
Izzy

4

모바일에 "Terminal Emulator for Android"를 설치하고 엽니 다

$ su
# pm get-install-location
0[auto]
# pm set-install-location 2
# pm get-install-location
2[external]

2
흥미롭지
Robert S. Barnes

-2

"앱 관리"로 이동 한 다음 "모두"탭을 선택하고 "Google Play 스토어"를 찾으십시오. 탭한 다음 "업데이트 제거"버튼을 누르십시오. 그런 다음 Play 스토어로 이동하여 모든 앱이 SD 카드에 설치됩니다. 이것이 QMobile A110 (Android 4.2)에서 수행 한 작업입니다.


1
기본 설치 위치를 SD 카드로 설정 한 어딘가에 중간 단계가 빠져 있다고 생각하지만 모든 응용 프로그램에서 항상 이런 식으로 작동하지는 않습니다.
Enigma

-3

전화를 뿌리면 기본 설치 디렉토리를 변경할 수 있습니다. 운이 좋은 patcher를 다운로드하고 도구를 탭하면 기본 설치 디렉터를 변경하는 옵션을 찾을 수 있습니다. ** Android 4 이상에서는이 작업을 수행하지 마십시오. 되돌릴 수없는 변경이 발생할 수 있습니다. **


2
Android Version Market Share 2016 에 따르면 이 답변이 게시 된 날짜에 모든 Android 사용자의 97.7 % 가 Android 4.0 이상을 사용하고 있기 때문에 Lucky Patcher는 거의 모든 현재 Android 사용자에게 돌이킬 수없는 변경을 일으킬 수 있습니다.
karel

2
"돌이킬 수없는 변화"란 무엇입니까? 내 Kitkat 장치에서 그것들을 보지 못했습니다 :) 그러나 @karel이 지적한 것처럼 : 사용해서는 안된다고 생각한다면 왜 권장합니까?
Izzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.