Androidアプリの複数端末対応を考える

2010年5月6日(木)
有山 圭二(ありやま けいじ)

リソース・マネージャを知る

Androidアプリケーション開発では、処理を担当する「コード」と、文字列や画像などの「リソース」を分離することが推奨されています。

Androidプロジェクトの作成時に自動生成されるsrcフォルダ以下が「コード」。resフォルダ以下が「リソース」を管理するフォルダです。「リソース」として管理される情報は、文字列や画像、音声、動画などがあります。

開発者が、res以下の適切なフォルダに、画像や音声そのほかのファイルを配置すると、開発環境は自動的に、それぞれのリソースに対して、ユニーク(一意)な「リソースID」を割り当てます。

そして、アプリケーションから、リソースに登録した画像を表示する、または音声を再生する際には、コード上から表示したい/再生したいリソースのリソースIDを指示すると、「リソース・マネージャ」が、指定されたリソースIDを元に目的のリソースを特定して、コード側に返します。

このようにして、「リソース・マネージャ」は、コードとリソースを結びつけているのです。

この「リソース・マネージャ」には、もう1つ大きな役割があります。リソースを特定する時に、端末の設定や状態に応じて、指定されたリソースIDに対応した複数のリソースの中から、最適なものを自動的に選択するのです。

先ほど、「リソースIDは一意だ」と述べたのに、複数のリソースの中から選択というと、矛盾していると思われるかも知れません。

確かに、リソースIDは全体に対して一意です。しかし、1つのリソースIDに対して複数のリソースが存在するのです。

リソースには、追加の際にそれぞれ「修飾子」を指定できます。同じリソースでも、これらの修飾子の指定が違えば、重複して登録ができます。

そして、リソース・マネージャは、これらの修飾子をキーに、どのリソースを選択するかを決定します。

指定できる修飾子は、例えば画面の解像度、ディスプレイの大きさ、キーボードの有無などさまざまなものがあり、1つ、または複数を組み合わせて指定することができます。

これら修飾子の指定をきめ細かくすることが、リソース・マネージャを使いこなす、ひいては複数端末に対応していくために必要不可欠なのです。

まとめ

いかがだったでしょうか。ここまで駆け足で見てきましたが、次回以降はいよいよ、「表示」、「操作」、「機能」の違いを乗り越えて、複数端末に対応できるように、サンプル・アプリの開発を進めていきます。

補足になりますが、Androidで互換性の問題が顕在化するのは、今回が初めてではありません。米国に目を向けてみれば、「HTC Magic」(HT-03Aと同等の機種)以前に、「HTC G1」という端末が販売されています。

G1は、世界初のAndroid端末であり、ハードウエアのフル・キーボードを備えています。G1しか無かったころには、当時の開発者、特にゲーム開発者は、ハードウエア・キーボードを使って操作するゲームを数多くリリースしていました。

しかし、後から登場したHT-03A(HTC Magic)には、ハードウエア・キーボードは搭載されていません。そのため、HT-03Aの発売直後は、HT-03Aで操作ができないゲームが続出するという事態が起こったのです。

その後、「Motorola Droid」や「Nexus One」といったさまざまなAndroid端末が発売され、海外では、複数の端末の存在が当たり前になっています。しかし、冒頭で述べたとおり、2台目の端末が発売されるのは、日本ではこれが初めてのことです。

ハードウエア・キーボードの有無のような極端な違いはないにせよ、HT-03AとXperiaにも、明白な違いがあります。また、KDDIやソフトバンクモバイルが発売する予定のAndroid端末も、それぞれが異なる特徴を持っています。

今後、さらに端末が増えた時に、複数端末の対応で混乱が起こらないように、私たち開発者は、あらかじめ準備しておく必要があると私は考えています。

本連載が現在、そして将来にわたって、開発者の皆さんのお力になれれば幸いです。

著者
有山 圭二(ありやま けいじ)

有限会社シーリス代表。日本Androidの会 運営委員。手間暇かけてくだらないことをするのが大好きで、2007年11月にAndroidの発表を知り「All applications are created equal」の言葉に惹かれて参入。代表的な開発アプリは「MoreLocale 2」、「近藤昭雄シリーズ(憂鬱・退屈)」、「薬検索」など。twitter ID: keiji_ariyama

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています