Cartella Android SDK che occupa molto spazio su disco. Dobbiamo conservare tutte le immagini di sistema?


247

Ci sono molte immagini di sistema che si accumulano sul mio disco nella cartella sdk di Android. difficilmente uso l'emulatore. Può essere una volta ogni 6 mesi. Gran parte del mio sviluppo è direttamente sul dispositivo. Quello che volevo verificare era: la rimozione delle immagini di sistema (almeno per il vecchio APIS, ovvero <22) , avrà un impatto sullo sviluppo?

Inoltre, la cartella apis di Google visualizzata di seguito. Devo tenerlo per tutte le versioni o solo quella dell'ultima è sufficiente?

inserisci qui la descrizione dell'immagine

La schermata sopra è dallo strumento WinDirStat. - https://windirstat.net


Grazie! che dire della cartella google_apis .... posso rimuovere anche quelli? avrà un impatto sul mio debug sul dispositivo?
AndroidMechanic - Viral Patel,

25
Se qualcuno era interessato, l'analizzatore di spazio su disco sull'immagine si chiama WinDirStat .
Tomáš Zato - Ripristina Monica il

4
Nota a margine: semplice come fare un du -sh * su Linux box!
Utente3

su Linux per vedere i dir più grandi: du -m ~ / src / android-sdk-linux | sort -n | tail -100
Scott Stensland

@lijo ha aggiornato la domanda
AndroidMechanic - Viral Patel

Risposte:


204

Le immagini di sistema sono sistemi operativi Android preinstallati e vengono utilizzate solo dagli emulatori. Se usi il tuo vero dispositivo Android per il debug, non ti servono più, quindi puoi rimuoverli tutti.

Il modo più pulito per rimuoverli è utilizzare SDK Manager. Apri SDK Manager, deseleziona quelle immagini di sistema e poi applica.

Inoltre, sentiti libero di rimuovere altri componenti (ad es. Vecchi livelli SDK) che non servono.


Grazie per la risposta dettagliata abforce ... chiarisce. Un ultimo dubbio. La cartella google_apis visualizzata all'interno di ogni versione di Android nella schermata sopra è richiesta anche solo per le immagini di sistema, giusto? possono anche essere rimossi?
AndroidMechanic - Viral Patel,

possiamo spostare quei file su un'unità diversa, se sì, allora tutto ciò che deve essere fatto dopo aver spostato le immagini
stesso

@sameer Puoi spostarlo e quindi puntare il tuo IDE su dove si trova SDK Manager. L'ho provato una volta, ma il mio Eclipse impiegava 5 minuti ad aprirsi ogni volta ... l'eliminazione delle immagini di sistema mi ha fatto risparmiare 40 GB sul mio SSD!
Demonslay335,

Esistono molti strumenti di build dell'SDK per Android nel mio gestore sdk, l'eliminazione di vecchie revisioni può causare errori o influire sulle prestazioni?
Shima Erfan,

140

Non è necessario conservare le immagini di sistema a meno che non si desideri utilizzare l'emulatore sul desktop. Insieme ad esso puoi rimuovere altre cose indesiderate per liberare spazio su disco .

Aggiungendo come risposta alla mia domanda come ho dovuto raccontare questo alle persone nella mia squadra più di un paio di volte. Da qui questa risposta come riferimento da condividere con altri curiosi.

Nelle ultime settimane ci sono stati diversi colleghi che mi hanno chiesto come sbarazzarsi in sicurezza delle cose indesiderate per liberare spazio su disco (la maggior parte erano principianti). Li ho reindirizzati a questa domanda, ma sono tornati da me per i passaggi. Quindi per i principianti Android ecco una guida passo passo per rimuovere in sicurezza cose indesiderate.

Nota

  • Non eliminare ciecamente tutto direttamente dal disco che "pensi" non sia necessario occupare. L'ho fatto una volta e ho dovuto scaricare di nuovo.
  • Assicurati di avere un elenco di tutti i progetti attivi con il tipo di emulatori (se presenti), i Livelli API e gli strumenti di costruzione necessari per continuare a lavorare / compilare correttamente.

