Help us understand the problem. What is going on with this article?

デキる方と一日Androidハッカソンやってみたのでまとめ

More than 5 years have passed since last update.

Androidのデキる方と一日Androidハッカソンやってみたのでまとめ
(ちな俺iOSしかできない勢なため、ほぼ教えて貰ってました_| ̄|○)

プロジェクトの構成

  • src
  • gen
  • bin
  • libs
  • assets
  • res
    • drawble-〜dpi
    • layout
    • menu
    • values
  • AndroidManifest.xml

src

アプリのソースファイルはこの中で管理する
ここで実装したActivityはAndroidManifest.xmlに必ず記載が必要(別途説明)

gen & bin

省略

assets

以下URLより学習
http://www.uni-labo.com/blog/2011/08/12/android-raw%E3%81%A8assets%E3%81%AE%E4%BD%BF%E3%81%84%E5%88%86%E3%81%91/

アプリ側で好き勝手にいじりたいリソースはここになるって認識
ちゃんとリソースごとに管理用の処理を実装してあげないといけない

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で同じことをしようとする場合はリソース専用のクラスを切ったりしないと
カオスなことになりやすいのでその辺りはすごく羨ましすぎる・・・
ソースに絡む部分はまた後日投稿しようと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした