Folder zestawu SDK systemu Android zajmuje dużo miejsca na dysku. Czy musimy zachować wszystkie obrazy systemowe?

247

Na moim dysku znajduje się wiele obrazów systemowych w folderze SDK Androida. prawie nie używam emulatora. Może być raz na 6 miesięcy. Większość mojego rozwoju jest bezpośrednio na urządzeniu. Chciałem sprawdzić, czy usunięcie obrazów systemu (przynajmniej dla starego APIS, tj. <22) wpłynie na rozwój?

Również folder google apis widoczny poniżej. Czy powinienem zachować go dla wszystkich wersji, czy tylko tej najnowszej?

wprowadź opis zdjęcia tutaj

Powyższy zrzut ekranu pochodzi z narzędzia WinDirStat. - https://windirstat.net

AndroidMechanic - Viral Patel
źródło
dzięki! co z folderem google_apis… czy mogę je również usunąć? czy wpłynie to na moje debugowanie na urządzeniu?
AndroidMechanic - Viral Patel
25
Jeśli ktoś był zainteresowany, analizator miejsca na dysku na obrazie nazywa się WinDirStat .
Tomáš Zato - Przywróć Monikę
4
Uwaga dodatkowa: tak prosty jak zrobienie du -sh * na Linux-ie!
Użytkownik3
na Linuksie, aby zobaczyć największe katalogi: du -m ~ / src / android-sdk-linux | sort -n | tail -100
Scott Stensland
@lijo zaktualizował pytanie
AndroidMechanic - Viral Patel

Odpowiedzi:

204

Obrazy systemowe są wstępnie zainstalowanymi systemami operacyjnymi Android i są używane tylko przez emulatory. Jeśli używasz swojego prawdziwego urządzenia z Androidem do debugowania, nie potrzebujesz ich już, więc możesz je wszystkie usunąć.

Najczystszym sposobem na ich usunięcie jest użycie SDK Manager. Otwórz Menedżera SDK i odznacz te obrazy systemowe, a następnie zastosuj.

Możesz również usunąć inne składniki (np. Stare poziomy SDK), które nie są przydatne.

frogatto
źródło
Dziękuję za szczegółową odpowiedź abforce ... wyjaśnia. Ostatnia wątpliwość. Folder google_apis widoczny w każdej wersji Androida na powyższym zrzucie ekranu jest wymagany tylko dla obrazów systemowych, prawda? można je też usunąć?
AndroidMechanic - Viral Patel
czy możemy przenieść te pliki na inny dysk, jeśli tak, to co należy zrobić po ustawieniu zdjęć
samo
@sameer Możesz go przenieść, a następnie wskazać IDE, gdzie znajduje się Menedżer SDK. Próbowałem już raz, ale spowodowało to, że za każdym razem moje Eclipse otwierało się za 5 minut ... usunięcie obrazów systemowych pozwoliło mi zaoszczędzić 40 GB na dysku SSD!
Demonslay335
W moim menedżerze SDK jest wiele narzędzi do budowania zestawu SDK systemu Android. Usunięcie starych wersji może spowodować błąd lub wpłynąć na wydajność?
Shima Erfan,
140

Nie musisz przechowywać obrazów systemu, chyba że chcesz użyć emulatora na pulpicie. Wraz z nim możesz usunąć inne niechciane rzeczy, aby zwolnić miejsce na dysku .

Dodając jako odpowiedź na moje pytanie, ponieważ musiałem opowiadać o tym ludziom w moim zespole więcej niż kilka razy. Stąd ta odpowiedź stanowi odniesienie do dzielenia się z innymi ciekawymi.

W ciągu ostatnich kilku tygodni było kilku kolegów, którzy pytali mnie, jak bezpiecznie pozbyć się niechcianych rzeczy w celu zwolnienia miejsca na dysku (większość z nich była początkująca). Przekierowałem ich na to pytanie, ale wrócili do mnie po kroki. Więc dla początkujących Androida jest przewodnik krok po kroku, aby bezpiecznie usunąć niechciane rzeczy.

Uwaga

  • Nie usuwaj na ślepo wszystkiego bezpośrednio z dysku, który według ciebie nie jest zajęty. Zrobiłem to raz i musiałem ponownie pobrać.
  • Upewnij się, że masz listę wszystkich aktywnych projektów z rodzajem emulatorów (jeśli istnieją) oraz poziomów API i narzędzi do budowania wymaganych dla tych, aby kontynuować pracę / kompilację poprawnie.

