Androidのデキる方と一日Androidハッカソンやってみたのでまとめ
(ちな俺iOSしかできない勢なため、ほぼ教えて貰ってました_| ̄|○)
プロジェクトの構成
- src
- gen
- bin
- libs
- assets
- res
- drawble-〜dpi
- layout
- menu
- values
- drawble-〜dpi
- AndroidManifest.xml
src
アプリのソースファイルはこの中で管理する
ここで実装したActivityはAndroidManifest.xmlに必ず記載が必要(別途説明)
gen & bin
省略
assets
アプリ側で好き勝手にいじりたいリソースはここになるって認識
ちゃんとリソースごとに管理用の処理を実装してあげないといけない
res
静的リソースファイル群、ここに突っ込んだリソースはリソースIDが降られ、
R.から始まる書き方でアクセスできるようになる
res/drawble-〜dpi
複数解像度対応時に同じ画像名で突っ込んで画像を呼び出せば、
自動で振り分けてくれる、便利!
(iOS側の解像度対応@2xェ・・・・)
res/layout
ここにsrcで実装したActivityクラスと対になるレイアウトファイル用意する
例えばMainActivityクラスだったらactivity_main.xmlとなる
(特に命名規則は無くactivity_(アクティビティクラスのprefix)が一般的というだけ)
res/menu
ここもlayoutと同じでメニュー用のレイアウトファイルを用意する
res/values
上のどれにも当てはまらない静的なリソースはここに突っ込んでおけば問題なさそう
AndroidManifest.xml
Androidのアプリ定義ファイル
アプリで表示する画面は全てここに書く
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="パッケージ名"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".FirstActivity"
android:label="@string/title_activity_first" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SecondActivity"
android:label="@string/title_activity_second" >
</activity>
<activity
android:name=".ThirdActivity"
android:label="@string/title_activity_third" >
</activity>
</application>
</manifest>
まず起動時に表示する画面に関しては以下のようにして記載
要はintent-filterタグの中身を起動したいactivityタグの中で書けばいい
<activity
android:name=".FirstActivity"
android:label="@string/title_activity_first" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
後は画面追加の度にペロっと以下のように追加していく
<activity
android:name=".SecondActivity"
android:label="@string/title_activity_second" >
</activity>
<activity
android:name=".ThirdActivity"
android:label="@string/title_activity_third" >
</activity>
感想
AndroidはiOSと違ってリソースを管理する仕組みが親切すぎると思いました。
大体iOSで同じことをしようとする場合はリソース専用のクラスを切ったりしないと
カオスなことになりやすいのでその辺りはすごく羨ましすぎる・・・
ソースに絡む部分はまた後日投稿しようと思います。