2013-05-28 11 views
5

Tło: Stworzyłem skrypt bezobsługowy dla stacji roboczych OSX, który instaluje android-sdk przez homebrew i konfiguruje środowisko Chef-solo. Wspominam o tym, ponieważ każde rozsądne narzędzie/plik o przewidywalnej nazwie zdalnie hostowany znajduje się w tabeli rozwiązań.Kierowanie na konkretną wersję obrazu systemu przy użyciu narzędzia wiersza poleceń "Android"?

Mój problem: Potrzebuję obrazu systemu Android API 16 i nie mogę znaleźć odpowiedniego obszaru nazw flag/paczek przy użyciu narzędzia CLI o nazwie android. Mogłem zainstalować platformę SDK 4.1.2/API 16 przy użyciu android update sdk -u --filter android-16, ale nadal potrzebuję obrazu systemu do emulacji.

android update sdk -u --filter system-image instaluje API 17/4.2.2.

Chciałbym uniknąć rozwiązania opartego na grep nad uruchomieniem android list sdk, nie jest to jednak i tak opcja (android list sdk | grep 'API 16' nie przynosi owocu).

Szukałem w pliku XML, który wywołuje narzędzie android CLI wyliczyć swoją listę pakietów (http://dl-ssl.google.com/android/repository/sys-img/x86/sys-img.xml) i znalazłem link do pliku, który uważam Chcę, http://dl-ssl.google.com/android/repository/sys-img/x86/sysimg_x86-16_r01.zip, ale nie jestem zachwycony na parse XML + omija istniejącą opcję narzędzia.

Widziałem this other SO post i chociaż było to pomocne, nie całkowicie zasłania to, co próbuję zrobić.

Czy brakuje mi flagi lub używam niewłaściwej nazwy paczki? Jeśli tak, to jakiego źródła dokumentacji brakowało? Jak mogę rozwiązać to w przyszłości?

Odpowiedz

7

Możesz teraz używać indywidualnych identyfikatorów pakietów. W Twoim przypadku, jeden z:

echo y | android update sdk --no-ui --filter sys-img-x86-android-16 --all 
echo y | android update sdk --no-ui --filter sys-img-armeabi-v7a-android-16 --all 
echo y | android update sdk --no-ui --filter sys-img-mips-android-16 --all 

--all jest konieczne, ponieważ bez niego, android zignoruje pakiety uzna za stary, nawet jeśli są one zgodne filtr.

Listę identyfikatorów można znaleźć pod numerem android list sdk --extended --all

+0

Dobrze wiedzieć; dziękuję za poświęcenie czasu na dodanie odpowiedzi. Przyjąłem twoją odpowiedź, by pomóc przyszłym widzom. Zostawię swoją odpowiedź poniżej, na wypadek gdyby ta opcja została cofnięta, nie działa lub ktoś jest na starej wersji narzędzi Android. –

2

Nieco hackowate rozwiązanie, ale oto jak można to zrobić - porządkowanie spraw w trakcie wykonywania poleceń CLI.

Pobierz Android API 16 4.1.2 SDK platformy:

echo -ne 'y' | android update sdk -u --filter android-16

Bez API 17 zainstalowanego natychmiast zainstalować obraz systemu. Pozornie, to będzie postępować w zależności najnowsza wersja narzędzi SDK platformy zdarzyć odpowiedzieć na pudełku:

echo -ne 'y' | android update sdk -u --filter system-image

Jeśli chcesz API 17, zainstalować polecenia android-17, a następnie uruchomić system-image zainstalować.

Powiązane problemy