professormanhattan.androidstudio
Android Studio - Android开发的集成开发环境
由 Megabyte Labs 制作
一个Ansible角色,用于安装Android Studio和设置几乎所有操作系统上的Android SDK
目录
概述
该存储库是一个 Ansible 角色的家,旨在安装Android Studio并在几乎所有操作系统上设置Android SDK。Android Studio 是Google Android操作系统的官方集成开发环境,基于JetBrains的IntelliJ IDEA软件专门为Android开发而设计。此角色可以在几乎所有操作系统上安装Android Studio,并确保安装了一组可配置的命令行工具和SDK,并与系统无缝集成(即,角色将适当的项目添加到PATH
环境变量中)。
特性
确保安装了Android Studio:
- 在Archlinux、CentOS、Debian、Fedora、macOS、Ubuntu和Windows上安装Android Studio
- 确保下载、安装命令行工具并在
PATH
中可用
确保配置的Android SDK存在:
- 将可配置的Android SDK和工具安装到用户的主文件夹
- 确保Android SDK工具(如
adb
)在PATH中 - 在Linux系统上更新
~/.bashrc
以包含SDK工具在PATH
中 - 在Linux系统上更新
~/.zshrc
以包含SDK工具在PATH
中 - 在Windows系统上更新
PATH
快速开始
想要安装Android Studio而不想处理Ansible?只需运行与您的操作系统相关的以下命令:
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'))
重要提示: 在运行上述命令之前,您可能应该直接访问该URL,以确保代码是合法的。我们已经知道这是安全的,但在运行任何脚本之前,您应该检查一下。
您也可以查看**Install Doctor**。这是我们创建的一个应用程序,可以通过一条命令安装任何Ansible角色。它还有一些其他方便的功能,比如无需密码即可动态安装二进制文件。不过,如果您想将这个角色整合到Ansible播放本中(并自定义设置),请继续阅读下面的内容。
变量
这个角色包含可以自定义的变量。您可以自定义的变量位于defaults/main.yml
。默认情况下,变量使用合理的默认值,但您可能希望根据使用情况自定义角色。变量及其说明如下:
名称 | 默认值 | 描述 |
---|---|---|
android_sdks |
[] |
安装Android Studio后要安装的SDK和工具的列表。如果未提供值,则将安装最新版本的SDK和工具。使用正确的格式,可以通过执行sdkmanage --list 找出;一些包需要指定版本,另一些则不需要。 |
sdk_location |
"" |
设置为SDK位置的文件夹 |
user_configs |
[] |
user_configs 变量是一个对象数组,至少应定义每个用户的username 属性,该用户的主目录将安装Android SDK工具。如果系统属性设置为true,则SDK工具将不会安装到该用户的主目录。您可以通过sdk_location 变量控制安装位置。 |
变量示例
android_sdks
#💬 android_sdks变量的示例实现
android_sdks:
- platform-tools
- emulator
- build-tools;30.0.0
- platforms;android-30
- sources;android-30
- patcher;v4
sdk_location
#💬 sdk_location变量的示例实现
sdk_location: ~/Android/Sdk
user_configs
#💬 user_configs变量的示例实现
user_configs:
- username: myuser
- username: root
system: true
支持的操作系统
下表显示了我们在其上测试过该角色的操作系统。它是通过位于molecule/
文件夹中的Ansible Molecule测试自动生成的。我们有自动处理Windows、macOS、Ubuntu、Fedora、CentOS、Debian和Archlinux的测试的CI逻辑。如果您的操作系统未列出,但与我们测试的系统的某个变种(例如基于Debian的系统或基于RedHat的系统)相关,那么该角色仍可能有效。
操作系统系列 | 操作系统版本 | 状态 | 幂等性 | 测试日期 |
---|---|---|---|---|
Debian | 10 (Buster) | ✅ |
❌ |
2021年8月5日 |
Ubuntu | 18.04 (Bionic Beaver) | ✅ |
❌ |
2021年8月5日 |
Ubuntu | 20.04 (Focal Fossa) | ✅ |
❌ |
2021年8月5日 |
Ubuntu | 21.04 (Hirsute Hippo) | ✅ |
❌ |
2021年8月5日 |
幂等性是什么意思? 幂等性意味着如果您连续两次运行此角色,则第二次将不会对系统进行任何更改。
我们花了很多时间来完善我们的CI配置和构建工具。如果您有兴趣了解我们如何完善我们的流程,您可以查看我们的 Ansible通用文件 和 Ansible文档 存储库。有关更多详细信息,请参阅 CONTRIBUTING.md 指南。
依赖项
我们大多数角色依赖于 Ansible Galaxy 集合。我们的一些项目也依赖于其他在Ansible Galaxy上发布的角色和集合。在运行此角色之前,您需要通过运行以下命令来安装集合和角色依赖项以及Python要求:
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
或者,如果您对Ansible不熟悉并且不介意也安装开发依赖项,您可以简单地运行 bash .config/scripts/start.sh
。这是确保一切正常工作的简单方法。
Python
虽然在标准机器上运行此播放所需的唯一工具是Ansible(一个Python包),我们还包括一些为特定使用案例和开发所需的其他Python依赖项。下表详细说明了这些包:
包名 | 描述 | 是否必需 |
---|---|---|
ansible | 一种可以远程配置计算机的配置管理系统 | ✔️ |
docker | 允许使用Ansible提供Docker容器的能力 | ✔️ |
python-vagrant | 提供Vagrant虚拟机所需的 | ✔️ |
pywinrm | 用于为使用WinRM的Windows机器提供配置 | ✔️ |
ansible-lint | Ansible文件的静态分析工具 | |
ansibler | 自定义工具,用于生成高级文档(例如,生成兼容性图表和其他图表) | |
black | Python文件自动格式化工具 | |
blocklint | 静态分析工具,用于防止使用某些单词进入代码库 | |
flake8 | 报告Python语法和风格错误的静态代码分析器 | |
mod-ansible-autodoc | 自定义的ansible-autodoc分支,允许我们根据角色的YAML文件中的注释自动生成文档 | |
molecule | Ansible的测试框架 | |
molecule-docker | 用于提供Docker容器的Molecule插件 | |
molecule-vagrant | 用于提供Vagrant虚拟机的Molecule插件 | |
pre-commit-hooks | 一系列有用的静态分析工具 | |
proselint | 用于生成英语语言改善的静态分析工具(用于改进文档) | |
yamllint | 确保YAML文件的语法和风格正确的静态分析工具 |
Galaxy 角色
虽然我们大多数角色没有依赖项,但在某些情况下,必须先安装另一个角色才能继续执行逻辑。在播放的开始,meta/main.yml
中列出的Ansible Galaxy角色依赖项将运行。这些依赖项被配置为在每个播放本中仅运行一次。如果您在播放本中包含多个具有公共依赖项的角色,则在第一次运行后将跳过依赖项安装。我们的一些角色也直接在任务文件中使用从头文件中调用有助于保持我们的 主要播放本 (Gas Station) 的简洁。
requirements.yml
文件包含该角色所需的Ansible Galaxy依赖项的完整列表(即,meta/main.yml
角色依赖项、辅助角色、集合等)。为了方便您,下面列出了角色依赖项的清单以及简短描述:
角色依赖项
Galaxy 集合
该角色依赖于多个Ansible Galaxy集合。下面列出集合及其源链接。
示例播放本
安装依赖项后,您只需将角色添加到您的主要播放本中。该角色处理become
行为,因此您可以简单地将角色添加到您的播放本中,而不必担心不应以root身份运行的命令:
- hosts: all
roles:
- professormanhattan.androidstudio
如果您将此角色整合到现有的播放本中,那么将pyproject.toml
和requirements.yml
中概述的要求复制到播放本根目录中的对应文件中可能是明智的,这样在将来使用时您只需担心安装一组要求。请注意,可以将pyproject.toml
中的依赖项移动到更传统的requirements.txt
中,如果这是您当前用于跟踪Python依赖项的方式。
现实世界示例
您可以在我们的主要播放本(即 Gas Station)中找到包含此角色的播放本的示例。该播放本是学习如何使用Ansible的优秀示例。它还包含了许多考虑周到的构建工具,先进的Ansible用户可以欣赏那些热衷于Ansible的人也可以从中受益,因为它让您的计算机(和网络)几乎变成了最终的开发环境。总之,它是一个开发人员应该了解的优秀项目!
贡献
欢迎贡献、问题和功能请求!随时查看 问题页面。如果您想要贡献,请查看 贡献指南。
赞助
亲爱的了不起的人,
我出于热爱而创建开源项目。尽管我有工作、住所,以及能吃的快餐,但如果能因为我投入大量时间和金钱而得到社区的认可,那将是相当不错的。请考虑赞助我!谁知道呢?也许我将能够辞掉工作,全职发布开源项目。
诚挚的,
Brian Zalewski
合作伙伴
以下是我们利用的一些服务,它们通过我们的特别链接提供特别激励:

许可证
Copyright © 2020-2021 Megabyte LLC。该项目采用MIT许可证。
Installs Android Studio and sets up Android SDKs on nearly any OS
ansible-galaxy install professormanhattan.androidstudio