professormanhattan.androidstudio

Android Studio - Eine IDE für Android-Entwicklung

Gestaltet von Megabyte Labs



Eine Ansible-Rolle, die Android Studio installiert und Android SDKs auf fast jedem Betriebssystem einrichtet


Inhaltsverzeichnis

Überblick

Dieses Repository ist die Heimat einer Ansible Rolle, die Android Studio installiert und Android SDKs auf fast jedem Betriebssystem einrichtet. Android Studio ist die offizielle integrierte Entwicklungsumgebung für das Android-Betriebssystem von Google, basiert auf der Software IntelliJ IDEA von JetBrains und wurde speziell für die Android-Entwicklung konzipiert. Diese Rolle installiert Android Studio auf fast jedem Betriebssystem und sorgt dafür, dass eine konfigurierbare Liste von Befehlszeilenwerkzeugen und SDKs installiert und nahtlos ins System integriert wird (d. h. die Rolle fügt die entsprechenden Elemente zur PATH Umgebungsvariable hinzu).

Merkmale

Stellt sicher, dass Android Studio installiert ist:

  • Installiert Android Studio auf Archlinux, CentOS, Debian, Fedora, macOS, Ubuntu und Windows
  • Stellt sicher, dass Befehlszeilenwerkzeuge heruntergeladen, installiert und im PATH verfügbar sind

Stellt sicher, dass konfigurierte Android SDKs vorhanden sind:

  • Installiert eine konfigurierbare Liste von Android SDKs und Tools im Home-Verzeichnis der Benutzer
  • Stellt sicher, dass Android SDK-Tools wie adb im PATH vorhanden sind
  • Aktualisiert ~/.bashrc, um SDK-Tools in den PATH auf Linux-Systemen einzufügen
  • Aktualisiert ~/.zshrc, um SDK-Tools in den PATH auf Linux-Systemen einzufügen
  • Aktualisiert den PATH auf Windows-Systemen

Schnellstart

Möchten Sie Android Studio installieren, ohne sich um Ansible kümmern zu müssen? Führen Sie einfach den folgenden Befehl aus, der Ihrem Betriebssystem entspricht:

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'))

Wichtiger Hinweis: Bevor Sie die obigen Befehle ausführen, sollten Sie wahrscheinlich direkt auf die URL zugreifen, um sicherzustellen, dass der Code legitim ist. Wir wissen bereits, dass er sicher ist, aber bevor Sie ein Skript auf Ihrem Computer ausführen, sollten Sie es überprüfen.

Sie können auch Install Doctor ausprobieren. Es ist eine von uns entwickelte App, die jede Ansible-Rolle mit einer einzigen Zeile installieren kann. Außerdem hat sie einige andere nützliche Funktionen, wie die Möglichkeit, Binärdateien direkt zu installieren, ohne ein Passwort zu benötigen. Wenn Sie jedoch diese Rolle in ein Ansible-Playbook einfügen möchten (und Einstellungen anpassen wollen), lesen Sie bitte weiter unten weiter.

Variablen

Diese Rolle enthält Variablen, die Sie anpassen können. Die anpassbaren Variablen befinden sich in defaults/main.yml. Standardmäßig verwenden die Variablen sinnvolle Voreinstellungen, aber möglicherweise möchten Sie die Rolle je nach Anwendungsfall anpassen. Die Variablen mit Beschreibungen sind unten aufgeführt:

Name Standardwert Beschreibung
android_sdks [] Die Liste der SDKs und Tools, die nach der Installation von Android Studio installiert werden sollen. Wenn kein Wert angegeben ist, werden die neuesten Versionen der SDKs und Tools installiert. Verwenden Sie das richtige Format, das Sie finden, indem Sie sdkmanage --list ausführen, nachdem die CLI-Tools installiert sind; einige Pakete benötigen die Angabe einer Version, andere hingegen nicht.
sdk_location "" Der Ordner, der als SDK-Standort festgelegt werden soll
user_configs [] Die Variable user_configs ist ein Array von Objekten, das mindestens die Eigenschaft username für jeden Benutzer mit einem Home-Verzeichnis definiert haben sollte, in das Sie die Android SDK-Tools installieren möchten. Wenn die System-Eigenschaft auf true gesetzt ist, werden die SDK-Tools nicht im Home-Verzeichnis dieses Benutzers installiert. Sie können den Installationsort mit der Variable sdk_location steuern.

Beispiele für Variablen

android_sdks

#💬 Beispielimplementierung der android_sdks-Variable
android_sdks:
  - platform-tools
  - emulator
  - build-tools;30.0.0
  - platforms;android-30
  - sources;android-30
  - patcher;v4

sdk_location

#💬 Beispielimplementierung der sdk_location-Variable
sdk_location: ~/Android/Sdk

