No Activity な Android(Kotlin)プロジェクト
2020/8/26
はじめに
Android プロジェクトを作成する際には、自動生成されたファイルをたいして理解せずに使っていたのですが、ちゃんと理解しようと思い、最小構成であろう Project Template No Activity
を深掘りします。
調査内容
プロジェクト作成条件
Android Studio で Project Template は No Activity
、Language は Kotlin
、Minimum SDK は API 23: Android 6.0(Marshmallow)
を選択してプロジェクトを作成しました。
プロジェクトファイル構造
.
├── app
│ ├── build.gradle
│ ├── libs
│ ├── proguard-rules.pro
│ └── src
│ ├── androidTest
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── myapplication
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myapplication
│ │ └── res
│ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── example
│ └── myapplication
│ └── ExampleUnitTest.kt
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle
各ファイル概要
app/build.gradle
モジュールレベルビルドファイルです。該当モジュールに対するビルド設定を定義します。
app/proguard-rules.pro
ProGuard ルールファイルです。 今回は特に設定がありませんでした。
app/src/androidTest/java/com/example/myapplication/ExampleInstrumentedTest.kt
インストゥルメント化単体テスト例です。
app/src/main/AndroidManifest.xml
マニフェストファイルです。
app/src/main/res/drawable*
今回はアダプティブアイコンで利用するベクター画像が格納されていました。
app/src/main/res/mipmap-*
今回はアイコン素材(アイコン画像とアダプティブアイコン)が格納されていました。
app/src/main/res/values/colors.xml
カラーリソースファイルです。
app/src/main/res/values/strings.xml
文字列リソースファイルです。
app/src/main/res/values/styles.xml
スタイルリソースファイルです。
今回は Theme.AppCompat.Light.DarkActionBar
を継承していました。
app/src/test/java/com/example/myapplication/ExampleUnitTest.kt
単体テスト例です。
build.gradle
トップレベルビルドファイルです。Gradle 自身の設定やプロジェクト内のすべてのモジュールに適用されるビルド設定を定義します。
gradle/wrapper/
後述する Gradle ラッパーコマンドラインツール関連ファイルです。
gradle.properties
プロジェクトレベルの設定を指定します。 今回は Gradle デーモン実行引数や、AndroidX 設定、Kotlin のコードスタイル等が設定されていました。
gradlew / gradlew.bat
Gradle ラッパーコマンドラインツールです。Android Studio ではなく、コマンドラインからビルドする際に利用します。
local.properties
ローカル環境プロパティを設定します。直接修正不可で、リポジトリ管理してはいけません。 今回は SDK パスが設定されていました。
settings.gradle
ここに記述した内容によって、アプリをビルドする際に含める必要のあるモジュールを識別します。 今回は app モジュールを含むように設定されていました。