ตอนที่ 1 เริ่มต้นสร้างแอนดรอยด์แอพพลิเคชั่น

      หลังจากได้ติดตั้งโปรแกรม ADT เรียบร้อยแล้ว เรามาลองสร้าง แอพพลิเคชั่นง่ายๆ กันก่อน เป็นการทดสอบการทำงานของโปรแกรม Eclipse ซึ่งใช้ในการพัฒนาแอพพลิเคชั่นอีกด้วย โดยมีขั้นตอนดังนี้ครับ

1. เปิดโปรแกรม Eclipse ขึ้นมา

android3

2. เลือกเมนู  File > New > Android Application Project  ดังรูป

android_obj1

3. จะปรากฏไดอะล็อกบ๊อกซ์ New Android Project ขึ้นมา  โดยกำหนดข้อมูลและรายละเอียดต่อไปนี้

  • Application Name เป็นชื่อแอพพลิเคชั่นที่เราสร้างขึ้น โดยพยัญชนะตัวแรกต้องเป็นตัวอักษรพิมพ์ใหญ่ ซึ่งชื่อนี้จะปรากฏในอุปกรณ์ Android ในที่นี้ คือ FirstApp
  • Project Name เป็นชื่อของโปรเจคที่เราสร้าง โดยโปรแกรมจะสร้างไดเรกทอรี่ชื่อนี้เป็นที่เก็บไฟล์ต่างๆ ของโปรเจค ซึ่งควรเป็นชื่อเดียวกับ Application Nam
  • package Name เป็นชื่อแพ็คเกจ ของโปรเจ็ค ควรใช้โครงสร้างตามที่โปรแกรมแนะนำ
  • Minimum Required SDK เป็นการระบุเวอร์ชั่นต่ำสุดของระบบปฏิบัติการแอนดรอยด์ ที่สามารถทำงานได้
  • Target SDK เป็นการกำหนดให้โปรเจคของเราสร้างด้วย Android SDK ในเวอร์ชั่นใด ทั้งนี้ให้ยึดถืออุปกรณ์สมาร์ทโฟน หรือ แท็บเล็ต ในช่วงนั้นๆ
  • Compile with  เป็นการเลือกเวอร์ชั่น  Android SDK ที่ใช้ในการคอมไพล์โปรแจค  ควรเป็นเวอร์ชั่นเดียวกับ Target SDK
  • Theme รูปแบบTheme ของโปรเจค

เมื่อกรอกข้อมูลครบทุกรายการแล้ว ให้คลิก Next

android_obj3

4. เลือกรูปภาพที่จะนำมาทำ ไอคอนของแอพพลิเคชั่นที่เราสร้าง ซึ่งไอคอนนี้จะปรากฏบนหน้าจอของอุปกรณ์ Android เมื่อเลือกเรียบร้อยแล้ว ให้คลิก Next

android_obj5

5. เลือกรูปแบบของ Activity  สำหรับโปรเจคนี้ให้เลือก Blank Activity คลิก Next

android_obj6

6. ตั้งชื่อ Activity และ Layout ที่ต้องการ เริ่มต้นใช้ตามที่โปรแกรมกำหนดไปก่อน ดังนีั

  • Activity Name  เป็นชื่อไฟล์ของ Activity ( *.java)  ในที่นี้ใช้ MainActivity
  • Layout Name  เป็นชื่อไฟล์ของ Layout (*.xml) ในที่นี้ใช้  activity_main

เมื่อกรอกรายละเอียดครบแล้วให้คลิก Finish

android_obj7

7. จะปรากฏหน้าหลักของโปรเจค แบ่งเป็น 2 ส่วน คือ ด้านซ้ายเอาไว้ Browse ไฟล์ที่เกี่ยวข้องในโปรเจค เหมือนกับ Windows Explorer   และด้านขวาเป็น Workspace ใช้แสดงรายละเอียดโค้ดของไฟล์ต่างๆ  เขียนและแก้ไขโค้ดของไฟล์และLayout ที่เปิดจากด้านซ้าย

screenshoteproj

8. โปรแกรม จะสร้างไดเรกทอรี่ หรือ โฟลเดอร์ และไฟล์ที่จำเป็น

  • src เก็บไฟล์ class ที่กำหนดไว้ ในรูปแบบไฟล์ Java
  • assets เก็บไฟล์ต่างๆ ที่นำเข้ามาใช้ในโปรเจค เช่น ภาพและแบบอักษร
  • res เก็บไฟล์ทรัพยากรต่างๆ ที่กำหนดไว้ในรูปแบบไฟล์  XML
  • ไฟล์กำหนดค่าต่างๆของโปรเจค

directoryEclipse

10. รายละเอียดไฟล์สำคัญๆ ที่โปรแกรมสร้างไว้ในครั้งแรกที่สร้างโปรเจค

  • MainActivity.java (src/com.kruchian.firstapp/MainActivity.java)
package com.kruchian.firstapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
  •  R.java (gen/com.kruchian.firstapp/R.java)
package com.kruchian.firstapp;

public final class R {
    public static final class attr {
    }
    public static final class dimen {
        /**  Default screen margins, per the Android Design guidelines. 

         Customize dimensions originally defined in res/values/dimens.xml (such as
         screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.

         */
        public static final int activity_horizontal_margin=0x7f040000;
        public static final int activity_vertical_margin=0x7f040001;
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class id {
        public static final int action_settings=0x7f080000;
    }
    public static final class layout {
        public static final int activity_main=0x7f030000;
    }
    public static final class menu {
        public static final int main=0x7f070000;
    }
    public static final class string {
        public static final int action_settings=0x7f050001;
        public static final int app_name=0x7f050000;
        public static final int hello_world=0x7f050002;
    }
    public static final class style {
        /** 
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.

            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.

        Base application theme for API 11+. This theme completely replaces
        AppBaseTheme from res/values/styles.xml on API 11+ devices.

 API 11 theme customizations can go here. 

        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.

 API 14 theme customizations can go here. 
         */
        public static final int AppBaseTheme=0x7f060000;
        /**  Application theme. 
 All customizations that are NOT specific to a particular API-level can go here. 
         */
        public static final int AppTheme=0x7f060001;
    }
}
  • activity_main.xml (res/layout/activity_main.xml)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>
  •   strings.xml (res/values/strings.xml)
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">FirstApp</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>
  •  AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kruchian.firstapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.kruchian.firstapp.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>