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

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 do PATH w systemach Linux
  • Aktualizuje ~/.zshrc, aby dodać narzędzia SDK do PATH 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.

  • odznaka chocolatey.chocolatey Ansible Galaxy
  • odznaka community.general Ansible Galaxy
  • odznaka google.cloud Ansible Galaxy

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

Sponsorzy Open Collective Sponsorzy GitHub Patreon

Partnerzy

Poniżej znajdziesz listę usług, z których korzystamy, które oferują specjalne korzyści za rejestrację za pomocą naszych linków:

MailChimp Odznaka polecenia DigitalOcean

Licencja

Copyright © 2020-2021 Megabyte LLC. Projekt objęty licencją MIT.

Zainstaluj
ansible-galaxy install professormanhattan.androidstudio
Licencja
other
Pobrania
243
Właściciel
Free open-source developer tools for managing massive amounts of code