この文書は本書「Androidアプリ開発逆引き大全500の極意」(秀和システム刊、ISBN978-4-7980-3734-9)で紹介しきれなかった内容をまとめたものです。
目次へ
アクティビティ「ApiDemos」のコード解説
清水美樹の本 トップページへ
サンプル「ApiDemos」の構造
Androidのあらゆる機能を簡単に一覧できる「ApiDemos」
リストをクリックして行って目的のアプリに達する
本書の随所で引用しているサンプル「APIDemos」は、Android仮想デバイスには最初からインストールされており、Androidのあらゆる機能をそれぞれ小さなアプリで見ることができます。
APIDemosを起動すると、アプリのカテゴリーのリストが現れます。リストを次々とクリックしてカテゴリーを絞って行き、アプリまで到達して、起動します。
図1 リストをクリックして行って目的のアプリに達する
「ApiDemos」の置き場所
「Andoid SDK」の出発点となるフォルダを見つける
本書では手短に紹介しましたが、各アプリのソースファイルの置き場所を見つける方法をここではもっと詳しく説明しましょう。
まず、Androidのバージョンごとのサンプルフォルダをみつけます。これは、アンドロイドSDKのインストールフォルダに入っています。
従来のSDKであれば、「Program Files」「Program Files (x86)」または、ユーザーフォルダの隠しフォルダ「AppData/Local」に「Android」というフォルダ
があります。このフォルダは「Android関係のデータ」が入る場所です。
図2 Android関係のデータはここに入る
その中にさらに「android-sdk」フォルダがあります。これが、Android SDKの出発点となるフォルダです。
図2 Android SDKの出発点
最近のSDKの配布形態「ADT Bundle」であれば、「adt-bundle-windows-x86_64.zip」のようなファイルをダウンロードして展開したフォルダを開けると、すぐ下に「sdk」フォルダがあります。
図3 「ADT Bundle」フォルダの中にある「sdk」フォルダ
「ApiDemos」のフォルダを見つける
サンプルフォルダは、「(android-)sdk」フォルダを開けるとすぐ下にあります。これを開けると、Androidのバージョンごとのフォルダに分かれています。SDKマネージャでダウンロードしたぶんだけのバージョンです。
図4 「sdk」フォルダのすぐ下にある「samples」フォルダ
図5 ダウンロードしただけのバージョンのサンプルが各フォルダに収められている
サンプルフォルダの中にはたくさんのプロジェクトがあります。その中に「ApiDemos」プロジェクトがあります。
図6 たくさんのプロジェクトの中から「ApiDemos」フォルダを選ぶ
Javaのソースファイルを見つける
Javaのソースファイルは、「ApiDemos」フォルダの中で、「src」フォルダ、さらにパッケージフォルダである「com」「example」「android」「api」と開いていきます。すると、「ApiDemos.java」など少しのソースファイルとともに、さらにパッケージフォルダがあります。
図7 プロジェクトの「src」フォルダにJavaのソースがある
図8 パッケージフォルダを次々と開いていく
図9 ソースファイルもあるが、まだパッケージフォルダがある
図9で「ApiDemos.java」は、図1のようなアプリのリストを作成するためのアクティビティです。
これとともに、「accessibility」「animation」などのフォルダがあり、その中に個々のアプリのソースファイルが入っています。中でも「app」にはもっとも細かく分かれたアプリのソースファイルが置かれています。開いてみると、たくさんのソースファイルが(ついに)見つかります。
図10 たくさんのソースファイルが見つかった
図11 本書第5章の最後で紹介した「AlertDialog」のソースもここにある
各アプリの読み方
Javaが呼ぶリソースファイルを見つける
以上、Javaのソースが見つかりました。一方、リソースファイルは図7で見た「src」フォルダと並ぶ位置の「res」フォルダに入っています。
ソースを読んで「R.layout.aaaa」と書いてあれば、「res/layout/aaaa.xml」ファイルを参照して、アプリのレイアウトのデザインを見ることができます。
レイアウトだけでなく「style」「dimen」「color」など様々なリソースが呼ばれていますので、ひとつひとつ確認してみてください。
strings.xmlは大変
リソースファイルは、「ApiDemos」プロジェクト内のアプリであればソースのパッケージの区別なく一つのファイルに書かれています。中でも、「strings.xml」は、この大量のアプリで用いる文字列が全て集まっていますから、長大な長さになっています。中にはコメントで分類が書いてありますので、それを助けにソースファイルと文字列リソースの関連を追いかけてください。
AndroidManifest.xmlはもっと大変
「AndroidManifest.xml」は、JavaやXMLの書き方を読んで習得するだけなら読まなくてもいいのかもしれませんが、自分で同じようなアプリを書いて実行してみようと思えば、読む必要があります。
そして、各アプリに対応するマニフェストの書き方を見つけるのは、もっと大変です。「ApiDemos」プロジェクトの全てのアクティビティ、サービスが登録されている上に、「uses-permission」など、別の場所にまとめて書いてあるものもあります。ひとつのアプリを動かすのに、該当する要素を自分でひとつひとつ拾いださなければなりません。
しかし、この大変さが、逆にAndroidManifest.xmlの書き方を知る訓練にもなると思いますので、頑張って追いかけてみてください。
同じような「リストからアプリを選んで起動する」コードを書くには
サンプル「ApiDemos」と同じように、「複数のアプリをリストから選んで起動する」ようなアプリを書くには、アクティビティ「ApiDemos」と同じものを書くことです。ただし、このソースは非常に複雑です。これは
この付録文書の中の「アクティビティ「ApiDemos」のコード解説
」に説明してありますので、ご覧ください。
目次へ
アクティビティ「ApiDemos」のコード解説
清水美樹の本 トップページへ