professormanhattan.androidstudio
Android Studio - Un IDE pour le développement Android
Créé par Megabyte Labs
Un rôle Ansible qui installe Android Studio et configure les SDK Android sur presque n'importe quel OS
Table des Matières
- Vue d'ensemble
- Fonctionnalités
- Démarrage rapide
- Variables
- Systèmes d'exploitation pris en charge
- Dépendances
- Exemple de playbook
- Contributions
- Licence
Vue d'ensemble
Ce dépôt est la maison d'un rôle Ansible qui installe Android Studio et configure les SDK Android sur presque tous les systèmes d'exploitation. Android Studio est l'environnement de développement intégré officiel pour le système d'exploitation Android de Google, construit sur le logiciel IntelliJ IDEA de JetBrains et conçu spécifiquement pour le développement Android. Ce rôle installe Android Studio sur presque n'importe quel système d'exploitation et s'assure qu'une liste configurable d'outils de ligne de commande et de SDK est installée et intégrée en douceur au système (c'est-à-dire que le rôle ajoute les éléments appropriés à la variable d'environnement PATH
).
Fonctionnalités
Assure que Android Studio est installé :
- Installe Android Studio sur Archlinux, CentOS, Debian, Fedora, macOS, Ubuntu et Windows
- S'assure que les outils en ligne de commande sont téléchargés, installés et disponibles dans le
PATH
Assure que les SDK Android configurés sont présents :
- Installe une liste configurable de SDK et d'outils Android dans le(s) dossier(s) de l'utilisateur
- S'assure que les outils Android SDK comme
adb
sont présents dans lePATH
- Met à jour
~/.bashrc
pour inclure les outils SDK dans lePATH
sur les systèmes Linux - Met à jour
~/.zshrc
pour inclure les outils SDK dans lePATH
sur les systèmes Linux - Met à jour le
PATH
sur les systèmes Windows
Démarrage rapide
Vous souhaitez installer Android Studio sans avoir à utiliser Ansible ? Il vous suffit d'exécuter la commande suivante correspondant à votre système d'exploitation :
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'))
Remarque importante : Avant d'exécuter les commandes ci-dessus, vous devez probablement accéder directement à l'URL pour vous assurer que le code est légitime. Nous savons déjà qu'il est sûr, mais avant d'exécuter un script sur votre ordinateur, vous devriez l'examiner.
Vous pouvez également consulter Install Doctor. C'est une application que nous avons créée pour installer n'importe quel rôle Ansible en une seule ligne de commande. Elle a d'autres fonctionnalités intéressantes, comme la possibilité d'installer des binaires à la volée sans nécessiter de mot de passe. Cependant, si vous souhaitez incorporer ce rôle dans un playbook Ansible (et personnaliser les paramètres), veuillez continuer à lire ci-dessous.
Variables
Ce rôle contient des variables que vous pouvez personnaliser. Les variables que vous pouvez personnaliser sont situées dans defaults/main.yml
. Par défaut, les variables utilisent des valeurs raisonnables, mais vous voudrez peut-être personnaliser le rôle en fonction de votre utilisation. Les variables, ainsi que leurs descriptions, sont listées ci-dessous :
Nom | Valeur par défaut | Description |
---|---|---|
android_sdks |
[] |
La liste des SDK et outils à installer après l'installation d'Android Studio. Si aucune valeur n'est fournie, la dernière version des SDK et des outils sera installée. Utilisez le format correct, que vous pouvez trouver en exécutant sdkmanage --list après que les outils CLI soient installés ; certains paquets nécessitent qu'une version soit spécifiée, et d'autres non. |
sdk_location |
"" |
Le dossier à définir comme emplacement SDK |
user_configs |
[] |
La variable user_configs est un tableau d'objets qui devraient, au minimum, avoir la propriété username définie pour chaque utilisateur avec un répertoire personnel dans lequel vous souhaitez que ce rôle installe les outils SDK Android. Si la propriété système est définie sur vrai, les outils SDK ne seront pas installés dans le répertoire personnel de cet utilisateur. Vous pouvez contrôler l'emplacement d'installation avec la variable sdk_location . |
Exemples de variables
android_sdks
#💬 Exemple d'implémentation de la variable android_sdks
android_sdks:
- tools de plateforme
- émulateur
- outils de build;30.0.0
- plateformes;android-30
- sources;android-30
- patcher;v4
sdk_location
#💬 Exemple d'implémentation de la variable sdk_location
sdk_location: ~/Android/Sdk
user_configs
#💬 Exemple d'implémentation de la variable user_configs
user_configs:
- username: monutilisateur
- username: root
system: true
Systèmes d'exploitation pris en charge
Le tableau ci-dessous montre les systèmes d'exploitation sur lesquels nous avons testé ce rôle. Il est généré automatiquement à l'aide des tests Ansible Molecule situés dans le dossier molecule/
. Il y a une logique CI en place pour gérer automatiquement les tests de Windows, macOS, Ubuntu, Fedora, CentOS, Debian et Archlinux. Si votre système d'exploitation n'est pas répertorié, mais est une variante de l'un des systèmes que nous testons (c'est-à-dire un système de type Debian ou un système de type RedHat), il est possible que le rôle fonctionne tout de même.
Famille OS | Version OS | Statut | Idempotent | Testé le |
---|---|---|---|---|
Debian | 10 (Buster) | ✅ |
❌ |
5 août 2021 |
Ubuntu | 18.04 (Bionic Beaver) | ✅ |
❌ |
5 août 2021 |
Ubuntu | 20.04 (Focal Fossa) | ✅ |
❌ |
5 août 2021 |
Ubuntu | 21.04 (Hirsute Hippo) | ✅ |
❌ |
5 août 2021 |
Que signifie idempotent ? Idempotent signifie que si vous exécutez ce rôle deux fois de suite, il n'y aura aucune modification du système lors de la deuxième exécution.
Nous avons passé beaucoup de temps à perfectionner nos configurations CI et nos outils de construction. Si vous êtes intéressé à en savoir plus sur la façon dont nous avons perfectionné notre processus, vous pourriez trouver intéressants nos fichiers communs Ansible et documentation Ansible. Consultez le guide CONTRIBUTING.md pour plus de détails.
Dépendances
La plupart de nos rôles dépendent des collections Ansible Galaxy. Certains de nos projets dépendent également d'autres rôles et collections publiés sur Ansible Galaxy. Avant d'exécuter ce rôle, vous devez installer les dépendances de collection et de rôle, ainsi que les exigences Python, en exécutant :
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
Alternativement, vous pouvez simplement exécuter bash .config/scripts/start.sh
si vous êtes nouveau dans Ansible et ne vous dérangez pas que les exigences de développement soient également installées. C'est le moyen simple de s'assurer que tout fonctionne correctement.
Python
Bien que l'outil nécessaire pour exécuter ce play sur une machine standard soit Ansible (un package Python), nous incluons plusieurs autres dépendances Python qui sont requises pour des cas d'utilisation spécialisés et le développement. Le tableau ci-dessous détaille ces paquets :
Paquet | Description | Requis |
---|---|---|
ansible | Un système de gestion de configuration qui peut configurer à distance des ordinateurs | ✔️ |
docker | Permet la capacité de provisionner des conteneurs Docker avec Ansible | ✔️ |
python-vagrant | Requis pour provisionner des VMs Vagrant | ✔️ |
pywinrm | Requis pour provisionner des machines Windows utilisant WinRM | ✔️ |
ansible-lint | Outil de linting pour les fichiers Ansible | |
ansibler | Outil personnalisé utilisé pour générer une documentation avancée (par exemple, il génère le tableau de compatibilité et d'autres tableaux) | |
black | Auto-formatteur de fichier Python inclus au cas où le projet utilise des scripts de test Python | |
blocklint | Outil de linting empêchant certains mots d'entrer dans la base de code | |
flake8 | Linter Python qui signale les erreurs de syntaxe et de style Python | |
mod-ansible-autodoc | Fork personnalisé de ansible-autodoc qui nous permet d'auto-générer la documentation basée sur les commentaires dans les fichiers YAML du rôle | |
molecule | Cadre de test pour Ansible | |
molecule-docker | Plugin Molecule pour provisionner des conteneurs Docker | |
molecule-vagrant | Plugin Molecule pour provisionner des VMs Vagrant | |
pre-commit-hooks | Ensemble d'outils utiles pour le linting | |
proselint | Linter utilisé pour générer des améliorations de la langue anglaise (utilisé pour améliorer la documentation) | |
yamllint | Linter pour les fichiers YAML qui assure une syntaxe et un style appropriés |
Rôles Galaxy
Bien que la plupart de nos rôles n’aient pas de dépendances, il y a quelques cas où un autre rôle doit être installé avant que la logique puisse continuer. Au début du play, les dépendances de rôle Ansible Galaxy énumérées dans meta/main.yml
seront exécutées. Ces dépendances sont configurées pour ne s'exécuter qu'une seule fois par playbook. Si vous incluez plus d'un de nos rôles dans votre playbook qui ont des dépendances communes, l'installation de la dépendance sera omise après la première exécution. Certains de nos rôles utilisent également des rôles auxiliaires directement à partir des fichiers de tâches, ce qui aide à garder notre playbook principal (Gas Station) DRY.
Le fichier requirements.yml
contient une liste complète des dépendances Ansible Galaxy requises par ce rôle (c'est-à-dire les dépendances de rôle dans meta/main.yml
, rôles auxiliaires, collections, etc.). Pour votre commodité, une liste des dépendances de rôle avec de brèves descriptions est ci-dessous :
dépendances_de_rôle
Collections Galaxy
Ce rôle dépend de plusieurs collections Ansible Galaxy. Les collections ainsi que des liens vers leur source sont listés ci-dessous.
Exemple de playbook
Avec les dépendances installées, il vous suffit d'ajouter le rôle à votre playbook principal. Le rôle gère le comportement become
, donc vous pouvez simplement ajouter le rôle à votre playbook sans avoir à vous soucier des commandes qui ne devraient pas être exécutées en tant que root :
- hosts: tous
roles:
- professormanhattan.androidstudio
Si vous incorporez ce rôle dans un playbook existant, alors il pourrait être prudent de copier les exigences énoncées dans pyproject.toml
et requirements.yml
dans leurs fichiers correspondants à la racine de votre playbook, afin que vous n'ayez à vous soucier que d'une seule série d'exigences lors de futures utilisations. Notez que les dépendances dans pyproject.toml
peuvent être déplacées dans le traditionnel requirements.txt
, si c'est ce que vous utilisez actuellement pour suivre les dépendances Python.
Exemple dans le monde réel
Vous pouvez trouver un exemple de playbook qui incorpore ce rôle dans notre playbook principal (alias Gas Station). Le playbook est un excellent exemple pour quelqu'un qui apprend à utiliser Ansible. Il intègre également beaucoup d'outils de construction bien pensés que les utilisateurs Ansible plus avancés peuvent apprécier. Et les personnes qui ne se soucient pas d'Ansible peuvent aussi en bénéficier car cela leur permet de transformer leur ordinateur (et leur réseau) en un environnement de développement ultime. En gros, c'est un projet incroyable que les développeurs devraient connaître !
Contributions
Les contributions, les problèmes et les demandes de fonctionnalités sont les bienvenus ! N'hésitez pas à consulter la page des problèmes. Si vous souhaitez contribuer, veuillez jeter un œil au guide de contribution.
Sponsorship
Cher(e) personne géniale,
Je crée des projets open source par passion. Bien que j'aie un emploi, un logement et autant de fast-food que je peux gérer, ce serait tout de même super d'être apprécié par la communauté pour quelque chose sur lequel j'ai passé beaucoup de temps et d'argent. Veuillez envisager de me sponsoriser ! Qui sait ? Peut-être que je pourrai quitter mon emploi et publier des projets open source à temps plein.
Sincèrement,
Brian Zalewski
Affiliés
Voici une liste des services que nous utilisons et qui offrent des incitations spéciales pour s'inscrire à leurs services via nos liens spéciaux :

Licence
Droits d'auteur © 2020-2021 Megabyte LLC. Ce projet est sous licence MIT.
Installs Android Studio and sets up Android SDKs on nearly any OS
ansible-galaxy install professormanhattan.androidstudio