Установка на SDCard за замовчуванням


29

Мені хотілося б знати, чи існує спосіб сказати Android про встановлення програм на Micro SD-картці за замовчуванням, замість того, щоб спочатку завантажувати програми на внутрішню пам'ять, а потім пересувати їх на SD-карту вручну.

Спасибі



спеціально через відповідь @Yeradis android.stackexchange.com/a/4976/156
GAThrawn

4
@GAThrawn Ні, це не обман . Питання, яке ви пов’язали, скоріше "чи можна перемістити програми на SD". Це "як вказати місце встановлення за замовчуванням". Та сама вулиця, інший будинок.
Izzy

Відповіді:


33

Ця стаття в HowtoGeek описує можливий спосіб використання :

Ця команда встановить ціль встановлення пристроїв за замовчуванням на вашу 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 pm pm setInstallLocation 2 помилка: пристрій не знайдено
moudrick

1
Це здається, що ви пропустили перші два кроки (увімкнення налагодження через USB та підключення пристрою після цього) - або ви працюєте в Windows і не встановили відповідні драйвери. Перейдіть за відповідним посиланням та продовжуйте звідти, @moudrick.
Іззі

5

Це неможливо змінити! Саме так працює Android.

Усі завантаження з Google Play переходять до внутрішньої файлової системи, а потім із:

  • Налаштування> Керування програмами
  • Торкніться зазначеного додатка, перевірте, чи включена кнопка Перейти до SDCard , і ви можете це зробити.

Якщо кнопку " Перемістити на SDCard" вимкнено або переглянуто сірим кольором, це, ймовірно, не дозволяє додатку функціонувати - наприклад, власні віджети на головному екрані.

Також дивіться цю відповідь у відповідній бічній панелі праворуч від цієї сторінки. :)


1
Ви впевнені, t0mm13b? Чи не було якоїсь команди ADB для adb shell pm setInstallLocation 2(тобто SDCard), як описано тут ?
Izzy

1
Розробник може вказати, що в Manifest надати додатку можливість переміщення на SDCard. android:installLocation="auto"Не бачив adb shell pm setInstallLocation 2, імовірно, ви вказуєте назву пакета в цьому випадку ...
t0mm13b

1
Nope, t0mm13b - дивіться мою відповідь та пов’язану статтю. Це встановлює місце встановлення пристрою за замовчуванням. Тож якщо Manifestсказано "авто", саме там і йдеться. Якщо Manifestприказка відрізняється від "авто", вона іде там, де Manifestйдеться. Дивіться також: API ref , також тут для команди pm set-install-location(новий синтаксис).
Izzy

1
Izzy - те, що я вказав про AndroidManifest, android:installLocation- насправді дозволяє перейти до SDCard із налаштувань керування додатком ... Деякі розробники не вказують цього і робить кнопку відключеною, але я поступаюсь - ніколи не бачив команду adb для цього
t0mm13b

1
Ага, зараз я розумію - різний фокус: Ви говорили, "якщо додаток не призначене для встановлення на SD, ви не можете цього зробити" - в той час як я зосереджувався на тому, куди воно йде за замовчуванням, якщо не вказано інше . Але будь ласка, перевірте перші 4 рядки вашої відповіді, вони говорять про щось інше. Однак ви маєте рацію: спочатку завантажується програма/data/local , а звідти встановлено додаток. Але залежно від налаштувань та маніфесту, він встановлюється або внутрішнім, або безпосередньо зовнішнім звідти. // Якщо ви хочете детально обговорити це: ви пам’ятаєте наш паб, гм, чат? :)
Izzy

4

Встановіть "Термінальний емулятор для Android" у своєму мобільному телефоні та відкрийте

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

2
Цікаво, але для цього ви повинні мати корінь
Роберт С. Барнс

-2

Перейдіть до "Керування програмами", а потім виберіть вкладку "Усі" та знайдіть "Google Play Store". Торкніться її, а потім натисніть кнопку "Видалити оновлення". Після цього перейдіть у Play Store, всі додатки будуть встановлені на вашій SD-картці. Це я зробив на своєму QMobile A110 (Android 4.2).


1
Я думаю, що вам не вистачає середнього кроку де-небудь, де ви встановите місцем встановлення за замовчуванням SD-карту, і навіть тоді це не завжди працює таким чином для кожної програми.
Енігма

-3

Справа в тому, що ви можете змінити каталог встановлення за замовчуванням, якщо ваш телефон укорінений. Завантажте щасливий патч і натисніть на інструменти, там ви можете знайти можливість змінити за замовчуванням installt Directort. ** Не робіть цього для Android 4 або вище, інакше це може призвести до незворотних змін. **


2
Відповідно до Android Market Market Share 2016 97,7% всіх користувачів Android використовують Android 4.0 або пізнішої версії на дату опублікування цієї відповіді, і тому Lucky Patcher може спричинити незворотні зміни майже у всіх поточних користувачів Android.
Карел

2
Які "незворотні зміни" це були б? Я не помічав їх на своїх пристроях Kitkat :) Але, як @karel вказував: якщо ви вважаєте, що його не слід використовувати, чому ви рекомендуєте це?
Іззі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.