professormanhattan.androidstudio
Android Studio - IDE do programowania w Androidzie
Stworzone przez Megabyte Labs
Rola Ansible, która instaluje Android Studio i konfiguruje SDK Androida na prawie każdym systemie operacyjnym
Spis treści
- Przegląd
- Funkcje
- Szybki start
- Zmienne
- Obsługiwane systemy operacyjne
- Zależności
- Przykładowy playbook
- Wkład
- Licencja
Przegląd
To repozytorium jest miejscem, gdzie znajduje się rola Ansible, która instaluje Android Studio i konfiguruje SDK Androida na prawie każdym systemie operacyjnym. Android Studio jest oficjalnym zintegrowanym środowiskiem programistycznym dla systemu operacyjnego Android firmy Google, zbudowanym na oprogramowaniu IntelliJ IDEA firmy JetBrains i zaprojektowanym specjalnie do programowania aplikacji na Androida. Rola ta instaluje Android Studio na prawie każdym systemie operacyjnym, a także zapewnia instalację konfigurowalnej listy narzędzi wiersza poleceń i SDK, które są płynnie zintegrowane z systemem (instalacja odpowiednich elementów w zmiennej środowiskowej PATH
).
Funkcje
Zapewnia instalację Android Studio:
- Instaluje Android Studio na Archlinux, CentOS, Debian, Fedora, macOS, Ubuntu i Windows
- Zapewnia, że narzędzia wiersza poleceń są pobierane, instalowane i dostępne w
PATH
Zapewnia obecność skonfigurowanych SDK Androida:
- Instaluje skonfigurowaną listę SDK i narzędzi Androida w folderach domowych użytkowników
- Zapewnia, że narzędzia SDK Androida, takie jak
adb
, są dostępne w PATH - Aktualizuje
~/.bashrc
, aby dodać narzędzia SDK doPATH
w systemach Linux - Aktualizuje
~/.zshrc
, aby dodać narzędzia SDK doPATH
w systemach Linux - Aktualizuje
PATH
w systemach Windows
Szybki start
Chcesz zainstalować Android Studio bez zajmowania się Ansible? Po prostu uruchom poniższe polecenie, które odpowiada Twojemu systemowi operacyjnemu:
Linux/macOS:
curl -sS https://install.doctor/androidstudio | bash
Windows:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/androidstudio?os=win'))
Ważna uwaga: Przed uruchomieniem powyższych poleceń powinieneś prawdopodobnie bezpośrednio uzyskać dostęp do URL, aby upewnić się, że kod jest legalny. Już wiemy, że jest bezpieczny, ale przed uruchomieniem jakiegokolwiek skryptu na swoim komputerze, powinieneś go zbadać.
Możesz również sprawdzić Install Doctor. To aplikacja, którą stworzyliśmy i która może zainstalować dowolną rolę Ansible jednym poleceniem. Ma też kilka innych przydatnych funkcji, takich jak możliwość instalacji binarnych w locie bez potrzeby hasła. Jeśli jednak chciałbyś włączyć tę rolę do playbooku Ansible (i dostosować ustawienia), to proszę kontynuować czytanie poniżej.
Zmienne
Ta rola zawiera zmienne, które możesz dostosować. Zmienne, które możesz dostosować, znajdują się w defaults/main.yml
. Domyślnie zmienne używają sensownych wartości domyślnych, ale możesz chcieć dostosować rolę w zależności od swojego przypadku. Zmienne wraz z opisami są wymienione poniżej:
Nazwa | Wartość domyślna | Opis |
---|---|---|
android_sdks |
[] |
Lista SDK i narzędzi do zainstalowania po zainstalowaniu Android Studio. Jeśli nie podasz wartości, zainstalowana zostanie najnowsza wersja SDK i narzędzi. Użyj właściwego formatu, który można znaleźć, wykonując sdkmanage --list po zainstalowaniu narzędzi CLI; niektóre pakiety wymagają określenia wersji, inne nie. |
sdk_location |
"" |
Folder, który ma być ustawiony jako lokalizacja SDK |
user_configs |
[] |
Zmienna user_configs jest tablicą obiektów, które powinny mieć przynajmniej zdefiniowaną właściwość username dla każdego użytkownika z katalogiem domowym, do którego chciałbyś, aby ta rola zainstalowała narzędzia SDK Androida. Jeśli właściwość systemowa jest ustawiona na true , narzędzia SDK nie będą instalowane w katalogu domowym tego użytkownika. Możesz kontrolować lokalizację instalacji za pomocą zmiennej sdk_location . |
Przykłady zmiennych
android_sdks
#💬 Przykładowa implementacja zmiennej android_sdks
android_sdks:
- platform-tools
- emulator
- build-tools;30.0.0
- platforms;android-30
- sources;android-30
- patcher;v4
sdk_location
#💬 Przykładowa implementacja zmiennej sdk_location
sdk_location: ~/Android/Sdk
user_configs
#💬 Przykładowa implementacja zmiennej user_configs
user_configs:
- username: myuser
- username: root
system: true
Obsługiwane systemy operacyjne
Tabela poniżej pokazuje systemy operacyjne, na których przetestowaliśmy tę rolę. Jest automatycznie generowana za pomocą testów Ansible Molecule znajdujących się w folderze molecule/
. Istnieje logika CI, która automatycznie obsługuje testowanie Windows, macOS, Ubuntu, Fedora, CentOS, Debian i Archlinux. Jeśli Twój system operacyjny nie jest wymieniony, ale jest wariantem jednego z testowanych systemów (tj. systemów pochodnych Debiana lub RedHat), to możliwe, że rola również zadziała.
Rodzina OS | Wersja OS | Status | Idempotent | Testowana na |
---|---|---|---|---|
Debian | 10 (Buster) | ✅ |
❌ |
5 sierpnia 2021 |
Ubuntu | 18.04 (Bionic Beaver) | ✅ |
❌ |
5 sierpnia 2021 |
Ubuntu | 20.04 (Focal Fossa) | ✅ |
❌ |
5 sierpnia 2021 |
Ubuntu | 21.04 (Hirsute Hippo) | ✅ |
❌ |
5 sierpnia 2021 |
Co oznacza pojęcie idempotentny? Idempotentny oznacza, że jeśli uruchomisz tę rolę dwa razy z rzędu, to za drugim razem nie będzie żadnych zmian w systemie.
Poświęciliśmy dużo czasu na doskonalenie naszych konfiguracji CI i narzędzi do budowy. Jeśli chcesz dowiedzieć się więcej o tym, jak doskonalimy nasz proces, możesz znaleźć ciekawe nasze wspólne pliki Ansible oraz dokumentację Ansible. Zobacz przewodnik CONTRIBUTING.md po więcej szczegółów.
Zależności
Większość naszych ról polega na kolekcjach Ansible Galaxy. Niektóre nasze projekty są również zależne od innych ról i kolekcji, które zostały opublikowane w Ansible Galaxy. Zanim uruchomisz tę rolę, będziesz musiał zainstalować zależności kolekcji i ról, a także wymagania Pythona, uruchamiając:
if type poetry &> /dev/null; then poetry install --no-root; else pip3 install -r .config/assets/requirements.txt; fi
ansible-galaxy install -r requirements.yml
Alternatywnie możesz po prostu uruchomić bash .config/scripts/start.sh
, jeśli jesteś nowy w Ansible i nie masz nic przeciwko zainstalowaniu wymagań rozwojowych. To łatwy sposób, aby upewnić się, że wszystko działa poprawnie.
Python
Chociaż jedynym narzędziem niezbędnym do uruchomienia tego play na standardowej maszynie jest Ansible (pakiet Pythona), dołączamy również kilka innych zależności Pythona, które są wymagane dla specjalnych przypadków użycia i rozwoju. Poniższa tabela zawiera szczegóły dotyczące tych pakietów:
Pakiet | Opis | Wymagane |
---|---|---|
ansible | System zarządzania konfiguracją, który może zdalnie konfigurować komputery | ✔️ |
docker | Umożliwia możliwość zarządzania kontenerami Docker z użyciem Ansible | ✔️ |
python-vagrant | Wymagany do zarządzania maszynami Vagrant | ✔️ |
pywinrm | Wymagany do zarządzania maszynami Windows, które używają WinRM | ✔️ |
ansible-lint | Narzędzie do sprawdzania błędów w plikach Ansible | |
ansibler | Narzędzie używane do generowania zaawansowanej dokumentacji (np. generuje tabelę zgodności i inne tabele) | |
black | Autoformatowanie plików Pythona do wykorzystania w przypadku, gdy projekt wykorzystuje skrypty testowe Pythona | |
blocklint | Narzędzie do analizy kodu zapobiegające wprowadzeniu niektórych słów do bazy kodu | |
flake8 | Linter Pythona informujący o błędach składni i stylu | |
mod-ansible-autodoc | Własna wersja ansible-autodoc, która pozwala nam automatycznie generować dokumentację na podstawie komentarzy w plikach YAML roli | |
molecule | Framework testowy dla Ansible | |
molecule-docker | Wtyczka Molecule do zarządzania kontenerami Docker | |
molecule-vagrant | Wtyczka Molecule do zarządzania maszynami Vagrant | |
pre-commit-hooks | Zestaw narzędzi przydatnych do analizy kodu | |
proselint | Linter służący do generowania poprawek języka angielskiego (używany do poprawy dokumentacji) | |
yamllint | Linter dla plików YAML zapewniający poprawność składni i stylu |
Role Galaxy
Chociaż większość naszych ról nie ma zależności, są przypadki, w których inna rola musi być zainstalowana, zanim logika będzie mogła przejść dalej. Na początku odgrywania ról, zależności ról Ansible Galaxy wymienione w meta/main.yml
uruchamiają się. Te zależności są skonfigurowane tak, aby uruchamiane były tylko raz na playbook. Jeśli w swoim playbooku włączysz więcej niż jedną z naszych ról, które mają wspólne zależności, instalacja zależności zostanie pominięta po pierwszym uruchomieniu. Niektóre nasze role korzystają również z ról pomocniczych bezpośrednio z plików zadań, co pomaga utrzymać główny playbook (Gas Station) czysty.
Plik requirements.yml
zawiera pełną listę zależności Ansible Galaxy wymaganych przez tę rolę (tj. zależności ról w meta/main.yml
, role pomocnicze, kolekcje itp.). Dla Twojej wygody, poniżej znajduje się lista zależności ról wraz z krótkimi opisami:
role_dependencies
Kolekcje Galaxy
Ta rola jest zależna od wielu kolekcji Ansible Galaxy. Kolekcje wraz z linkami do ich źródła są wymienione poniżej.
Przykładowy playbook
Po zainstalowaniu zależności, wszystko co musisz zrobić, to dodać rolę do swojego głównego playbooka. Rola obsługuje zachowanie become
, więc możesz po prostu dodać rolę do swojego playbooka bez martwienia się o polecenia, które nie powinny być uruchamiane jako root:
- hosts: all
roles:
- professormanhattan.androidstudio
Jeśli włączasz tę rolę do istniejącego playbooka, warto skopiować wymagania przedstawione w pyproject.toml
oraz requirements.yml
do odpowiadających im plików w katalogu głównym twojego playbooka, aby później musieć zajmować się instalowaniem tylko jednego zestawu wymagań. Należy zauważyć, że zależności w pyproject.toml
można przenieść do bardziej tradycyjnego requirements.txt
, jeśli to właśnie w tym pliku śledzisz zależności Pythona.
Przykład z życia wzięty
Możesz znaleźć przykład playbooka, który wykorzystuje tę rolę w naszym głównym playbooku (tzw. Gas Station). Playbook jest doskonałym przykładem dla kogoś, kto uczy się korzystać z Ansible. Zawiera również wiele dobrze przemyślanych narzędzi do budowy, które mogą docenić bardziej zaawansowani użytkownicy Ansible. A osoby, które mogą nie interesować się Ansible, również mogą skorzystać, ponieważ pozwala on przekształcić komputer (i sieć) w doskonałe środowisko deweloperskie. Ostatecznie, to niesamowity projekt, o którym powinni wiedzieć programiści!
Wkład
Wkłady, zgłoszenia błędów i propozycje funkcji są mile widziane! Zachęcamy do sprawdzenia strony z problemami. Jeśli chcesz wnieść wkład, zapoznaj się z przewodnikiem po wkładzie.
Wsparcie
Droga Wspaniała Osobo,
Tworzę projekty open source z miłości. Mimo że mam pracę, dach nad głową i wystarczająco szybkiego jedzenia, byłoby również całkiem miłe, gdyby społeczność doceniła coś, na co poświęciłem dużo czasu i pieniędzy. Proszę, rozważ wsparcie mnie! Kto wie? Może będę w stanie rzucić pracę i publikować open source na pełen etat.
Z poważaniem,
Brian Zalewski
Partnerzy
Poniżej znajdziesz listę usług, z których korzystamy, które oferują specjalne korzyści za rejestrację za pomocą naszych linków:

Licencja
Copyright © 2020-2021 Megabyte LLC. Projekt objęty licencją MIT.
Installs Android Studio and sets up Android SDKs on nearly any OS
ansible-galaxy install professormanhattan.androidstudio