Androidで互換性の高いアプリを書くための最悪ではない程度のプラクティスの実例だけど自分用の備忘録を兼ねて。
res
- anim
ウィンドウアニメーションなどの定義 - drawable
ビットマップは置かない。xml定義のシェイプやlevel-list型アニメーションなどを置く - drawable-xhdpi
ビットマップリソース。メニューアイコンと通知アイコンはクラシック(v10以下)用。
mdpi/ldpi/hdpiも用意していいけどここではxhdpiからの自動生成に任せる。hdpi機種は多いので綺麗なアイコン出したいならhdpiは別建てでもいい - drawable-xhdpi-v11
Honeycomb以降用のメニュー(アクションバー)アイコンと通知アイコン。もしdrawable-hdpiを作ったならdrawable-hdpi-v11も必ず作ること - layout
基本的なレイアウト。完全に共用するものはここ。スマホの標準縦長モードもここ。また、include/mergeで取り込むためのパーツものの - layout-land
横長モード。スマホの横長モード~眼鏡ケェスの標準横長モード。主にマルチペインのもの - layout-large
タブレット縦長モード。縦長時1ペインならあまりここに物を置く必要はないかもしれない - layout-large-land
タブレット横長モード。スマホ横長時1ペイン、タブレット横長時2ペインならここに定義。タブレットもそうだけどGoogle TVもここを読むはず。
Google TV時はタブを「横(左)に」持ってくることが推奨されるはずだけど今のところ詳細がないのでタブレットと共通でいいと思う。もしこの詳細が出てきたらGoogle TVだけlayout-notouch-large-landで分けるといいかもね - layout-large
タブレット縦長モード。縦長時1ペインならあまりここに物を置く必要はないかもしれない - values
- attr.xml
スタイル用属性リスト - color.xml
カラー定義 - string.xml
標準(英語版)文字列リソース。デフォルトはブロークンでもいいのでとりあえず英語にしておくこと - arrays.xml
英語・共通版配列リソース - styles.xml
標準(共通・スマホ版)スタイル - theme.xml
クラシック(2.3以前用)テーマ。Holoを使わないもの
- attr.xml
- values-ja
- string.xml
日本語版文字列リソース。lintのせいで標準にあって日本語版にない文字列があると怒られるので注意
- string.xml
- values-large
- styles.xml
タブレット用スタイル。文字サイズなど共通のものから変更を加えたい時はここ
- styles.xml
- values-v11
- styles.xml
Honeycomb以降(=Holo)用スタイル。Holo特化のものが必要ならここ。もしくはHoloから継承しなければならない場合もここ - theme.xml
Honeycomb以降(=Holo)用テーマ。Holoから継承
- styles.xml
- xml
- preferences.xml
設定画面の定義
- preferences.xml