user_configs

#💬 Beispielimplementierung der user_configs-Variable
user_configs:
  - username: meinbenutzer
  - username: root
    system: true

Unterstützte Betriebssysteme

Die folgende Tabelle zeigt die Betriebssysteme, auf denen wir diese Rolle getestet haben. Sie wurde automatisch generiert unter Verwendung der Ansible Molecule-Tests im Ordner molecule/. Es gibt eine CI-Logik, die das Testen von Windows, macOS, Ubuntu, Fedora, CentOS, Debian und Archlinux automatisch verwaltet. Wenn Ihr Betriebssystem nicht aufgeführt ist, es sich aber um eine Variante eines der getesteten Systeme handelt (d. h. ein Debian-basiertes oder ein RedHat-basiertes System), dann ist es möglich, dass die Rolle trotzdem funktioniert.

OS-Familie OS-Version Status Idempotent Getestet am
Debian 10 (Buster)
5. August 2021
Ubuntu 18.04 (Bionic Beaver)
5. August 2021
Ubuntu 20.04 (Focal Fossa)
5. August 2021
Ubuntu 21.04 (Hirsute Hippo)
5. August 2021

Was bedeutet idempotent? Idempotent bedeutet, dass wenn Sie diese Rolle zweimal hintereinander ausführen, es beim zweiten Mal keine Änderungen am System gibt.

Wir haben viel Zeit damit verbracht, unsere CI-Konfigurationen und Build-Tools zu perfektionieren. Wenn Sie daran interessiert sind, mehr über unsere Verfeinerungen zu erfahren, dann finden Sie möglicherweise unsere Allgemeinen Ansible Dateien und Ansible-Dokumentation Repositories interessant. Siehe den CONTRIBUTING.md Leitfaden für weitere Details.

Abhängigkeiten

Die meisten unserer Rollen hängen von Ansible Galaxy Sammlungen ab. Einige unserer Projekte sind auch von anderen Rollen und Sammlungen abhängig, die auf Ansible Galaxy veröffentlicht sind. Bevor Sie diese Rolle ausführen, müssen Sie die Sammlung und Rollendependencies sowie die Python-Anforderungen installieren, indem Sie Folgendes ausführen:

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

Alternativ können Sie einfach bash .config/scripts/start.sh ausführen, wenn Sie neu bei Ansible sind und kein Problem damit haben, dass die Entwicklungsanforderungen ebenfalls installiert werden. Dies ist der einfache Weg, um sicherzustellen, dass alles ordnungsgemäß funktioniert.

Python

Obwohl das einzige notwendige Tool zur Ausführung dieses Plays auf einem Standardgerät Ansible (ein Python-Paket) ist, enthalten wir mehrere andere Python-Abhängigkeiten, die für spezielle Anwendungsfälle und Entwicklung erforderlich sind. Die folgende Tabelle zeigt diese Pakete:

Paket Beschreibung Erforderlich
ansible Ein Konfigurationsmanagementsystem, das Computer remote konfigurieren kann
✔️
docker Ermöglicht die Bereitstellung von Docker-Containern mit Ansible
✔️
python-vagrant Erforderlich für die Bereitstellung von Vagrant-VMs
✔️
pywinrm Erforderlich für die Bereitstellung von Windows-Computern, die WinRM verwenden
✔️
ansible-lint Linting-Tool für Ansible-Dateien
ansibler Benutzerdefiniertes Tool zur Generierung fortgeschrittener Dokumentation (z.B. erzeugt es die Kompatibilitätstabelle und einige andere Diagramme)
black Automatischer Python-Dateiformatierer für den Fall, dass das Projekt Python-Testskripte nutzt
blocklint Linting-Tool, das verhindert, dass bestimmte Wörter in den Code-Base gelangen
flake8 Python-Linter, der Python-Syntax- und Stilfehler meldet
mod-ansible-autodoc Benutzerdefinierte Abwandlung von ansible-autodoc, die es uns ermöglicht, Dokumentation basierend auf Kommentaren in den YAML-Dateien der Rolle automatisch zu generieren
molecule Testframework für Ansible
molecule-docker Molecule-Plugin für die Bereitstellung von Docker-Containern
molecule-vagrant Molecule-Plugin für die Bereitstellung von Vagrant-VMs
pre-commit-hooks Suite von Tools, die nützlich für Linting sind
proselint Linter, das verwendet wird, um Verbesserungen in englischer Sprache zu generieren (wird verwendet, um Dokumentation zu verbessern)
yamllint Linter für YAML-Dateien, der sicherstellt, dass die richtige Syntax und das richtige Styling verwendet wird

Galaxy Rollen

Obwohl die meisten unserer Rollen keine Abhängigkeiten haben, gibt es einige Fälle, in denen eine andere Rolle installiert werden muss, bevor die Logik fortfahren kann. Zu Beginn des Plays werden die Ansible Galaxy rollenabhängigen Rollen, die in meta/main.yml aufgeführt sind, ausgeführt. Diese Abhängigkeiten sind so konfiguriert, dass sie nur einmal pro Playbook ausgeführt werden. Wenn Sie mehr als eine unserer Rollen in Ihr Playbook einfügen, die gemeinsame Abhängigkeiten haben, wird die Abhängigkeitsinstallation nach dem ersten Ausführen übersprungen. Einige unserer Rollen nutzen auch Helper-Rollen direkt aus den Task-Dateien, was hilft, unser Hauptplaybook (Tankstelle) DRY zu halten.

Die Datei requirements.yml enthält eine vollständige Liste der Ansible Galaxy-Abhängigkeiten, die für diese Rolle erforderlich sind (d.h. die meta/main.yml Rollenabhängigkeiten, Helper-Rollen, Sammlungen usw.). Für Ihre Bequemlichkeit finden Sie eine Liste der Rollenabhängigkeiten mit kurzen Beschreibungen unten:

rollendependencies

Galaxy Sammlungen

Diese Rolle ist von mehreren Ansible Galaxy Sammlungen abhängig. Die Sammlungen sowie Links zu ihren Quellen sind unten aufgeführt.

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

Beispiel-Playbook

Mit den installierten Abhängigkeiten müssen Sie nur noch die Rolle zu Ihrem Hauptplaybook hinzufügen. Die Rolle verwaltet das become-Verhalten, sodass Sie die Rolle einfach zu Ihrem Playbook hinzufügen können, ohne sich um Befehle kümmern zu müssen, die nicht als Root ausgeführt werden sollten:

- hosts: alle
  roles:
    - professormanhattan.androidstudio

Wenn Sie diese Rolle in ein bereits vorhandenes Playbook integrieren, könnte es klug sein, die in pyproject.toml und requirements.yml enthaltenen Anforderungen in die entsprechenden Dateien im Hauptverzeichnis Ihres Playbooks zu kopieren, sodass Sie sich bei weiteren Einsätzen nur um eine Menge Anforderungen kümmern müssen. Beachten Sie, dass die Abhängigkeiten in pyproject.toml in die traditionellere requirements.txt verschoben werden können, wenn Sie diese derzeit verwenden, um Python-Abhängigkeiten zu verfolgen.

Echtes Beispiel

Ein Beispiel für ein Playbook, das diese Rolle integriert, finden Sie in unserem Hauptplaybook (auch bekannt als Tankstelle). Das Playbook ist ein hervorragendes Beispiel für jemanden, der lernt, wie man Ansible verwendet. Es enthält auch viele gut durchdachte Build-Tools, die fortgeschrittene Ansible-Benutzer zu schätzen wissen. Und Personen, die sich weniger um Ansible kümmern, können ebenfalls davon profitieren, da es, mehr oder weniger, Ihr Computer (und Netzwerk) in die ultimative Entwicklungsumgebung verwandelt. Zusammengefasst ist es ein großartiges Projekt, das Entwickler kennen sollten!

Beitragen

Beiträge, Probleme und Funktionsanfragen sind willkommen! Zögern Sie nicht, die Issues-Seite zu überprüfen. Wenn Sie einen Beitrag leisten möchten, schauen Sie sich bitte den Beitragsleitfaden an.

Sponsoring

Liebe großartige Person,

Ich erstelle Open-Source-Projekte aus Liebe. Obwohl ich einen Job, ein Dach über dem Kopf und so viel Fast Food, wie ich damit zurechtkomme, habe, wäre es trotzdem ziemlich cool, von der Community für etwas geschätzt zu werden, an dem ich viel Zeit und Geld investiert habe. Bitte ziehen Sie in Betracht, mich zu unterstützen! Wer weiß? Vielleicht kann ich meinen Job kündigen und Vollzeit Open-Source-Projekte veröffentlichen.

Mit freundlichen Grüßen,

Brian Zalewski

Open Collective Sponsoren GitHub Sponsoren Patreon

Partner

Nachfolgend finden Sie eine Liste von Dienstleistungen, die wir nutzen und die spezielle Anreize bieten, wenn Sie sich über unsere speziellen Links anmelden:

MailChimp DigitalOcean Referral Badge

Lizenz

Copyright © 2020-2021 Megabyte LLC. Dieses Projekt ist MIT lizenziert.

Installieren
ansible-galaxy install professormanhattan.androidstudio
Lizenz
other
Downloads
243
Besitzer
Free open-source developer tools for managing massive amounts of code