professormanhattan.androidstudio
以下のテキストを日本語に翻訳しました。シンプルでわかりやすい表現を心がけました。
Android Studio - Android開発のためのIDE
作成者 Megabyte Labs
Android Studioをインストールし、ほとんどのOSにAndroid SDKを設定するためのAnsibleロール
目次
概要
このリポジトリは、ほとんどのOSにAndroid Studioをインストールし、Android SDKを設定するためのAnsibleロールのホームです。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およびツールのリストをユーザーのホームフォルダーにインストールします
adb
などのAndroid SDKツールがPATH
に存在することを保証します- Linuxシステムでは
~/.bashrc
にSDKツールをPATH
に含めるよう更新します - Linuxシステムでは
~/.zshrc
にSDKツールをPATH
に含めるよう更新します - Windowsシステムでは
PATH
を更新します
クイックスタート
Ansibleを扱うことなくAndroid Studioをインストールしたいですか? オペレーティングシステムに応じて、以下のコマンドを実行してください:
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およびツールのバージョンがインストールされます。正しい形式は、CLIツールがインストールされた後に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
対応OS
以下の表は、このロールがテストされたオペレーティングシステムを示しています。molecule/
フォルダーにあるAnsible Moleculeテストを用いて自動生成されています。Windows、macOS、Ubuntu、Fedora、CentOS、Debian、Archlinuxのテストが自動化されています。リストにないオペレーティングシステムが、テスト済みのシステムの変種(例:Debian系のシステムやRedHat系のシステム)である場合、このロールが使える可能性もあります。
OSファミリー | OSバージョン | ステータス | 冪等性 | テスト日 |
---|---|---|---|---|
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日 |
冪等性とは何ですか? 冪等性とは、このロールを連続して2回実行した場合、2回目はシステムに変更がないことを意味します。
私たちはCI設定やビルドツールを完成させるために多くの時間を費やしました。私たちのプロセスがどのように完成されたのか興味がある場合は、私たちのAnsible共通ファイルとAnsibleドキュメントのリポジトリが興味深いかもしれません。詳細については、CONTRIBUTING.mdガイドをご覧ください。
依存関係
私たちの多くのロールは、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 VMをプロビジョニングするために必要です | ✔️ |
pywinrm | WinRMを使用するWindowsマシンをプロビジョニングするために必要です | ✔️ |
ansible-lint | Ansibleファイルのためのリンティングツール | |
ansibler | 詳細なドキュメントを生成するために使用するカスタムツール(例:互換性チャートや他のチャートを生成) | |
black | プロジェクトがPythonテストスクリプトを使用する場合に備えて含められるPythonファイル自動フォーマッター | |
blocklint | コードベースへの特定の言葉の侵入を防ぐためのリンティングツール | |
flake8 | Pythonの構文およびスタイルエラーを報告するPythonリンター | |
mod-ansible-autodoc | ansible-autodocのカスタムフォークで、ロールのYAMLファイル内のコメントに基づいて自動でドキュメントを生成します | |
molecule | Ansibleのためのテストフレームワーク | |
molecule-docker | DockerコンテナをプロビジョニングするためのMoleculeプラグイン | |
molecule-vagrant | Vagrant VMをプロビジョニングするためのMoleculeプラグイン | |
pre-commit-hooks | リンティングに便利なツールのスイート | |
proselint | ドキュメントの改善のために使用される英語のリンター | |
yamllint | YAMLファイルのリンティングツールで、適切な構文とスタイルが使用されていることを確認します |
Galaxyロール
ほとんどのロールに依存関係はありませんが、他のロールを先にインストールしないといけない場合があります。プレイの始めに、meta/main.yml
にリストされているAnsible Galaxyロールの依存関係が実行されます。これらの依存関係は、プレイブックごとに1回だけ実行されるように設定されています。プレイブックに、共通の依存関係を持つ複数のロールを含めている場合、依存関係のインストールは最初の実行時にのみ行われます。私たちのロールのいくつかは、Gas Stationのように、タスクファイルから直接ヘルパーロールを利用しているため、DRY(Don't Repeat Yourself)を実現しています。
requirements.yml
ファイルには、このロールに必要なAnsible Galaxy依存関係(すなわちmeta/main.yml
のロール依存関係、ヘルパーロール、コレクションなど)が含まれています。便利なことに、ローラー依存関係のリストと簡単な説明を以下に示します:
role_dependencies
Galaxyコレクション
このロールは複数のAnsible Galaxyコレクションに依存しています。コレクションとそのソースへのリンクは以下の通りです。
サンプルプレイブック
依存関係がインストールされると、メインプレイブックにこのロールを追加するだけで済みます。このロールはbecome
動作を管理するので、ルートとして実行すべきでないコマンドについて心配することなく、プレイブックにロールを追加できます:
- hosts: all
roles:
- professormanhattan.androidstudio
このロールを既存のプレイブックに組み込む場合、pyproject.toml
とrequirements.yml
で定義された要件を、プレイブックのルートに対応するファイルにコピーすると、将来の使い方中に1セットの要件をインストールするだけで済むので便利です。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