Po pierwsze, upewnij się, że nie będziesz używać emulatorów i zawsze będziesz rozwijać program na urządzeniu fizycznym. Jeśli będziesz potrzebować emulatorów, zanotuj poziomy API i typ emulatorów, których będziesz potrzebować. Nie usuwaj ich. W pozostałych przypadkach wykonaj następujące czynności:

Kroki, aby bezpiecznie usunąć niechciane rzeczy z folderu Android SDK na dysku

  1. Otwórz samodzielnego menedżera zestawu SDK systemu Android. Aby otworzyć, wykonaj jedną z następujących czynności:
  • Kliknij przycisk SDK Manager na pasku narzędzi w Android Studio lub Eclipse
  • W Android Studio przejdź do ustawień i wyszukaj „Android SDK”. Kliknij Android SDK -> „Otwórz samodzielny menedżer SDK”
  • W Eclipse otwórz menu „Okno” i wybierz „Android SDK Manager”
  • Przejdź do lokalizacji katalogu android-sdk na komputerze i uruchom „SDK Manager.exe”

.

  1. Odznacz wszystkie elementy kończące się na „Obraz systemu”. Każdy poziom interfejsu API będzie miał więcej niż kilka. Jeśli potrzebujesz i zorientowałeś się, że lista już jest zaznaczona, aby uniknąć ich utraty i konieczności ponownego pobrania.

.

  1. Opcjonalne (może pomóc zaoszczędzić nieznacznie więcej miejsca na dysku): Aby zwolnić więcej miejsca, możesz również całkowicie odznaczyć niepotrzebne poziomy API. Zachowaj ostrożność, aby uniknąć ponownego pobierania czegoś, czego faktycznie używasz w innych projektach.

.

  1. Na koniec upewnij się, że masz przynajmniej następujące informacje (sprawdź obraz poniżej), aby pozostałe poziomy API mogły bezproblemowo współpracować z urządzeniem fizycznym.

W końcu czyste komponenty sdk dla Androida powinny wyglądać mniej więcej tak w menedżerze SDK.

wprowadź opis zdjęcia tutaj

AndroidMechanic - Viral Patel
źródło
9
Usuwanie obrazów systemowych w menedżerze SDK jest najczystszym rozwiązaniem. To powinno mieć przynajmniej więcej głosów pozytywnych, a nawet być zaakceptowaną odpowiedzią.
Levite
4
Dzięki @Levit jest to odpowiedź na moje własne pytanie, które opublikowałem później, ponieważ myślałem, że ludzie skorzystają na znajomości tego podejścia. Odpowiedź, którą zaznaczyłam jako akceptowaną, była tą, która naprawdę pomogła mi w tym czasie.
AndroidMechanic - Viral Patel
1
To było bardzo pomocne, dziękuję. Jedyną modyfikacją twoich kroków, którą zasugerowałem, jest krok # 2. Chcesz sprawdzić elementy, które chcesz usunąć, a następnie kliknij przycisk Usuń paczki w prawym dolnym rogu. Dzięki jeszcze raz!
Adam Plocher
Dziękuję bardzo, nie wiedziałem, że sdk pobiera emulatory (mój Mac płakał, zabrakło miejsca, dopóki nie zobaczyłem tego postu).
ScarletMerlin,
Pytanie brzmi „ Czy musimy zachować wszystkie obrazy systemowe? ” I to nie odpowiada na to pytanie.
user34660,
8

Miałem 20,8 GB w folderze C: \ Users \ ggo \ AppData \ Local \ Android \ Sdk \ system-images (6 obrazów Androida: - Android-10 - Android-15 - Android-21 - Android-23 - Android-25 - android-26).

Skompresowałem folder C: \ Users \ ggo \ AppData \ Local \ Android \ Sdk \ system-images.

Teraz zajmuje tylko 4,65 GB.

C: \ Users \ ggo \ AppData \ Local \ Android \ Sdk \ system-images

Do tej pory nie spotkałem żadnego problemu ...

Kompresja wydaje się wahać od 2/3 do 6, czasem znacznie więcej:

android-10

android-23

android-25

android-26

ggo
źródło
1
jak to skompresowałeś?
krv
1
kliknij prawym przyciskiem myszy folder do kompresji (tutaj folder obrazów systemowych) => Właściwości => Zaawansowane => włącz „Kompresuj zawartość, aby zaoszczędzić miejsce na dysku” => OK => Zastosuj => wybierz „Zastosuj zmianę w tym folderze, podfolderach i plikach „(powinien być domyślnie zaznaczony) i kliknij OK. (być może lepiej jest zamknąć Android Studio i zamknąć aktualnie działające emulatory przed kompresowaniem, ponieważ niektóre pliki mogą być zablokowane).
ggo
3
Wpłynie to na wydajność, więc rób to tylko w przypadku rzadko używanych plików (z wyłączeniem już skompresowanych plików, takich jak zdjęcia, wideo, zip, jar itp.).
Leon
6

