Installazione su SDCard per impostazione predefinita


29

Vorrei sapere se esiste un modo per dire ad Android di installare le applicazioni sulla scheda micro SD per impostazione predefinita invece di dover scaricare prima le applicazioni nella memoria interna e quindi spostarle manualmente sulla scheda SD.

Grazie



in particolare a causa della risposta di @Yeradis android.stackexchange.com/a/4976/156
GAThrawn

4
@GAThrawn No, non è un inganno. La domanda che hai collegato è piuttosto "è possibile spostare le app su SD". Questo è "come specificare il percorso di installazione predefinito". Stessa strada, casa diversa.
Izzy

Risposte:


33

Questo articolo su HowtoGeek descrive un modo possibile di utilizzare l' :

  • abilita il debug USB
  • collega il dispositivo al computer
  • eseguire il comando adb shell pm setInstallLocation 2
    (o, nuova sintassi , adb shell pm set-install-location 2)
  • disconnetti, fatto.

Questo comando imposta la destinazione di installazione predefinita dei dispositivi sulla scheda SD. Ciò non significa necessariamente che tutto venga installato lì: solo le app che supportano questo andranno lì, e gli sviluppatori possono "annullarlo" nelle loro app manifest se pensano che sia necessario. Dal riferimento API collegato :

Modifica il percorso di installazione predefinito. Valori di posizione:

  • 0: Auto: consente al sistema di decidere la posizione migliore.
  • 1: Interno: installa sulla memoria interna del dispositivo.
  • 2: Esterno: installazione su supporto esterno.

Nota: questo è destinato esclusivamente al debug; l'utilizzo di questo può causare l'interruzione delle applicazioni e altri comportamenti indesiderati.

Per maggiori dettagli su ADB e su come puoi ottenerne una versione minima sul tuo computer (senza l'eccesso di installare l'intero SDK), puoi dare un'occhiata al tag-wiki di .


Aggiornamento: per evitare confusione con la risposta di t0mm13b , alcune autorizzazioni sul processo di installazione:

  1. trovi qualche app su e decidi di installarla
  2. dopo aver fatto clic su "Installa" e ha concordato termini / autorizzazioni, l' viene scaricato a/data/local , vale a dire al vostro . Non puoi cambiarlo.
  3. quando il download è completato, .apkverrà installato automaticamente. Dove, dipende da più cose:
    • se lo sviluppatore non ha specificato la android:installLocationproprietà nelle sue app Manifest, l'app verrà installata nella storia interna. Punto, nessuna altra scelta (vedi: riferimento API ).
    • se android:installLocationè impostato su preferExternale la memoria esterna è disponibile, andrà lì.
    • se è impostato su auto, dipende di nuovo:
      1. l'app contiene widget, servizi, vuole avviarsi all'avvio e molte altre cose, va nella memoria interna. Stop completo, nessun'altra scelta.
      2. va dove punta la "posizione di installazione predefinita" dei dispositivi

potrebbe aiutare a includere un avviso: non è garantito che funzioni, soprattutto se un'app ha i propri widget ... :)
t0mm13b

Come ho scritto: solo le app che supportano questo andranno lì :) Widget, servizi, ecc. Stanno dicendo che non lo supporta :)
Izzy

dopo aver eseguito il comando adb shell pm setInstallLocation 2 errore: dispositivo non trovato
moudrick

1
Sembra che tu abbia saltato i primi due passaggi (abilitando il debug USB e collegando il dispositivo dopo quello) - oppure sei su Windows e non hai installato i driver corrispondenti. Si prega di seguire il link corrispondente e passare da lì, @moudrick.
Izzy

5

Questo non può essere cambiato! Ecco come funziona Android.

Tutti i download da Google Play vanno al filesystem interno, quindi da:

  • Impostazioni> Gestisci applicazioni
  • Tocca detta app, controlla se il pulsante Sposta su SDCard è abilitato, quindi puoi farlo.

Se il pulsante Sposta su SDCard è disabilitato o disattivato, è probabilmente per impedire il funzionamento dell'app, ad esempio i propri widget sulla schermata principale.

Inoltre, vedi questa risposta nella relativa barra laterale a destra di questa pagina. :)


1
Sei sicuro, t0mm13b? Non c'era qualche comando ADB su adb shell pm setInstallLocation 2(cioè SDCard), come descritto qui ?
Izzy

1
Uno sviluppatore può specificare che nel Manifest per dare all'app la possibilità di essere spostato sulla SDCard. android:installLocation="auto"Non ho visto adb shell pm setInstallLocation 2, presumibilmente si specifica il nome del pacchetto in quel caso ...
t0mm13b

1
No, t0mm13b - vedi la mia risposta e l'articolo collegato. Questo imposta il percorso di installazione predefinito del dispositivo . Quindi se Manifestdice "auto", ecco dove va. Se Manifestdice diverso da "auto", va dove Manifestdice. Vedi anche: Rif. API , anche qui per il pm set-install-locationcomando (nuova sintassi).
Izzy

1
Izzy - quello che ho specificato su AndroidManifest android:installLocation- abilita effettivamente Sposta su SDCard dalle impostazioni di gestione app ... alcuni sviluppatori non lo specificano e rende il pulsante disabilitato ma concedo - mai visto il comando adb per farlo
t0mm13b

1
Ah, ora capisco - focus diverso: Stavi dicendo "se un'app non è progettata per essere installata su SD, non puoi farlo" - mentre mi concentravo su dove va di default se non diversamente specificato . Ma per favore controlla le prime 4 righe della tua risposta, dicono qualcosa di diverso. Hai comunque ragione: il download va prima a /data/local, e da lì l'app è installata. Ma a seconda delle impostazioni e manifest, viene installato da interno o direttamente da esterno. // Se ti piace discuterne in dettaglio: ricordi il nostro pub, ahem, chat? :)
Izzy

4

Installa "Terminal Emulator per Android" sul tuo cellulare e apri

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

2
interessante, ma devi avere radice per far funzionare tutto questo
Robert S. Barnes,

-2

Vai su "Gestisci app", quindi seleziona la scheda "Tutte" e trova "Google Play Store". Toccalo e poi premi il pulsante "Disinstalla aggiornamenti". Successivamente, vai sul Play Store tutte le app verranno installate sulla tua scheda SD. Questo è quello che ho fatto sul mio QMobile A110 (Android 4.2).


1
Penso che manchi il passaggio intermedio da qualche parte in cui hai impostato la posizione di installazione predefinita come scheda SD e anche in questo caso, non sempre funziona in questo modo per ogni applicazione.
Enigma,

-3

Il fatto è che puoi cambiare la directory di installazione predefinita se il tuo telefono è rootato. Scarica Lucky Patcher e tocca gli strumenti lì per trovare le opzioni per modificare il comando di installazione predefinito. ** Non farlo per Android 4 o versioni successive o potrebbe causare cambiamenti irreversibili. **


2
Secondo la quota di mercato della versione di Android 2016, il 97,7% di tutti gli utenti Android utilizza Android 4.0 o versioni successive alla data in cui è stata pubblicata la risposta e pertanto Lucky Patcher può causare cambiamenti irreversibili a quasi tutti gli attuali utenti Android.
Karel,

2
Quali "cambiamenti irreversibili" sarebbero? Non li ho notati sui miei dispositivi Kitkat :) Ma come ha sottolineato @karel: se pensi che non dovrebbe essere usato, perché lo consigli?
Izzy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.