プログラマーは公式ドキュメントを読まないといけない!とよく言われますが、
硬い文章に加えて、英語という壁もあり、なかなか捗らないものです。
なので、自分のためにもAndroid開発者が最初に読むであろうガイドドキュメントのあらまし、重要だと思うポイント、個人的な感想をまとめていきます。
(何段階かに分けます)
(公式ガイド)https://developer.android.com/guide/
項目一覧
1.概要
2.初めてのアプリを作成する
・概要
・Android プロジェクトの作成
・アプリを実行する
・簡単なユーザー インターフェースの作成
・別の Activity を開始する
3.アプリケーションの基礎
1.概要
Androidとは
・モバイル端末でアプリやゲームをJavaでビルドできる環境(アプリケーション フレームワーク)を提供する
・Android APIも使って色んな機能が実装できる
・1つの画面(アクティビティ)は色んな画面から自由に結びつく
・カメラとかハードウェア特有の機能も使える
・端末の種類がいっぱいあるから画面サイズとか気を付ける
という基本的な説明。
2.初めてのアプリの作成
〇概要
Android Studioで作成する。(https://developer.android.com/studio/)
だけど、インストール方法やjava、SDKの設定等は書いていないので、GoogleやQiitaとかで[AndroidStudio インストール]などで検索してAndroid Studioが使えるようにする必要あり。
〇Android プロジェクトの作成
とりあえず、プロジェクトの作成方法とAndroid特有のファイルの説明がある。
・app > java > com.example.myfirstapp > MainActivity.java
アプリをビルドして実行すると、システムによりこの Activity のインスタンスが起動され、そのレイアウトが読み込まれる
・app > res > layout > activity_main.xml
activity の UI のレイアウト
・app > manifests > AndroidManifest.xml
アプリの基本的な特徴一覧
・Gradle Scripts > build.gradle
build(ソースを実行形式にする)用のgradle(設定ファイル)
Cで言うMakefileみたいなもの
2 つあり、1 つはプロジェクト用でもう 1 つは「アプリ」モジュール用
モジュールの build.gradle ファイルにコンパイル、ビルド方法が書いてある。
〇Android アプリを実行する
実際の端末で実行とエミュレーターで実行する方法がある。
・実際の端末で実行
メリット
- 実際に自分の端末でどう見えて、どう動くのか確認できる
- 操作しやすい
[デメリット]
- USBのケーブルが必要
- 転送に少し時間がかかる
- 開発者モードにして、USBデバックを許可する必要あり
- 携帯の設定のシステムのビルド番号を7回タップして、開発者オプションに入り、USBデバックを許可する
・エミュレータで実行
[メリット]
- 高スペックマシンだと反映がサクサク
[デメリット]
- システムイメージをダウンロードする必要あり
- IntelのCPU出ないと高速エミュレーターが動かないので、AMDとかだとかなり厳しい
〇簡単なユーザー インターフェースの作成
はっきり言って、すごい分かりずらい説明。
作りたいレイアウトをネットに落ちているサンプルを見て、記録して、覚える
を繰り返していくと、アドリブでどんどん画面が作れるようになると思う。
それとstrings.xmlという文字列を保存するファイルもあるという内容。
〇別の Activity を開始する
activity(1 画面のこと)から、他のactivity(他の画面)に移動する方法が書いてある。
- マニフェストに新しいactivity情報を追加する
- 新しいactivityを作成する
- 元のacitivityにIntentを作成する
- 情報を送りたければputExtra()を追加する
〇Up ナビゲーションを追加する
アプリバーの Up ボタンをタップして親アクティビティに戻れるようにできる。
詳細は他の記事を見たほうが良い。
3.アプリケーションの基礎
AndroidアプリはJavaをコンパイルしてできる .apkという接尾語のファイル。
Linux上で動いて、権限等厳しくセキュリティが高い。
アプリには4つのコンポーネント(構成要素)がある。
- アクティビティ
- 1つの画面のこと
- サービス
- 長期間の操作や、バックグラウンドで動作する
- コンテンツ プロバイダ
- 共有されているアプリデータを管理する データベースとか
- ブロードキャスト レシーバー
- 画面がオフになった、バッテリ残量が低い、写真が撮影されたなどを察知してアプリを動かす
一つ一つ掘り下げて書くと大変なので割愛。
・コンポーネントをアクティベート(利用許可を出す)する
Androidは他のアプリのコンポーネントを直接アクティベートすることができるという話
アクティビティ、サービス、ブロードキャスト レシーバーはインテント(非同期メッセージ)によってアクティベートされる。
アプリが画面に表示されていなくても、裏で起動していることもある。
・マニフェスト ファイル
アプリの根本の設定を書き込むファイル
- パーミッションの設定
- APIレベルの設定
- カメラなどの機器を利用する宣言
- ライブラリの利用宣言(Googleマップライブラリ)
- コンポーネントの宣言方法
- <activity> アクティビティ用の要素
- <service> サービス用の要素
- <receiver> ブロードキャスト レシーバー用の要素
- <provider> コンテンツ プロバイダ用の要素
・アプリのリソース
画像とかを別フォルダにおいて、R.drawabl.logといったように参照できる。
端末の向きやサイズによってリソースを使い分ける詳細は
https://developer.android.com/guide/components/fundamentals