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コレクションに依存しています。コレクションとそのソースへのリンクは以下の通りです。

  • chocolatey.chocolatey Ansible Galaxyバッジ
  • community.general Ansible Galaxyバッジ
  • google.cloud Ansible Galaxyバッジ

サンプルプレイブック

依存関係がインストールされると、メインプレイブックにこのロールを追加するだけで済みます。このロールはbecome動作を管理するので、ルートとして実行すべきでないコマンドについて心配することなく、プレイブックにロールを追加できます:

- hosts: all
  roles:
    - professormanhattan.androidstudio

このロールを既存のプレイブックに組み込む場合、pyproject.tomlrequirements.ymlで定義された要件を、プレイブックのルートに対応するファイルにコピーすると、将来の使い方中に1セットの要件をインストールするだけで済むので便利です。pyproject.tomlの依存関係は、従来のrequirements.txtに移動できますので、Python依存関係を追跡するためにそれを使用できます。

実世界の例

このロールを組み込んだプレイブックの例は、私たちのメインプレイブック(通称Gas Station)で見ることができます。このプレイブックは、Ansibleの使い方を学ぶための素晴らしい例です。また、より高度なAnsibleユーザーが評価できる多くの考え抜かれたビルドツールを組み込んでいます。Ansibleにあまり関心がない人でも、自分のコンピュータとネットワークを究極の開発環境に変えることができるため、恩恵を受けることができます。要するに、これは開発者が知っておくべき素晴らしいプロジェクトです!

貢献

貢献、問題、機能リクエストは歓迎します!問題ページをチェックしてください。貢献したい場合は、貢献ガイドをご覧ください。

スポンサーシップ

素晴らしい人へ、

私は愛情からオープンソースプロジェクトを作成しています。仕事、住居、好きなだけファーストフードを食べられる余裕はありますが、私が多くの時間とお金をかけたことについてコミュニティから感謝されるのもいいなと思っています。ぜひ、私を支援してください!もしかしたら、仕事を辞めてオープンソースに専念できるかもしれません。

心から、

Brian Zalewski

Open Collectiveスポンサー GitHubスポンサー Patreon

提携

以下は、特別なリンクを通じてサービスにサインアップすることで特典を提供するサービスのリストです:

MailChimp DigitalOceanリファラルバッジ

ライセンス

Copyright © 2020-2021 Megabyte LLC。このプロジェクトはMITライセンスです。

インストール
ansible-galaxy install professormanhattan.androidstudio
ライセンス
other
ダウンロード
243
所有者
Free open-source developer tools for managing massive amounts of code