-
Notifications
You must be signed in to change notification settings - Fork 0
1.0.Android app basic knowledge
takafumi nanao edited this page Feb 4, 2018
·
1 revision
- gradle関連 : この後説明します
./build.gradle
./app/build.gradle
./gradle/wrapper/*
./gradle.properties
./gradlew
./gradlew.bat
./settings.gradle- AndroidManifest.xml : この後説明します
- プログラムソースコード
- test用ソースコード
./app/src/test/javaまたはapp/src/androidTest/java以下に出力されているファイル - アプリ用ソースコード
app/src/main/java/以下に出力されているファイル
- test用ソースコード
- リソースファイル
app/src/main/res/以下に出力されているファイル
androidで採用されているbuildシステム
-
build.gradle
buildスクリプト、およびそのパラメータ等が設定されている
プロジェクト直下にある全体のためのbuild.gradleと各モジュール(app/build.gradleなど)のbuild.gradleがある -
gradle/wrapper/gradle-wrapper.jargradle/wrapper/gradle-wrapper.propertiesgradlewgradlew.bat
gradle wrapperのためのファイルこれらのファイルによってPCにgradleをインストールせずにgradleを利用することが出来る また、利用するgradleのバージョンの指定もgradle-wrapper.propertiesで行うため、これらのファイルは、すべてバージョン管理システムに格納するべきです。 -
gradle.properties
build時のgradleの起動オプションやbuild時の変数などを定義する -
settings.gradle
gradleで利用するプロジェクトを設定する
通常はinclude ':app'とだけ記述されているが、ライブラリモジュールを作成した場合などにinclude ':app',':myLib'などのようになる
- プロジェクトトップのbuild.gradle
プロジェクト全体の設定(buildに使うandroid用のプラグインの設定等) - appの下のbuild.gradle
作成されるアプリの設定(バージョン名等)
依存してるライブラリの一覧
その他アプリの設定
例えば
// androidのブロックでAndroid用の設定をする
android {
compileSdkVersion 27 // compileに使われるandroidSDKのバージョン targetSdkVersionと揃える
defaultConfig {
applicationId "tokyo.punchdrunker.hocho" // <- アプリのID Play Store、端末上で一意になる識別子
minSdkVersion 21 // <- サポートする最小のandroidバージョン
targetSdkVersion 27 // <- ターゲットのandroidバージョン このバージョンによってRuntimePermissionなど一部挙動が変わる(基本的に最新に合わせたほうが良い)
buildToolsVersion versions.buildTools // <- buildに利用するツール郡の設定(Android plugin for Gradle 3.0.0以降なら設定しない場合プラグインに合わせたバージョンが自動で選択される)
versionCode 1 // <- アプリのバージョンコード 内部的に使われるもので基本的にユーザーの目にするものではない アプリのインストール時やGoogle Play Consoleでのリリースで使われる
versionName "1.0" // <- ユーザーが目にするバージョン名
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" // <- androidTestに使われるRunner
}
}-
マニフェストの役割
androidがアプリのコードを実行する前に必要な情報を記述し、androidに伝える -
マニフェストから何がわかるか?
- アプリのコンポーネント(アプリを構成するActivity、Service、Broadcast Receiver、Contents Provider)
- アプリがAPIの保護された部分へのアクセス、 他のアプリとやり取りする際に必要となるパーミッション
- アプリがサポートしているAndroidのバージョン
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="tokyo.punchdrunker.hocho">
<!-- アプリが利用するパーミッションの定義 この場合インターネットアクセスをするパーミッションを設定している -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- アプリで使用するハードウェアまたはソフトウェアの機能を定義 この場合カメラがない端末ではGoogle Playからダウンロードできない -->
<uses-feature android:name="android.hardware.camera" />
<!-- アプリケーション自体の属性を設定する ここではApplicationクラス、アプリアイコン、アプリ名、アプリ全体のスタイルについて設定している -->
<application
android:name=".HochoApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<!-- 各コンポーネントの記述については各コンポーネントの章で説明 -->
</application>
</manifest>-
プロジェクトの概要
Androidのプロジェクトの構造や設定ファイルについて知るための資料 - ビルドの設定
-
Gradle Tips and Recipes
gradleでbuildをcustomするためのtipsとサンプル -
システム パーミッション
androidのパーミッションについて詳しく知るための資料
RuntimePermission対象になるパーミッションとそうでないパーミッションの違いなどを知ることが出来る -
アプリ マニフェスト
AndroidManifestについての詳細を知るための資料 -
Android Studio Release Notes
開発環境であるAndroidStudioの機能追加などの情報を知るための資料 -
Gradle User Guide
gradleのドキュメント -
Android Plugin DSL Reference
gradleのAndroidPluginの書式を知るための資料