Android勉強メモ[構成要素とResourceについて]


はじめに

どうやらAndroidの勉強をする必要が生じてしまったので、今日からAndroidについての勉強メモも残すことにしました。その際にこのサイトがとても勉強になったので、それの日本語版サマリ的な感じでまとめます。
今回はAndroidの構成要素とResourceについてです。

Android applicationの構成要素

Component 説明
Application Applicationが持つ最終的なcomponent
Activity ヴィジュアルに関係する。viewsfragmentを用いてUI画面を作成する
Service UIを提供しない形でタスクを走らせるための要素。他のアプリとのコミュニケーションや、ユーザー通知を送ったりする
Broadcast receiver システムメッセージやインテントをlistenするために登録する要素。あるイベントが発生すると、レシーバーがAndroidシステムからの通知を受け取る
Content provider インターフェースの構成やアプリケーションデータを定義する。SQLiteが頻繁にプロバイダーと連結される

Layout filesについて

AndroidのActivityはViewFragmentを定義する。LayoutにはXMLファイルを用いて記述されており、res/layoutのディレクトリ下にある。またLayoutはViewGroups->Views->widgetという関係が存在する。

定義したLayoutはsetContentView()というメソッドを用いてActivityから呼び出される。Layoutで一番メインとなる子要素としてandroid:layout_widthandroid:layout_heightが存在する。各要素に割り当てる値には以下の2つが代表される。

  • match_parent -> parentの中で割り当てられる最大サイズ
  • wrap_content -> widgetが適切にレンダリングされる最小サイズ

また、Layoutには以下のような種類が代表される。

  • ConstraintLayout -> フラットなViewの階層になる
  • FrameLayout -> 子要素がトップに描画されていく
  • LinearLayout -> 子要素が水平or垂直に並んで配置される
  • RelativeLayout -> widgetがお互いに相対的な位置関係になる
  • GridLayout -> グリッドテーブルを用いたViewの編成をする
  • ScrolView -> 子要素が多すぎる場合でもスクロールを用いてスクリーンに表示できる

Resource filesについて

AndroidにはLayout以外にもリソースに関する設定ファイルが存在する。これらはresource qualifiersと呼ばれている。以下に種類を示す。

  • drawables -> 画像・ベクター・XMLファイルが存在
  • values -> 文字・色・大きさetcをそれぞれ独立したXMLファイルで設定
  • layout -> 省略
  • animator -> animation APIをXMLで定義する
  • raw -> 任意のrawファイル(InputStream objectを介してアクセスできる)
  • menu -> ツールバーのアクションを定義

それぞれのリソースファイルにはAndroidのビルドシステムによってIDが割り当てられる。生成されたIDはR.javaのファイルに含まれている。もし新しいリソースファイルを追加した場合もAndroidのシステムが自動的に新しいR.javaファイルを生成してくれる。IDはandroid:idを用いて一意の値が付与される。Android SDKではIDはキャメルケース(e.g., buttonRefresh)で定義するのがグッドプラクティス。