Innanzitutto, assicurati di non utilizzare emulatori e di sviluppare sempre su un dispositivo fisico. Se hai bisogno di emulatori, annota i livelli API e il tipo di emulatori di cui avrai bisogno. Non rimuovere quelli. Per il resto, segui i passaggi seguenti:

I passaggi per cancellare in sicurezza le cose indesiderate dalla cartella SDK di Android sul disco

  1. Apri Gestione SDK Android autonomo. Per aprire, eseguire una delle seguenti operazioni:
  • Fai clic sul pulsante SDK Manager sulla barra degli strumenti in Android Studio o Eclipse
  • In Android Studio, vai alle impostazioni e cerca "Android SDK". Fai clic su Android SDK -> "Apri gestore SDK autonomo"
  • In Eclipse, apri il menu "Finestra" e seleziona "Gestione SDK Android"
  • Passare alla posizione della directory android-sdk sul computer ed eseguire "SDK Manager.exe"

.

  1. Deseleziona tutti gli elementi che terminano con "Immagine di sistema". Ogni livello API ne avrà più di alcuni. Se ne hai bisogno e hai capito che l'elenco li ha già lasciati selezionati per evitare di perderli e dover scaricare di nuovo.

.

  1. Opzionale (può aiutare a risparmiare un po 'più spazio su disco): per liberare un po' più di spazio, puoi anche deselezionare completamente i livelli API non richiesti. Fai di nuovo attenzione per evitare di scaricare nuovamente qualcosa che stai effettivamente utilizzando in altri progetti.

.

  1. Alla fine, assicurati di disporre almeno di quanto segue (controlla l'immagine sotto) per consentire ai livelli API rimanenti di funzionare perfettamente con il tuo dispositivo fisico.

Alla fine, i componenti installati di Android SDK dovrebbero avere un aspetto simile nel gestore SDK.

inserisci qui la descrizione dell'immagine


9
La rimozione delle immagini di sistema nel gestore SDK è la soluzione più pulita. Questo dovrebbe almeno avere più voti, o addirittura essere la risposta accettata.
Levita,

4
Grazie @Levit questa è una risposta alla mia domanda che ho pubblicato più tardi perché pensavo che le persone avrebbero beneficiato della conoscenza di questo approccio. La risposta che ho contrassegnato come accettata è quella che mi ha davvero aiutato quella volta.
AndroidMechanic - Viral Patel,

1
Questo è stato molto utile, grazie. L'unica modifica ai tuoi passaggi che suggerirei è il passaggio 2. Si desidera CONTROLLARE gli elementi che si desidera rimuovere, quindi fare clic sul pulsante Elimina pacchetti in basso a destra. Grazie ancora!
Adam Plocher,

Grazie mille, non sapevo che lo sdk stesse scaricando le immagini dell'emulatore (il mio mac piangeva rimanendo senza spazio fino a quando non ho visto questo post).
ScarletMerlin,

La domanda è " Dobbiamo conservare tutte le immagini di sistema? " E questo non risponde a questa domanda.
user34660,

8

Avevo 20,8 GB nella cartella C: \ Users \ ggo \ AppData \ Local \ Android \ Sdk \ system-images (6 immagini android: - android-10 - android-15 - android-21 - android-23 - android-25 - android-26).

Ho compresso la cartella C: \ Users \ ggo \ AppData \ Local \ Android \ Sdk \ system-images.

Adesso ci vogliono solo 4,65 GB.

C: \ Users \ GGO \ AppData \ Local \ Android \ SDK \ system-immagini

Finora non ho riscontrato alcun problema ...

La compressione sembra variare da 2/3 a 6, a volte molto di più:

android-10

android-23

android-25

android-26


1
come l'hai compresso?
Krv,

1
fare clic con il tasto destro sulla cartella da comprimere (cartella immagini di sistema qui) => Proprietà => Avanzate => abilita "Comprimi contenuto per risparmiare spazio su disco" => OK => Applica => seleziona "Applica modifica a questa cartella, sottocartelle e file "(dovrebbe essere selezionato per impostazione predefinita) e fare clic su OK. (potrebbe essere meglio chiudere Android Studio e chiudere gli emulatori attualmente in esecuzione prima della compressione, poiché alcuni file potrebbero essere bloccati).
ggo,

3
Ciò influirà sulle prestazioni, quindi fallo solo per i file usati raramente (esclusi i file già compressi come foto, video, zip, jar ecc.).
Leon,

6

Consiglio due passaggi per risolvere il problema di SDK gonfio.

Innanzitutto, ho rimosso tutte le versioni tranne due di Android:

  1. La versione attuale, ad esempio 6.0 Marshmallow al momento della stesura di questo documento. Questa versione è per testare e sviluppare fino all'ultimo e massimo che gli attuali telefoni Nexus sono in esecuzione oltre a un paio di altre marche.

  2. Una versione precedente, ad esempio 4.04 Ice Cream Sandwich. Questo per fornire compatibilità per la stragrande maggioranza dei portatili. Si perde alcune funzionalità delle versioni più recenti, ma si ottiene un minimo comune denominatore di compatibilità.

In secondo luogo, ho rimosso gli emulatori e ho mantenuto solo i due precedenti. Gli ho detto di non archiviare lo stato di sistema completo su disco, il che avverte effettivamente che occuperai molto spazio, anche se rende l'avvio più veloce. Avvia l'emulatore prima di andare a preparare il caffè al mattino :)

Se è troppo spazio, rimuovere completamente gli emulatori. Prendi un paio di telefoni più vecchi da Ebay che ti forniranno tutte le piattaforme di test di cui hai bisogno. Non devono nemmeno essere completamente funzionali: molte app non hanno bisogno di una SIM e della connettività cellulare, ad esempio.

Il mio ambiente Android occupava 32 concerti sul mio Macbook Air da 128 gig. Non potrei continuare a farlo. Un giorno faranno terabyte Macbook Airs ma fino ad allora, hanno dovuto dimagrire.


La domanda originale dice " La maggior parte del mio sviluppo è direttamente sul dispositivo ", ma per tutti noi che usano un emulatore questa è l' unica risposta alla domanda " Dobbiamo conservare tutte le immagini di sistema? ".
user34660,

5

Queste sono le cose minime che conservo per lo sviluppo quotidiano di Android (incluso il codice di produzione). Le versioni più recenti da API 25 a API 27 (da Nougat ad Android P) sono incluse solo e puoi lavorarci benissimo.

  • Per ridurre al minimo ancora di più, basta mantenere una qualsiasi delle versioni sottostanti uguali e mantenere una versione inferiore, ad esempio API 16 con gli stessi file scaricati come di seguito.


4

C'è il modo per rimuovere l'immagine di sistema in modo sicuro

Vai in SDK Manager nella barra degli strumenti:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Vai in Android SDK:

inserisci qui la descrizione dell'immagine

Nella scheda Piattaforme SDK, deseleziona la piattaforma che desideri disinstallare:

inserisci qui la descrizione dell'immagine

Fai clic su OK e conferma l'eliminazione:

inserisci qui la descrizione dell'immagine


1

Oltre alle altre risposte, la seguente directory contiene immagini di sistema cancellabili su un Mac per Android Studio 2.3.3. Sono stato in grado di eliminare le directory android-16 e android-17 senza alcun problema perché non avevo emulatori che le usavano. (Ho mantenuto l'androide-24 che era in uso.)

$ pwd
/Users/gareth/Library/Android/sdk/system-images

$ du -h
2.5G    ./android-16/default/x86
2.5G    ./android-16/default
2.5G    ./android-16/google_apis/x86
2.5G    ./android-16/google_apis
5.1G    ./android-16
2.5G    ./android-17/default/x86
2.5G    ./android-17/default
2.5G    ./android-17
3.0G    ./android-24/default/x86_64
3.0G    ./android-24/default
3.0G    ./android-24
 11G    .

1

Eliminando tutto l'emulatore, a volte la memoria non si ridurrà alle nostre aspettative. Quindi apri il percorso sotto menzionato nella tua unità

C: \ Users {} Nome utente .android \ avd

In questa cartella avd, puoi vedere tutti gli avd che hai creato in precedenza. Quindi è necessario eliminare tutti gli avd che rimuoveranno tutti gli spazi inutilizzati catturati dall'emulatore. Che creare l'emulatore fresco per te funziona.


0

In questa cartella ci sono tutte le immagini dell'emulatore. Se non si utilizza l'emulatore, è possibile eliminare questa cartella.

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.