Android - WordPress.com

Download Report

Transcript Android - WordPress.com

โดย ทัศไนย เหมาะจิระกุล
Android คือแพลตฟอร์มใหม่สาหรับโทรศัพท์มอื ถือและอุปกรณ์
พกพา ซึ่งประกอบด้วยระบบปฏิบตั กิ าร ไลบรารี เฟรมเวิรค์ และ
ซอฟต์แวร์อื่นๆ ที่จาเป็ นในการพัฒนา มันเทียบเท่ากับ Windows Mobile,
Palm OS, Symbianโดยจับตลาดมือถือรุ่นใหม่ๆ ความสามารถสูงๆ (ซึ่ง
เกิดจากการกระตุน้ ตลาดของ iPhone)
ถึงจะเป็ นแพลตฟอร์มใหม่ซิงๆ แต่ Android ก็ใช้องค์ประกอบที่เป็ น
โอเพนซอร์สหลายอย่าง เช่น Linux Kernel, SSL, OpenGL, FreeType,
SQLite, WebKit และเขียนไลบรารี+เฟรมเวิรค์ ของตัวเองเพิ่มเติม ซึ่ง
ทัง้ หมดจะโอเพนซอร์ส (ใช้ Apache License)
ภาษาที่ใช้พฒ
ั นาเป็ นจาวา แต่เอามาเฉพาะภาษา (Java programming language)
ไม่ได้ใช้แพลตฟอร์มของซันเลย โดย Android มีรนั ไทม์ของตัวเองชือ่ ว่า Dalvik ซึ่งแทนที่
เราจะคอมไพล์เป็ นไบต์โค้ด ก็ใช้ฟอร์แมต Dalvik Executable (.dex) แทน การสร้าง GUI
ใช้เป็ นไฟล์ XML (สไตล์เดียวกับ XAML หรือ XUL)
ไลบรารีที่มีให้เรียกก็เป็ นของ Android ทัง้ หมด (import android.*) ไม่เกี่ยวกับ
J2ME เลย อารมณ์ว่ายืม syntax ของจาวามาใช้เฉยๆ แต่อย่างอื่นกูเกิลทาเองเกือบ
หมด
เครื่องมือพัฒนา Android ก็ไม่ใช่อื่นไกล มีปลัก๊ อินสาหรับ Eclipse ตามสมัยนิยม
(ชือ่ Android Development Tools - ADT) ใช้ Apache Ant สาหรับ build สาหรับส่วนของ
SDK นัน้ ก็ให้เครื่องมือมาครบ ทัง้ ตัวดีบกั ๊ สารพัดชนิด และ emulator ของ GPhone
สาหรับรันแอพพลิเคชันทดสอบ (เพราะตอนนีย้ งั ไม่มีตงั ซื้อเครื่องมาลองคับ)
ตอบง่ายๆ เลยว่า "กูเกิล" ครับ
ปั จจุบนั นีด้ ว้ ยอิทธิพลทัง้ ด้านเทคโนโลยีและการเงินของกูเกิล
นัน้ น่ากลัวมากอยู่แล้ว กูเกิลตัดสินใจใช้ยทุ ธศาสตร์การสร้างสภาวะ
แวดล้อม (ecosystem) ของ Gphone ขึน้ มาแทนการสร้างอุปกรณ์
Gphone ของตัวเอง ยกหน้าที่การพัฒนาฮาร์ดแวร์ให้กบั พันธมิตร
และหน้าที่ในการพัฒนาแอพพลิเคชันให้กบั นักพัฒนาภายนอก โดย
เปิ ด API ของตัวระบบอย่างเต็มที่ ตามโมเดลโอเพนซอร์ส
พันธมิตร 34 รายของกูเกิลรวมตัวกันชือ่
Open Handset Alliance
เรามาดูกนั ว่ากูเกิลชวนใครมาได้บา้ ง




HTC - ผูผ้ ลิตเครื่องให้ O2 และเจ้าของแบรนด์ Dopod
LG - พวกนีค้ งไม่ตอ้ งอธิบาย
Motorola
Samsung
จะเห็นว่ากูเกิลได้ผผู้ ลิตมือถือรายใหญ่มา คือ HTC , Motorola , Samsung และ
LG ขาดแต่ Nokia กับ Sony Ericsson เท่านัน้ ทัง้ สี่รายนีม้ ีสว่ นแบ่งตลาดปั จจุบันรวมกัน
34.8% ของตลาดโลก (ตัวเลข Q207 จาก Gartner) ก็พอสูก้ บั Nokia ซึ่งมีสว่ นแบ่ง
ตลาดอยู่ 36.9%
(Nokia เป็ นผูส้ นับสนุนหลักของแพลตฟอร์ม Symbian แต่ก็แอบไปทา Maemo
เป็ นทางเลือกไว้แล้ว ปั จจุบัน Maemo ถูกใช้ใน Internet Tablet อย่างพวก N770, N800
ซึ่งคาดว่าจะเป็ นฐานสาคัญของมือถือ Nokia ในอนาคต)









Audience - ผลิตชิปเสียง
Broadcom - ชิปเน็ตเวิรค์ ที่เราใช้กนั ทุกวันนี้
Intel - ไม่ตอ้ งอธิบาย
Marvell - ชิปเซ็ตสารพัดชนิด
Nvidia - ไม่ตอ้ งอธิบาย แต่เสริมนิดว่าเดีย๋ วนีม้ ือถือมีการ์ด 3D กันแล้วนะ
Qualcomm - ชิปเน็ตเวิรค์ สารพัดชนิด
SiRF - ทา GPS
Synaptics - clickwheel ใน iPod ไง (รวมถึง ZEN ด้วย)
Texas Instrument - เจ้าพ่อใหญ่ ไม่ตอ้ งอธิบายอีกเหมือนกัน
ตามรายชือ่ นีม้ พี ี่เบิ้มมากันหมด ดังนัน้ รับประกันได้ว่า Android จะไม่มี
ปั ญหาขาดแคลนไดรเวอร์อปุ กรณ์แน่นอน

China Mobile - ผูใ้ ห้บริการมือถือที่มีลกู ค้ามากที่สดุ ในโลก แค่จีนประเทศเดียวซัดไปแล้ว 350 ล้านเลขหมาย
 KDDI - เบอร์สองของญี่ปุ่น
 NTT DoCoMo - เบอร์หนึง
่ ของญี่ปุ่น
 Sprint Nextel - เบอร์สามของสหรัฐ
 T-Mobile - เบอร์หนึง่ ของเยอรมนีและหลายประเทศในยุโรป รวมถึงเป็ นเบอร์สี่ของสหรัฐ ถ้ารวมทัง้ โลกอยู่อนั ดับหก
 Telecom Italia - เบอร์หนึง
่ ของอิตาลี
 Telefónica - เบอร์สามของโลก มาจากสเปน ปั จจุบน
ั ซื้อ O2 ไปครอบครองเรียบร้อยแล้ว
รายใหญ่ที่ขาดไปก็มแี ค่ Vodafone, Orange, AT&T เท่านัน้ ที่นา่ สังเกตคือ
โอเปอเรเตอร์จากญี่ปุ่นมาถึงสองราย แถมเป็ นสองรายใหญ่ และรูปแบบการ
ผลิตเครื่องมือถือในญี่ปุ่นคือโอเปอเรเตอร์เป็ นคนกาหนดสเปกเครื่อง
นอกจากสามหมวดหลักแล้วก็ยงั มีบริษทั ซอฟต์แวร์อื่นๆ ที่พอคุน้ หน่อยก็เช่น
eBay และ Wind River ตรงนีค้ งไม่ตอ้ งลงรายละเอียดนะครับ
บริษทั พวกนีค้ งไม่ผลักดัน Android สุดตัวชนิดร่วมเป็ นร่วมตายกับกูเกิล หลาย
ค่ายอย่าง Motorola ก็มีแพลตฟอร์มลินกุ ซ์เป็ นของตัวเองเอาไว้กนั เหนียว แต่ดว้ ยชือ่ ชัน้
ของบริษทั ที่ยกมา ก็นา่ จะพอเป็ นปั จจัยหนุนให้เรามัน่ ใจว่า Android จะประสบ
ความสาเร็จได้บา้ ง ที่เหลือก็ขนึ้ กับฝี มือของกูเกิลแล้ว
นอกจากพันธมิตรระดับใหญ่แล้ว อีกสาเหตุหนึง่ ที่ผมคิดว่า Android ได้เปรียบก็
คือการเป็ นแพลตฟอร์มรุ่นใหม่ที่มารอรับการเปลี่ยนยุคอีกครัง้ ของมือถือ (หลัง
iPhone) ซึ่งมือถือรุ่นใหม่ๆ จะมีลกั ษณะเป็ น personal internet device มากขึน้ หน้าจอ
ใหญ่ขนึ้ มีระบบอินพุตดีขนึ้ ความจุมากขึน้ ฯลฯ ตรงนีจ้ ะเหนือกว่าแพลตฟอร์มเก่าๆ
อย่าง Symbian, Palm OS และ Windows Mobile (ที่พอฟั ดเหวี่ยงได้ก็คือ OS X ของ
iPhone ซึ่งผมก็คิดว่าแอปเปิ ลจะยังใช้ระบบทาเองคนเดียวต่อไปอีกนาน)
1.Java Runtime Engine : JRE
จะเป็ นชุดของโปรแกรมที่ไว้ใช้สาหรับรันจาวา
2. Eclipse IDE for Java Developers
เป็ น IDE ที่ใช้ในการเขียนโปรแกรม และต้องเป็ น version 3.3 ขึน้ ไป
3. Android SDK
คือ Software Developer Kit ของ Android เค้า
4. ADT Plug-in
เป็ น ปลัก๊ อินของ Android Developers Tools
หลังจากลง JRE และ Eclipse เรียบร้อยแล้ว ก็แตกไฟล์ Android SDK ตามปกติวางไว้ Folder ไหนก็ได้
แล้วแต่เราครับ จากนัน้ ก็ติดตัง้ ADT Plug-in โดยไฟล์ที่จะนามาใช้นนั้ ต้องเป็ นไฟล์ .ZIP หรือ .RAR นะครับ
โดยการ เปิ ด eclipse ไปที่ help > install new software แล้วก็เลือก Add > Archive แล้วก็ Browse ไปที่ Zip file
ของ Plugin มันก็จะขึน้ รายละเอียดขึน้ มาแล้วก็ Finish ได้เลยครับ
คราวนี้ Eclipse ก็จะมี Plugin ADT แล้ว ลองไปที่ Menu File > New > Other ดูก็จะเห็น Android โผล่
ขึน้ มาแล้วครับ
ก่อนที่จะดาเนินการอะไรต่อไป กรุณาเปลี่ยน Regional เป็ น "English" ก่อนนะครับ หลังจากไหนไปที่
Windows > Preferences > Android ตรง SDK Location ให้ Browse ไปที่ folder ของ SDK ที่เราได้แตก Zip ไว้
ครับ หลังจากนัน้ กด Apply หรือ OK ก็ได้
ขัน้ ตอนต่อไปเป็ นการ Set Android AVD Manager ซึ่งก็คือ Emulator ที่เราจะใช้ในการ Run Android App นะเองครับ
ไปที่ Windows > Android AVD Manager แล้ว Click จะปรากฏหน้า AVD Manager ขึน้ มา
ใส่คา่ ต่าง ๆ ดังนี้
- Name ใส่ชื่อ AVD
- Target ให้เลือก API ที่เราจะ Run ในที่นผี้ มเลือกเป็ น Google APIs
- SD Card เหมือนเป็ นการจาลอง Memory Card สามารถใส่ได้ตงั้ แต่ 128k - 64M อย่าลืมใส่ตวั k กับ M ต่อท้ายตัวเลขด้วยนะครับ
- Skin ก็เป็ นการเลือก Skin ของ Emulator ชอบแบบไหนก็เลือกแบบนัน้
หลังจากนัน้ กดปุ่ ม Create AVD ก็เป็ นการเสร็จสิ้นการ Setup AVD ครับ
หลังจากนีค้ ณ
ุ ก็พร้อมแล้วที่จะเขียน App เพื่อ Run ใน Emulator ได้แล้วครับ
เราจะลอง App ง่ายๆ บน Android กัน ด้วยโปรแกรมพื้นฐาน
สาหรับทุกการเขียนโปรแกรมอย่าง HelloAndroid
เปิ ดโปรแกรม Eclipse ขึน้ มา จากนัน้ เลือกที่ File > New > Project
ในหน้าต่าง New Project ภายใต้ Android เลือก Andrild project ดังรูป หลังจากนัน้ ให้กด Next
เมือ่ เสร็จจากขัน้ ตอนแรกแล้วจะได้ดงั รูปนี้ โดยกรอกข้อมูลต่อไปนี้
- Project Name: HelloAndroid
- Build Target : Android 1.6
- Application Name: Hello, Android
- Package Name: com.example.helloandroid
- Create Activity: HelloAndroid
- Min SDK Version: 4
จากนัน้ คลิกที่ Finish
คาอธิบายของแต่ละฟิ ลด์:
- Project Name : นีค้ ือชือ่ โปรเจกของ Eclipse - ชือ่ ของไดเรกทอรีที่จะมีไฟล์โปรเจกอยู่
- Build Target : ได้เลือกใช้ Android 1.6 platform ซึ่งหมายความว่าแอปพลิเคชันของเราจะถูก compiled กับ Android
1.6 platform library
- Application Name : นีเ้ ป็ นชือ่ สาหรับแอปพลิเคชันของเรา - ชือ่ ที่จะปรากฏในอุปกรณ์ Android
- Package name : นีค้ ือ namespace แพคเกจ (ตามกฎเดียวกันกับสาหรับแพคเกจในภาษา Java) ถ้าจะเปรียบเทียบให้
ง่ายๆก็เหมือนเป็ นโฟลเดอร์ที่ทาหน้าที่จดั เก็บ Class ต่างๆ ไว้ให้เป็ นหมวดหมู่
- Create Activity : นีค้ ือชือ่ สาหรับ class stub ที่จะสร้างโดยปลัก๊ อินนี้ ซึ่งจะเป็ น subclass ของ Android's Activity class
- Min SDK Version : ค่านีร้ ะบุ API ระดับตา่ สุดที่จาเป็ นสาหรับแอปพลิเคชันของเรา
ตอนนีโ้ ปรเจก Android ของเราพร้อมแล้ว เราจะมองเห็นใน Package Explorer อยู่ดา้ นซ้าย คลิกเปิ ดไฟล์
HelloAndroid.java (HlloAndroid > src > com.example.helloandroid) ซึ่งจะมีลกั ษณะเช่นนี้
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
หลังจากสร้างโปรเจกเรียบร้อยแล้ว ขึ้นตอนต่อมาคือการรันแอปพลิเคชัน
1. คลิกเลือกที่ Run > Run
2. เลือก "Android Application"
หลังจากนัน้ โปรแกรมจะทาการเปิ ด Emulator ของ Android SDK 1.6 ที่เราเคยสร้างไว้ขนึ้ มาอย่างอัตโนมัติ กดที่
Manu เพื่อปลดล็อกเครื่อง
ซึ่งจะเห็น HelloAndroid ดังรูป
1. Storage
2. Network
3. Multimedia
4. Global positioning system (GPS)
5. Phone services
จากการศึกษาการเขียนแอปพลีเคชัน บน Android ครัง้ นี้ อาจจะดู
สับสนในช่วงแรกๆ เพราะมีโครงสร้างที่แตกต่างจากการเรียนโปรแกรม
บน Nokia และ Blackberry ที่มรี ปู แบบง่ายกว่า แต่ดว้ ยรูปแบบที่แบ่งซอส
ไฟล์ออกเป็ นส่วนๆ ทาให้สามารถ นาไปต่อยอดเป็ นโปรแกรมได้
หลากหลายรูปแบบ ที่สาคัญเป็ นโอเพนซอสด้วย(สาคัญมากเลย)
ถึงแม้เราจะไม่มอี ะไรการันตีว่าถือที่ใช้ Android จะขึน้ มาเป็ นที่ 1
หรือไม่ในอนาคต แต่ดว้ ยชือ่ ชัน้ ขนาดนี้ ก็รบั ประกันว่าเร็วๆนีเ้ ราจะเห็น
มือถือ Android ในท้องตลาด (กระแสหลัก) แน่นอน
ทัศไนย เหมาะจิระกุล