Polecam dwa kroki, aby rozwiązać problem nadęty pakiet SDK.

Najpierw usunąłem wszystkie wersje Androida oprócz dwóch:

  1. Obecna wersja, np. 6.0 Marshmallow w chwili pisania tego tekstu. Ta wersja ma na celu testowanie i rozwijanie do najnowszego i najlepszego działania obecnych telefonów Nexus oraz kilku innych marek.

  2. Starsza wersja, np. 4.04 Ice Cream Sandwich. Ma to zapewnić zgodność z większością telefonów. Tracisz część funkcjonalności nowszych wersji, ale zyskujesz najniższy wspólny mianownik kompatybilności.

Po drugie, usunąłem emulatory i zachowałem tylko dwa powyższe. Powiedziałem, żeby nie przechowywał całego stanu systemu na dysku, co rzeczywiście ostrzega, że ​​zajmiesz dużo miejsca, chociaż przyspiesza to uruchamianie. Po prostu uruchom emulator przed pójściem na kawę rano :)

Jeśli to za dużo miejsca, całkowicie usuń emulatory. Odbierz kilka starszych telefonów od Ebay, które zapewnią Ci wszystkie platformy testowe, których potrzebujesz. Nie muszą nawet być całkowicie funkcjonalne - wiele aplikacji nie potrzebuje na przykład karty SIM i łączności komórkowej.

Moje środowisko Androida zajmowało 32 koncerty na 128-gigabajtowym Macbooku Air. Nie można tego robić dalej. Któregoś dnia zrobią terabajt MacBook Air, ale do tego czasu musieli się odchudzić.

Orzechy włoskie
źródło
Oryginalne pytanie brzmi: „ Większość moich prac rozwojowych odbywa się bezpośrednio na urządzeniu ”, ale dla nas wszystkich korzystających z emulatora jest to jedyna odpowiedź na pytanie „ Czy musimy zachować wszystkie obrazy systemowe? ”.
user34660,
5

Jest to minimalna ilość rzeczy, które trzymam na co dzień w tworzeniu Androida (w tym kod produkcyjny). Zawiera tylko najnowsze wersje od API 25 do API 27 (od Nougat do Android P) i możesz z nim świetnie pracować.

  • Aby jeszcze bardziej zminimalizować, po prostu zachowaj jedną z poniższych wersji jako taką samą i zachowaj wersje niższe, tj. API 16 z tymi samymi plikami pobranymi jak poniżej.

Sneh Pandya
źródło
4

Istnieje sposób na bezpieczne usunięcie obrazu systemu

Przejdź do SDK Manager na pasku narzędzi:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Idź w Android SDK:

wprowadź opis zdjęcia tutaj

Na karcie Platformy SDK usuń zaznaczenie, którą platformę chcesz odinstalować:

wprowadź opis zdjęcia tutaj

Kliknij ok i potwierdź usunięcie:

wprowadź opis zdjęcia tutaj

Kevin ABRIOUX
źródło
1

Oprócz innych odpowiedzi poniższy katalog zawiera usuwalne obrazy systemowe na komputerze Mac dla systemu Android Studio 2.3.3. Byłem w stanie usunąć katalogi android-16 i android-17 bez żadnego problemu, ponieważ nie miałem emulatorów, które z nich korzystały. (Zatrzymałem androida 24, który był w użyciu).

$ 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    .
Gareth Randall
źródło
1

Usuwając cały emulator, kiedyś pamięć nie zostanie zredukowana do naszych oczekiwań. Więc otwórz poniżej wzmiankę o ścieżce na swoim dysku

C: \ Users {Nazwa użytkownika} .android \ avd

W tym folderze AVD możesz zobaczyć wszystkie pliki AVD, które wcześniej utworzyłeś. Musisz więc usunąć wszystkie AVD, które usuną wszystkie nieużywane spacje, które są pobierane przez emulator. Następnie stwórz nowy emulator.

Narender Gusain
źródło
0

W tym folderze znajdują się wszystkie obrazy emulatorów. Jeśli nie używasz emulatora, możesz usunąć ten folder.

Ahmad Nawaz
źródło