The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Android App Development ฉบับสมบูรณ์

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by yongyutt.tha, 2021-07-12 13:00:26

Android App Development ฉบับสมบูรณ์

Android App Development ฉบับสมบูรณ์

2. จะปรากฏหน้าต่าง LogCat ดงั รูป

3. LogCat จะถกู เปดิ ขนึ้ มาทห่ี นา้ ตา่ งดา้ นลา่ งของ DDMS ซง่ึ ผอู้ า่ นสามารถปรบั แตง่ ตำ� แหนง่ และขนาด
ของเครอ่ื งมอื ได้ โดยคลกิ ลากและปลอ่ ย (Drag and Drop) ทหี่ นา้ ตา่ งไปยงั ตำ� แหนง่ ทตี่ อ้ งการ

คลิกลาก 3.1

3.2 ปรบั แตง่ ตำ�แหนง่

ทั้งนี้ LogCat น้ันสามารถสนับสนุนการตรวจสอบข้อมูลต่างๆ ได้โดยการเขียนล็อก (Log) และใน
ส่วนนี้นักพัฒนาสามารถตรวจสอบการท�ำงานของแอพพลิเคชันได้โดยง่ายคือ การสร้างล็อกเพิ่มในโปรแกรม
Java โดยใชค้ ลาส Log ซ่ึงมรี ปู แบบค�ำสั่งดังน้ี

ชนิดของ Log ค�ำ สั่ง สีตวั อักษร

DEBUG Log.d(<tag>,<message>); น�ำ้ เงนิ

ERROR Log.e(<tag>,<message>); แดง

INFO Log.i(<tag>,<message>); เขียว
VERBOSE Log.v(<tag>,<message>); ดำ�

WARN Log.w(<tag>,<message>); ส้ม

290 Android App Development ฉบับสมบูรณ์

โดยมีตัวอย่างการเขียนล็อก เพื่อตรวจสอบการท�ำงานของแอพพลิเคชันในกรณีท่ีมีการวนลูปท�ำซ�้ำ
ดังนี้

จากน้ันเมื่อรันแอพพลิเคชัน ผู้อ่านสามารถเปลี่ยนหน้าต่างไปยังหน้าต่าง LogCat ซ่ึงจะปรากฏ
หน้าจอแสดงค่า n ทเี่ พิม่ ข้นึ ในการวนซำ้� แต่ละรอบดงั รูป

การตรวจสอบข้อผิดพลาดของแอพพลิเคชัน โดยการอ่านค่า
Log

หลังจากท่ีผู้อ่านได้เรียนรู้ถึงวิธีการสร้าง Log เรียบร้อยแล้ว
ในหัวข้อน้ีผู้อ่านจะได้เรียนรู้ถึงวิธีการอ่านค่า Log ส�ำหรับการแก้ไข
ข้อผิดพลาดของแอพพลิเคชันที่อาจจะเกิดขึ้นได้ ทั้งน้ีผู้เขียนจะแสดงถึง
ตวั อย่างที่มขี ้อผดิ พลาดในเบอื้ งตน้ ดงั ต่อไปนี้

กรณีตัวอย่าง กรณีท่ีนักพัฒนาไม่ได้เพ่ิมค�ำส่ังการอนุญาต
(Permission) หรือการก�ำหนดสิทธ์ิให้กับแอพพลิเคชัน เช่น ตัวอย่าง
แอพพลเิ คชนั การสง่ SMS ทไี่ มไ่ ดก้ ำ� หนดสทิ ธิ์ “permission SEND_SMS”
ท่ีไฟล์ AndroidManifest.xml เม่ือรันแอพพลิเคชันก็จะเกิดข้อผิดพลาด
ซ่งึ แสดงไดด้ ังรูป

บทท่ี 14 เทคนิคในการแก้ไขปัญหาส�ำหรับการพัฒนาแอพพลิเคชัน 291

หลังจากน้ันผอู้ า่ นจะสามารถเขา้ ไปตรวจสอบความผดิ พลาด ทเี่ กดิ ข้นึ ไดจ้ ากกลอ่ งเคร่อื งมอื LogCat
โดยจะเหน็ ขอ้ ผิดพลาด ซ่ึงแสดงได้ดังรูป

ในกรณนี ขี้ อ้ ผดิ พลาดดงั กลา่ วแสดงใหเ้ หน็ วา่ แอพพลเิ คชนั ทไ่ี ดส้ รา้ งขน้ึ นน้ั ไมไ่ ดร้ บั การใหส้ ทิ ธสิ์ ำ� หรบั
การส่ง SMS

ทงั้ นจี้ ากตวั อยา่ งขา้ งตน้ เปน็ เพยี งการตรวจสอบขอ้ ผดิ พลาดเบอ้ื งตน้ เทา่ นนั้ อยา่ งไรกต็ ามสำ� หรบั การ
พฒั นาแอพพลเิ คชนั ขัน้ สูงนัน้ การแก้ไขข้อผดิ พลาดตา่ งๆ จะต้องใชป้ ระสบการณ์มากเลยทเี ดียว

ค้นหาต�ำแหน่งของไฟล์ด้วย File Explorer

นอกจากเคร่ืองมือ LogCat ที่ผนวกเข้ากบั Android SDK แลว้ เครอ่ื งมอื อีกประเภทหน่งึ ที่ใชใ้ นการ
ค้นหา (Search) ตำ� แหน่งของไฟลก์ ็คอื หน้าตา่ ง File Explorer ซ่งึ แสดงไดด้ ังรูป

ตัวอยา่ งน้จี ะเป็นการคน้ หาไฟล์ท่สี รา้ งขนึ้ จากตัวอย่างในบทที่ 11 ซึ่งก็คือ ไฟล์ mybook.db
292 Android App Development ฉบับสมบูรณ์

ในบางครั้งเม่ือพัฒนาแอพพลิเคชันเสร็จส้ินแล้ว อาจจะเกิดข้อผิดพลาด ซ่ึงแสดงในรูปแบบต่างๆ
หรือแม้แต่ไม่สามารถรัน Emulator ได้ ดังน้ัน วิธีที่อาจจะช่วยแก้ปัญหาได้ก็คือ

z ค ลกิ เมนู Project แลว้ ตามด้วย Clean และลอง Build โปรเจก็ ต์อีกคร้ังหนึ่ง
z หรือบางคร้ังผู้อ่านสามารถปิด Emulator และเปิดข้ึนมาใหม่อีกคร้ัง รวมไปถึงปิดโปรแกรม

Eclipse และเปดิ ขึน้ มาใหมอ่ กี ครง้ั หน่งึ ดว้ ยเชน่ กนั
z ห รอื บางคร้ังอาจจะตอ้ งใช้ DDMS ในการ Reset เคร่อื งมอื เอดีบี (adb)
z หรือบางครัง้ ตอ้ งเขา้ สู่ Command Prompt และพมิ พ์ "adb kill-server"
z หรอื บางครงั้ ตอ้ งเขา้ สู่ Command Prompt และพมิ พ์ "adb uninstall com.kku.app" ทง้ั นี้ com.

kku.app จะเปลย่ี นไปตามโปรเจ็กตท์ ่นี กั พัฒนาเปดิ ใช้งานอยู่

สรุปท้ายบท

ในบทนี้เป็นการอธิบายถึงเทคนิคการแก้ไขปัญหาส�ำหรับการพัฒนาแอพพลิเคชัน ด้วยเคร่ืองมือ
หลกั 3 ประเภทคอื Emulator Control (Telephony Actions และ Location Controls), LogCat และ File Explorer

แบบฝึกหัดท้ายบท

หลังจากผู้อ่านได้ศึกษาการใช้งานเครื่องมือที่ช่วยในการหาข้อผิดพลาดของแอพพลิเคชันแล้ว แบบ
ฝึกหัดในบทนี้ให้ผู้อ่านจ�ำลองข้อผิดพลาดของแอพพลิเคชัน เช่น ไม่ได้ก�ำหนดสิทธ์ิ Permission INTERNET
ให้กบั แอพพลเิ คชนั การสง่ ข้อมูลบนเครอื ขา่ ย (บทที่ 10) จากนน้ั ใหผ้ อู้ า่ นระบุบรรทัดที่แจ้งเตอื นขอ้ ผดิ พลาด

บทท่ี 14 เทคนิคในการแก้ไขปัญหาส�ำหรับการพัฒนาแอพพลิเคชัน 293



15

การอัพโหลดแอพพลิเคชันเข้า Android Market

Android Market เปน็ เสมอื นรา้ นคา้ แอพพลเิ คชนั
ออนไลนข์ องระบบ Android โดยบรษิ ทั Google มลี กั ษณะ
การทำ� งานคลา้ ยคลงึ กบั AppStore ของบรษิ ทั Apple หรอื
AppWorld ของค่าย BlackBerry นั่นเอง

ในการเขา้ ไปดาวน์โหลดแอพพลเิ คชนั ตา่ งๆ ใน
Android Market เหลา่ นไ้ี ดน้ นั้ จะตอ้ งใชโ้ ทรศพั ทเ์ คลอ่ื นท่ี
ระบบ Android เท่านั้น โดยเข้าถึง Android Market ผา่ น
แอพพลเิ คชนั บนเครอื่ งโทรศพั ทเ์ คลอ่ื นทหี่ รอื แทบ็ เลต็ ทใ่ี ช้
ระบบปฏิบตั ิการ Android ที่ชือ่ วา่ Market

แอพพลเิ คชันใน Android Market นนั้ จะถูกแบ่งออกเป็น 2 ส่วนหลกั ๆ คือ
z แอพพลเิ คชนั ทว่ั ไป (General Application)
z เ กม (Game)
ซึ่งทงั้ 2 ส่วนนีย้ ังถูกแบ่งเป็นลักษณะรปู แบบการดาวน์โหลดได้ 2 รูปแบบคอื ไมม่ คี ่าใช้จา่ ย (Free)
และแบบมีค่าใช้จา่ ย
เนื้อหาในบทนี้ จะเป็นการอธิบายถึงขั้นตอนการน�ำแอพพลิเคชันท่ีผู้อ่านพัฒนาขึ้นไปไว้ยัง Android
Market ได้ โดยเนือ้ หาในบทน้ีผ้เู ขยี นจะแบ่งออกเปน็ 3 ข้นั ตอนคือ
z ก ารจัดเตรยี มไฟลต์ า่ งๆ สำ� หรบั อัพโหลดแอพพลิเคชัน
z การอัพโหลดแอพพลิเคชันเขา้ Android Market
z การอพั เดตเวอรช์ นั (Version) ของแอพพลเิ คชัน

การจัดเตรียมไฟล์ต่างๆ ส�ำหรับอัพโหลดแอพพลิเคชัน

ในการอัพโหลดแอพพลิเคชันขนึ้ Android Market น้นั จะประกอบไปด้วยไฟล์ 2 สว่ นคือ
z ไ ฟล์ประเภทรปู ภาพหรือไฟล์วดิ โี อ
z ไฟล์ .apk ส�ำหรับตดิ ตงั้ แอพพลเิ คชัน

การจดั เตรยี มไฟล์รปู ภาพและวิดีโอสำ� หรบั อพั โหลดแอพพลิเคชัน

ใหผ้ อู้ ่านจดั เตรียมไฟลร์ ูปภาพส�ำหรบั อพั โหลดแอพพลเิ คชนั ดังนี้
1. ภาพตวั อยา่ งหนา้ จอ โดยก�ำหนดความกว้างและความสูงเป็น 320x480, 480x800, 480x854,

128x720 หรอื 1280x800 และมนี ามสกลุ ไฟลเ์ ปน็ PNG หรอื JPEG ขนาด 24 บติ ซงึ่ ผอู้ า่ นสามารถ
ใช้เคร่อื งมอื Screen Capture ท่อี ยู่ใน DDMS ชว่ ย Capture รูปภาพได้
2. ไอคอน (ICON) แอพพลเิ คชนั ความละเอยี ดสงู โดยกำ� หนดความกวา้ งและความสงู เปน็ 512x512
และมนี ามสกลุ ไฟลเ์ ปน็ PNG หรือ JPEG ขนาด 32 บติ ที่มีขนาดสงู สดุ 1024 KB
3. กราฟกิ โปรโมทเปน็ ปา้ ยแบนเนอร์ (Banner) แสดงบน Market App ความกวา้ ง 180xความสงู 120
และมีนามสกลุ ไฟล์เปน็ PNG หรอื JPEG ขนาด 24 บิต
4. กราฟกิ แบนเนอรแ์ สดงทเี่ วบ็ ไซต์ http://market.android.com โดยกำ� หนดความกวา้ งและความสงู
เปน็ 1024x500 และมีนามสกุลไฟล์เปน็ PNG หรอื JPEG ขนาด 24 บติ
5. วดิ ีโอโปรโมท ลงิ ค์วดิ โี อทอ่ี ัพโหลดไวท้ ่ี YouTube

ตวั อยา่ งหน้า
Android Market

296 Android App Development ฉบับสมบูรณ์

การส่งออกไฟล์ .apk ส�ำหรับอัพโหลดแอพพลิเคชัน

หลังจากที่ผู้อ่านได้จัดเตรียมไฟล์รูปภาพส�ำหรับอัพโหลดแอพพลิเคชันเรียบร้อยแล้ว ขั้นตอนต่อไป
จะเปน็ การสง่ ออกไฟล์ .apk ซึ่งมีข้ันตอนต่างๆ ดังนี้

1. เปลี่ยนรูปไอคอน (Icon) ของแอพพลเิ คชนั ให้เรยี บรอ้ ย ในทนี่ ี่ผู้เขียนจะเปลีย่ นไอคอนเกม XO ที่
พัฒนาในบทท่ี 12

2. ตรวจสอบช่อื แพ็คเกจของโปรเจก็ ต์ จะต้องไมข่ ึน้ ต้นดว้ ย com.android, com.google, android,
com.example ในท่ีนี้ผู้เขียนจะเปล่ียนชื่อแพ็คเกจจาก com.android.example.xogame เป็น
com.test.example.xogame

2.1 เลอื ก
2.2 แกไ้ ขชอื่

2.3 คลกิ

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 297

3. ตรวจสอบการกำ� หนด versionCode และ versionName ในไฟล์ AndroidManifest.xml ทง้ั นี้
versionCode จะเป็นตวั เลขระบเุ วอรช์ ันของโค้ด ซึ่งผู้อ่านจะตอ้ งรันไปเร่อื ยๆ เมื่อมีการอัพโหลด
ไฟล์ .apk เวอร์ชนั ใหม่ และในส่วนของ versionName น้นั จะเป็นตวั บอกเวอร์ชันส�ำหรับแสดงใน
Android Market
3 ระบเุ วอรช์ นั

4. กำ� หนดคา่ API Level เพอ่ื รบั รอง Android เวอรช์ นั ทส่ี นบั สนนุ ไดแ้ ก่ maxSdkVersion เวอรช์ นั สงู สดุ
ทส่ี นบั สนนุ minSdkVersion เวอรช์ นั ตำ�่ สดุ และ targetSdkVersion ในไฟล์ AndroidManifest.xml ดงั น้ี
4 กำ�หนดค่า API Level

298 Android App Development ฉบับสมบูรณ์

ผูอ้ า่ นสามารถดู API Level ของ Android เวอรช์ นั ตา่ งๆ ไดจ้ ากตารางดา้ นล่างน้ี

Platform Version API Level VERSION_CODE

Android 4.0.3 15 ICE_CREAM_SANDWICH_MR1

Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH

Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1

Android 3.0.x 11 HONEYCOMB

Android 2.3.4 10 GINGERBREAD_MR1
Android 2.3.3

Android 2.3.2 9 GINGERBREAD
Android 2.3.1
Android 2.3

Android 2.2.x 8 FROYO
Android 2.1.x 7 ECLAIR_MR1

Android 2.0.1 6 ECLAIR_0_1

Android 2.0 5 ECLAIR

Android 1.6 4 DONUT

Android 1.5 3 CUPCAKE
Android 1.1 2 BASE_1_1

Android 1.0 1 BASE

5. คลิกขวาทโี่ ปรเจ็กต์ แลว้ เลือกคำ� สงั่ Export... ในตวั อย่างนจี้ ะเปน็ การสง่ ออกของแอพพลเิ คชัน
เกม XO ทไี่ ดถ้ ูกพัฒนาขน้ึ ในบทที่ 12

5 เลือก

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 299

6. จะปรากฏไดอะลอ็ กบ็อกซ์ Export ขนึ้ มา
7. คลิกเลอื ก Export Android Application
8. คลิกปุ่ม

7 เลือก
8 คลิก

9. จะปรากฏไดอะลอ็ กบอ็ กซ์ Export Android Application ขึ้นมา
10. ตรวจสอบชอ่ื ของโปรเจก็ ตว์ ่าถกู ตอ้ งหรอื ไม่ จากนั้นคลิกปุ่ม

10 คลกิ

300 Android App Development ฉบับสมบูรณ์

11. คลกิ เลอื ก Create new keystore
12. คลิกป่มุ เพ่ือเลือกไดเร็คทอรสี �ำหรบั จัดการเกบ็ ไฟล์ Keystore
13. ในสว่ นของ Password: ใหใ้ ส่ Password ทตี่ อ้ งการและพมิ พร์ หสั ผา่ นซำ้� ในสว่ นของ Confirm: โดย

ท้งั สองสว่ นจะตอ้ งตรงกัน
14. คลกิ ปมุ่

เลอื ก 11 12 คลกิ

13 กรอกรหัสผา่ น

14 คลิก
15. ให้ผู้อ่านใส่รายละเอียดต่างๆ ของผู้พัฒนาแอพพลิเคชัน ซ่ึงจะถูกจัดเก็บอยู่ในไฟล์ Keystore

ในทนี่ ีก้ รอกรายละเอยี ดต่างๆ ดงั น้ี
16. คลิกปุม่

15 กรอกข้อมูล

16 คลิก

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 301

17. คลกิ ปมุ่ เพื่อเลอื กไฟล์ .apk ท่จี ะสง่ ออก ในกรณีน้ีคือ ไฟล์ XOGame.apk โดยจะถูก
จัดเกบ็ อย่ทู ีไ่ ดเร็คทอรขี องโปรเจ็กต์ ในทนี่ ค้ี ือ E:\IDC\Android\Android\ED\ExportApk
18. คลิกปุ่ม

17 คลกิ

18 คลิก
19. ในกรณนี ้กี ารรับรองจะสามารถใช้ได้เป็นระยะเวลา 1,000 ปี
20. หลงั จากทผ่ี อู้ า่ นไดส้ รา้ งไฟล์ Keystore และไฟล์ .apk เรยี บรอ้ ยแลว้ ผอู้ า่ นสามารถเขา้ ไปตรวจสอบ

ในไดเรค็ ทอรที ร่ี ะบคุ า่ ไวใ้ นขอ้ 12 โดยสงั เกตไดว้ า่ จะปรากฏไฟล์ 2 ไฟลค์ อื ไฟล์ XOGame.keystore
และไฟล์ XO Game.apk ซ่ึงผอู้ ่านสามารถนำ� ไฟล์ .apk น้ีไปอัพโหลดเข้า Android Market ได้

302 Android App Development ฉบับสมบูรณ์

การอัพโหลดแอพพลิเคชันเข้า Android Market

หลังจากทผี่ อู้ ่านเตรียมไฟลร์ ปู ภาพต่างๆ และไฟล์ .apk เสรจ็ เรียบร้อยแลว้ ในสว่ นน้จี ะเปน็ การนำ�
ไฟลท์ ี่เตรียมไวไ้ ปอพั โหลดเขา้ Android Market ซงึ่ ผ้อู า่ นจะต้องลงทะเบยี นเปน็ Developer กอ่ น โดยจะมีคา่
ใชจ้ า่ ย $25 สำ� หรบั ขน้ั ตอนการอพั โหลดแอพพลเิ คชันเขา้ Android Market มีดังนี้

1. เปดิ เวบ็ ไซต์ https://market.android.com/publish/ และลอ็ กอนิ (Login) ในกรณที ไี่ มม่ รี หสั ผา่ น
ใหล้ งทะเบยี นกอ่ น

1 ล็อกอิน

2. จะปรากฏหนา้ หลัก (Home)
3. คลกิ ปุ่ม

3 คลกิ

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 303

4. จะปรากฏหนา้ ตา่ งสำ� หรับอพั โหลดไฟล์
5. คลกิ ปุ่ม
6. คลกิ เลือกไฟล์ XO Game.apk
7. คลิกปุ่ม

5 คลิก 6 เลือก

7 คลิก

8. คลกิ ปุ่ม
9. จะปรากฏไดอะลอ็ กบอ็ กซ์ อปั โหลด APK ใหม่
10. คลิกปมุ่

10 คลกิ 8 คลิก

304 Android App Development ฉบับสมบูรณ์

11. อัพโหลดรูปภาพทีผ่ ้อู า่ นเตรยี มไวด้ ังรูป
12. แกไ้ ขรายละเอยี ดต่างๆ ของแอพพลิเคชนั ดงั รปู

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 305

13. กำ� หนดเงอื่ นไขการเผยแพร่แอพพลเิ คชนั ดงั รปู
14. คลิกเพอ่ื ยอมรับข้อตกลง

คลกิ 14

306 Android App Development ฉบับสมบูรณ์

15. คลกิ แทบ็ ไฟล์ APK 17 คลิก
16. คลกิ ท่ีลิงค์ เปดิ ใชง้ าน (จะปรากฏในการอพั โหลดครง้ั แรก)
17. หลักจากน้นั คลกิ ปมุ่

15 คลิก

18. คลิกปมุ่ เพ่อื ใหแ้ อพพลิเคชันปรากฏบน Android Market
19. คลิกปุม่ อกี ครั้งเพอื่ บันทึกการเผยแพร่

คลกิ 18 19 คลกิ

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 307

20. รอประมาณ 10-30 นาที แล้วเปิดเว็บไซต์ http://market.android.com/ เพื่อตรวจสอบ
แอพพลิเคชนั ทอี่ พั โหลดเขา้ Android Market

21. พมิ พ์ XOGame ทชี่ อ่ งค้นหา
22. คลิกป่มุ เพื่อค้นหาแอพพลเิ คชนั
23. จะพบแอพพลิเคชันท่อี พั โหลดเขา้ มา ซ่งึ ก็คือ XO Game

กรอกชอ่ื 21

คลกิ 22

23.1 คลกิ

23.2 แสดงผล

308 Android App Development ฉบับสมบูรณ์

เมอื่ คน้ หาใน Android Market Apps ในสมารท์ โฟน ก็จะไดผ้ ลลัพธเ์ ช่นเดยี วกนั

การอัพเดตเวอร์ชันแอพพลิเคชัน

โดยปกตแิ ลว้ เมอื่ มกี ารแกไ้ ขขอ้ ผดิ พลาด หรอื มกี ารปรบั ปรงุ แอพพลเิ คชนั ผอู้ า่ นตอ้ งมกี ารอพั เดตไฟล์
.apk ใหม่เขา้ ไปแทนที่เวอร์ชนั เดิม ซ่ึงมขี ัน้ ตอนดังต่อไปน้ี

1. แก้ไข versionCode และ versionName ในไฟล์ AndroidManifest.xml ในทีน่ จี้ ะเปลย่ี น ver-
sionCode เป็น 2 และ versionName เปน็ 1.1
1 กำ�หนด Version

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 309

2. ใหผ้ อู้ ่าน Export ไฟล์ .apk โดยเลือก
ไฟล์ Keystore เดมิ ท่ีเคยสร้างไว้ แลว้
ใส่รหัสผ่านเดิม (ตามข้ันตอนท่ีกล่าวไว้
ในหัวข้อการส่งออกไฟล์ .apk ส�ำหรับ
อพั โหลดแอพพลเิ คชนั )

3. อัพโหลดไฟล์ .apk เวอร์ชันใหม่เพ่ิม
เข้าไป (ตามขั้นตอนท่ีกล่าวไว้ในหัวข้อ
การอพั โหลดแอพพลเิ คชนั เขา้ Android
Market)

310 Android App Development ฉบับสมบูรณ์

4. ปดิ การใชง้ านไฟล์ apk เวอรช์ นั เดมิ และเปิดใช้งานไฟล์ apk เวอรช์ ันใหม่
4.1 คลกิ

4.2 คลกิ

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 311

5. คลิกปุม่ เพื่อจบการอพั เดตเวอร์ชนั

5 คลิก

รอประมาณ 10-30 นาที แล้วลองเข้า Android Market ผูอ้ ่านกจ็ ะเห็นเวอร์ชนั ของแอพพลิเคชันท่ีมี
การเปลยี่ นแปลงดงั รปู

312 Android App Development ฉบับสมบูรณ์

สำ� หรบั การใชง้ านในอนาคต Google จะปรบั เปลย่ี นจาก Market เปน็ Google Play ซง่ึ กจ็ ะมขี น้ั ตอน
การอพั โหลดทค่ี ลา้ ยคลงึ กนั เพยี งแตเ่ ปลย่ี นเปน็ เวบ็ ไซต์ https://play.google.com/apps/publish/ โดยที่
ผู้สมัครจะต้องเสียค่าบริการ $25 ดังรูป

สรุปท้ายบท

ในบทนเ้ี ปน็ การแนะนำ� ขัน้ ตอนการอพั โหลดแอพพลิเคชนั ทเี่ ราพฒั นาขน้ึ เข้าไปใน Android Market
เพ่ือเผยแพรแ่ อพพลิเคชนั ในตลาดออนไลนน์ ่นั เอง

แบบฝึกหัดท้ายบท

หลังจากผู้อ่านอัพโหลดแอพพลิเคชันเข้า Android Market เรียบร้อยแล้ว แบบฝึกหัดในส่วนน้ีให้
ผู้อา่ นทดลองอพั โหลดไฟล์ .apk เพม่ิ เข้าไปใหม่เพอ่ื ปรับเวอรช์ ันเปน็ 1.2

บทท่ี 15 การอัพโหลดแอพพลิเคชันเข้า Android Market 313



16

การติดต้ังแอพพลิเคชันบนเครื่องโทรศัพท์จริง

ถึงแม้ว่าการพัฒนาโปรแกรมผ่าน Emulator จะมีความสะดวกและรวดเร็ว แต่ส�ำหรับการสร้าง
แอพพลิเคชันบางประเภทนั้น การทดสอบโปรแกรมกับ Emulator ก็อาจจะทำ� ให้เสียเวลาในการรันแต่ละครั้ง
เพ่ิมขึ้น เน่ืองจาก Emulator นั้นยังมีข้อจ�ำกัดในหลายส่วน เช่น การติดต่อสื่อสารผ่าน Bluetooth และการ
ใชง้ านระบบ Sensor ดงั นนั้ อกี ทางเลอื กหนง่ึ กค็ อื การพฒั นาแอพพลเิ คชนั โดยตรงจากเครอ่ื งโทรศพั ทเ์ คลอ่ื นทจี่ รงิ

ดังน้ัน ในบทน้ีจึงเปน็ สว่ นขยายเพิ่มเตมิ เพื่อชว่ ยใหผ้ ้อู ่านมองเหน็ ถงึ ภาพการใชง้ านจริง โดยสามารถ
นำ� แอพพลิเคชนั ทไี่ ด้พฒั นาขน้ึ ในบททแ่ี ล้ว มาตดิ ต้งั กบั เครอื่ งโทรศพั ท์เคลอ่ื นท่จี รงิ โดยเปน็ แนวทางให้กบั ผอู้ า่ น
ทีจ่ ะติดต้ังแอพพลเิ คชันอื่นๆ ตอ่ ไป

เนื้อหาในบทน้ีผู้เขียนจะอธิบายลักษณะการท�ำงานและการติดต้ัง โดยอ้างอิงกับเคร่ืองโทรศัพท์
เคล่ือนท่ียีห่ อ้ Samsung ร่นุ Galaxy Nexus ที่มีระบบปฏิบตั ิการ Android 4.0.3 ตดิ ตง้ั มากับเครอื่ ง

อยา่ งไรกต็ ามผอู้ า่ นสามารถเลอื กใชโ้ ทรศพั ทร์ ุ่นอื่นๆ ได้ ซง่ึ กจ็ ะมขี ั้นตอนการตดิ ตง้ั โดยเฉพาะส่วนของ
โปรแกรมไดรเวอร์ (Driver) ทมี่ กี ารเชอ่ื มตอ่ เขา้ กบั พอรต์ USB ทแ่ี ตกตา่ งกนั ทง้ั นผ้ี เู้ ขยี นจะเนน้ วธิ กี ารนำ� เขา้ หรอื
ส่งออกไฟล์ .apk ไปยงั เครื่องโทรศัพทผ์ า่ นทางสาย USB โดยแบ่งออกเปน็ 3 ส่วนคอื

z การติดต้ังไดรเวอรข์ องเคร่อื งโทรศพั ท์ (Driver Installation)
z การสง่ ออกไฟล์ .apk
z การพฒั นาโปรแกรมผา่ นทางเครอ่ื งโทรศพั ทเ์ คลอื่ นทจี่ รงิ (Android Application Development via

Mobile Device)

การติดต้ังไดรเวอร์ของเครื่องโทรศัพท์ (Driver In-
stallation)

การติดต้งั โปรแกรมไดรเวอร์ของโทรศัพทเ์ คลอ่ื นทีย่ ี่ห้อ Samsung Galaxy Nexus มีขนั้ ตอนตา่ งๆ
ดังตอ่ ไปน้ี

โทรศพั ทเ์ คลือ่ นท่ซี ัมซุงร่นุ Galaxy Nexus

1. ดาวนโ์ หลดซอฟต์แวร์ Samsung_Mobile_USB_Driver_V1.3.800.0.msi ที่ใชส้ ำ� หรับการเช่ือม
ตอ่ โทรศัพทเ์ คล่ือนทย่ี ี่ห้อ Samsung Galaxy Nexus (หรือจาก CD ท้ายเลม่ )

2. ดับเบลิ คลกิ เพือ่ ตดิ ตัง้ ซอฟต์แวร์
3. คลิกป่มุ

3 คลิก

4. จะปรากฏหนา้ จอส�ำหรับการติดต้งั โปรแกรม ใหค้ ลิกปมุ่

4 คลกิ

316 Android App Development ฉบับสมบูรณ์

5. ดำ� เนนิ การตดิ ตง้ั โปรแกรม

6. เมื่อตดิ ต้ังเสรจ็ สมบูรณ์ ใหค้ ลิกปุม่

6 คลิก
7. ใหผ้ ูอ้ า่ นเข้าไปท่ี Control Panel และคลิกไอคอน Device Manager

7 คลกิ

บทท่ี 16 การติดตั้งแอพพลิเคชันบนเครื่องโทรศัพท์จริง 317

8. จะปรากฏหนา้ ต่าง Device Manager ข้นึ มา ให้คลกิ ขวาท่ี Other devices > Galaxy > Update
Driver Software... ดังรูป

8.2 เลือก

คลิกขวา 8.1

9. จะปรากฏหน้าตา่ ง Update Driver Software - Galaxy ให้คลิกท่ี Browse my computer for
driver software

9 เลือก

318 Android App Development ฉบับสมบูรณ์

10. จะปรากฏหนา้ ตา่ งให้เลอื กพาธในการตดิ ตง้ั Driver Software ในที่นเ้ี ลือกเปน็ คา่ Default แลว้ ให้
คลกิ ปุ่ม

10 คลกิ

11. จะปรากฏหน้าต่างให้ 11.1 เลอื ก
เ ลื อ ก ป ร ะ เ ภ ท ใ น ก า ร
ตดิ ตงั้ Driver Software ใน
ทน่ี เี้ ลอื ก ADB Interface
แล้วคลิกปมุ่

12. จะปรากฏหน้าต่างดังรูป 11.2 คลิก
ใหค้ ลกิ เลอื ก SAMSUNG
Android Composite 12.1 เลอื ก
ADB Interface แลว้ คลกิ 12.2 คลิก
ปุ่ม
บทท่ี 16 การติดต้ังแอพพลิเคชันบนเครื่องโทรศัพท์จริง 319

13. รอการดำ� เนินการติดตั้งโปรแกรมสักครู่ จะปรากฏหน้าต่างดงั รปู แล้วคลิกปุ่ม

13 คลกิ

14. เมอ่ื ตดิ ตัง้ เสร็จสมบูรณ์ ใหค้ ลิกป่มุ

14 คลิก
15. เมื่อติดตั้งโปรแกรมเสร็จสมบูรณ์ ผู้อ่านควรจะตรวจสอบการติดต้ังอีกครั้ง โดยดูท่ีหน้าต่าง

Device Manager จะปรากฏ SAMSUNG Android Composite ADB Interface ขนึ้ มา ถอื วา่ เปน็ การ
เสรจ็ สมบูรณ์ในการตดิ ตั้งไดรเวอร์ของโทรศพั ทเ์ คลือ่ นที่ Samsung Galaxy Nexus

320 Android App Development ฉบับสมบูรณ์

การส่งออกไฟล์ .apk

เนื้อหาในหัวข้อนี้จะเป็นการอธิบายถึงวิธีการส่งออก (Export) ไฟล์ .apk ซึ่งได้มาหลังจากท่ีผู้อ่าน
คอมไพลแ์ อพพลเิ คชนั เรยี บรอ้ ยแลว้ ทง้ั นไี้ ฟล์ .apk นน้ั เปรยี บเสมอื นกบั ไฟล์ .exe บนระบบปฏบิ ตั กิ าร Windows
ซึ่งสามารถนำ� ไปรันที่ Emulator หรอื บนเครื่องโทรศพั ทเ์ คลื่อนท่ีจรงิ ก็ได้

ดงั นน้ั หวั ขอ้ นีจ้ ะเป็นการอธบิ ายขั้นตอนต่างๆ สำ� หรบั การรันแอพพลเิ คชนั บน Emulator อ่นื ๆ ซึ่ง
เนอ้ื หาในหัวขอ้ นีจ้ ะแบง่ ออกเปน็ 3 สว่ นคอื

z การเตรยี มการส่งออกไฟล์ .apk
z ก ารนำ� ไฟล์ .apk ไปติดต้ังบน Emulator
z ก ารน�ำไฟล์ .apk ไปติดตัง้ บนโทรศัพท์เคลอ่ื นทจ่ี ริง

การเตรียมการส่งออกไฟล์ .apk

วธิ ที ี่สะดวกทีส่ ุดสำ� หรับการสง่ ออก (Export) ไฟล์ .apk ก็คอื การใชเ้ คร่อื งมอื ADT ซ่ึงได้ผนวกกับ
Eclipse เรียบร้อยแลว้ โดยนำ� มาช่วยในการสรา้ งและส่งออกไฟล์ .apk ทง้ั น้ี Eclipse จะเปน็ ส่วนที่ช่วยสรา้ ง
Digital Certificate Signing ซ่ึงเปน็ ส่วนเพิม่ เตมิ ข้อมลู ทีร่ ะบุถึงผู้สรา้ งแอพพลเิ คชนั นน้ั ๆ

ในกรณที ไี่ มม่ ีการสร้าง Digital Certificate Signing ผอู้ า่ นก็จะไม่สามารถน�ำไฟล์ .apk ไปตดิ ต้งั ลง
บนเครือ่ งอื่นๆ ได้ เพราะแอนดรอยด์จะปฏเิ สธการติดตั้งแอพพลเิ คชนั ท่ีไม่ผา่ นการรับรอง โดยท่มี ีขนั้ ตอนการ
รบั รองดงั ต่อไปนี้

1. เปดิ โปรแกรม Eclipse
2. คลกิ ขวาทโ่ี ปรเจก็ ต์ แลว้ เลอื กคำ� สงั่ Android Tools > Export Signed Application Package... ใน

ตัวอย่างนจ้ี ะเปน็ การสง่ ออกของแอพพลิเคชนั เกม XO ที่ได้ถูกพฒั นาข้นึ ในบทที่ 12

2.1 คลกิ ขวา 2.2 เลือก

บทท่ี 16 การติดตั้งแอพพลิเคชันบนเครื่องโทรศัพท์จริง 321

3. จะปรากฏไดอะลอ็ กบ็อกซ์ Export Android Application
4. ตรวจสอบชอ่ื ของโปรเจก็ ต์วา่ ถกู ต้องหรอื ไม่ จากนัน้ คลิกปุม่

4 คลิก
5. คลกิ เลอื ก Create new keystore
6. คลิกปุม่ เพอ่ื เลอื กไดเร็คทอรีจัดการเก็บไฟล์ Keystore
7. ในสว่ นของ Password: ให้ใส่ Password ทต่ี อ้ งการ และกรอกรหัสผ่านซ้ำ� ในส่วนของ Confirm:

โดยทที่ ั้งสองส่วนจะตอ้ งตรงกัน
8. คลิกปมุ่

คลกิ 5 6 คลกิ

7 กรอกรหัสผ่าน

8 คลกิ

9. ให้ผูอ้ ่านใสร่ ายละเอยี ดตา่ งๆ ของผ้พู ัฒนาโปรแกรม ซง่ึ จะถกู จดั เก็บอยู่ในไฟล์ Keystore ในทน่ี ้ี
ให้กรอกรายละเอยี ดดงั น้ี

322 Android App Development ฉบับสมบูรณ์

10. คลกิ ปุ่ม

9 กรอกข้อมูล

10 คลกิ

11. คลิกปมุ่ เพื่อเลือกไฟล์ .apk ทจ่ี ะส่งออก ในกรณนี ้ีเลือกไฟล์ Lab9_XOGame.apk โดย
ใหบ้ ันทกึ ไว้ในที่น้คี ือ D:\apk

12. คลกิ ปมุ่

11.1 คลิก

12 คลกิ

11.2 เลือก

ในกรณีนี้การรับรองจะสามารถใชไ้ ด้เป็นระยะเวลา 25 ปี 323
บทท่ี 16 การติดต้ังแอพพลิเคชันบนเครื่องโทรศัพท์จริง

13. หลงั จากทผ่ี อู้ า่ นไดส้ รา้ งไฟล์ Keystore และไฟล์ .apk เรยี บรอ้ ยแลว้ ผอู้ า่ นสามารถเขา้ ไปตรวจสอบ
ในไดเรค็ ทอรที ร่ี ะบคุ า่ ไวใ้ นขอ้ 6 โดยสงั เกตไดว้ า่ จะปรากฏไฟล์ 2 ไฟลค์ อื ไฟล์ xoGame.keystore
และไฟล์ Lab9_XOGame.apk ซ่ึงผู้อ่านสามารถนำ� ไฟล์ .apk น้ีไปติดต้ังบน Emulator อ่ืนๆ หรือ
เครอ่ื งโทรศพั ทเ์ คล่อื นท่จี รงิ ได้ และสามารถอพั โหลดเข้า Android Market ไดเ้ ช่นกัน (วิธีการ
อัพโหลดผู้อ่านสามารถกลับไปทบทวนได้ในบทที่ 15)

การน�ำไฟล์ .apk ไปติดตั้งบนเครื่องโทรศัพท์จ�ำลอง หรือ
อีมูเลเตอร์เครื่องอื่น

หลังจากทผ่ี ู้อ่านได้ไฟล์ .apk เรียบร้อยแลว้ ผูอ้ ่านสามารถนำ� ไฟลน์ ไ้ี ปรันบน Emulator หรือโทรศัพท์
เคลอ่ื นทีจ่ รงิ ได้ ดังน้ัน หวั ข้อนจ้ี ะกล่าวถึงการนำ� ไฟล์ .apk ไปติดตงั้ บน Emulator ซึ่งมีขน้ั ตอนดังนี้

1. เปดิ เครอ่ื ง Emulator หรอื สรา้ งขนึ้ ใหม่ ในทนี่ สี้ รา้ งโทรศพั ทจ์ ำ� ลองใหมโ่ ดยมชี อ่ื วา่ emu_to_phone
ซึ่งมคี ณุ สมบัตดิ ังน้ี

2. เปดิ Command Prompt
3. ใหผ้ อู้ ่านเขา้ ไปท่ไี ดเรค็ ทอรี tools ซ่ึงโดยปกตแิ ล้วจะอยู่ในส่วนของ Android SDK ทไ่ี ด้ตดิ ต้งั ไว้

ในบทที่ 2
324 Android App Development ฉบับสมบูรณ์

4. พมิ พ์ค�ำสง่ั “adb install <.apk file>” ซงึ่ ในกรณีนี้ <.apk file> คอื D:\apk ซึ่งเป็นที่อยูท่ ีเ่ ลอื กไว้
ในหวั ขอ้ ทผี่ ่านมา

5. เมื่อตดิ ตงั้ เรียบร้อยแล้ว จะปรากฏผลลพั ธด์ ังรูป
6. จากนน้ั ผอู้ า่ นสามารถตรวจสอบการตดิ ตงั้ โปรแกรมที่ Emulator ได้ โดยเปดิ หนา้ จอแอพพลเิ คชนั

รวม ซง่ึ จะสังเกตไดว้ ่ามีแอพพลเิ คชนั เกม XO ทไ่ี ดต้ ดิ ต้ังไว้ปรากฏขึน้ มา

การน�ำไฟล์ .apk ไปติดต้ังบนโทรศัพท์เคล่ือนท่ีจริง

นอกจากไฟล์ .apk ท่ีสามารถน�ำไปตดิ ตั้งยัง Emulator ไดแ้ ล้ว ยังสามารถนำ� ไปติดตั้งบนโทรศพั ท์
เคลื่อนท่ีจริงได้อีกด้วย ซ่ึงข้ันตอนการติดต้ังก็มีลักษณะเดียวกันกับการติดตั้งไฟล์ .apk บน Emulator ซ่ึงมี
ขน้ั ตอนดงั นี้

1. เชอ่ื มตอ่ โทรศัพทจ์ รงิ เข้ากับเครอื่ งคอมพวิ เตอรผ์ ่านสาย USB ก่อน
2. พมิ พค์ ำ� สง่ั “adb install <.apk file>” ใน Command Prompt เช่นเดียวกบั การติดต้งั ไฟล์ .apk

บน Emulator ดังรูป
บทท่ี 16 การติดตั้งแอพพลิเคชันบนเครื่องโทรศัพท์จริง 325

3. ตรวจสอบทเี่ ครื่องโทรศัพท์เคล่อื นที่จริง กจ็ ะปรากฏแอพพลเิ คชันเกม XO แสดงข้นึ มา

สรุปท้ายบท

ในบทนี้เป็นการแนะนำ� ข้ันตอนการติดตั้งแอพพลิเคชันที่พัฒนาข้ึนเข้าไปในโทรศัพท์เคลื่อนที่/Tablet
Android เพื่อใหส้ ามารถใชง้ านแอพพลิเคชันไดจ้ รงิ นั่นเอง

แบบฝึกหัดท้ายบท

หลังจากผู้อ่านติดตั้งโปรแกรมเกม XO บนเคร่ืองโทรศัพท์เคลื่อนที่จริงแล้ว แบบฝึกหัดในส่วนนี้ให้
ผอู้ า่ นทดลองติดตัง้ แอพพลเิ คชันอนื่ ในบทท่ผี ่านมาแลว้ ลงบนเครื่องโทรศัพท์เคลอื่ นท่ีจริง เชน่

z โปรแกรม Hello World
z โ ปรแกรมตดิ ตอ่ กบั ระบบกำ� หนดตำ� แหนง่ GPS รวมไปถงึ การอา้ งองิ กบั ระบบแผนทขี่ อง Google

Map
z โปรแกรมเพอ่ื ติดต่อกับเครอื ขา่ ย หรอื Simple Android Chat จากน้ันทดสอบการใชง้ านจรงิ ผ่าน

WiFi

326 Android App Development ฉบับสมบูรณ์

Appendix

ความรู้เบื้องต้นการเขียนโปรแกรมภาษาจาวา

เน้ือหาในส่วนนี้ จะขอกล่าวถึงเฉพาะความรู้เบ้ืองต้นเกี่ยวกับการเขียนโปรแกรมภาษาจาวาโดยสรุป
เท่านั้น เพื่อเป็นพื้นฐานให้ผู้อ่านได้ทบทวนและนำ� ไปใช้ประโยชน์ในการพัฒนาแอพพลิเคชันบนระบบปฏิบัติการ
Android ซึง่ มเี นื้อหาดงั น้ี

ชนิดของข้อมูล (Data Type)

ขอ้ มลู ท่กี �ำหนดไว้ในภาษา Java ทง้ั แบบอกั ขระ จ�ำนวนเต็ม ทศนยิ ม และคา่ ความจรงิ ผอู้ า่ นจะตอ้ ง
เลือกใชช้ นิดของขอ้ มูลใหเ้ หมาะสม เพือ่ ให้การทำ� งานของโปรแกรมไม่เกิดขอ้ ผดิ พลาด ซึง่ พอจะสรุปได้ดังนี้

ชนดิ ของขอ้ มูล Type ขนาด (bit) ขอบเขตข้อมลู

อักขระ char 16 อกั ขระตามมาตรฐาน 16-bit Unicode
จ�ำนวนเตม็ byte 8 -128 ถึง 127 (-27 ถึง 27 - 1)
short 16 -32,768 ถงึ 32,767 (-215 ถึง 215 - 1)
ทศนิยม int 32 -2,147,483,648 ถงึ 2,147,483,647 (-231 ถึง 231 - 1)
ค่าความจริง long 64 -9,223,372,036,845,775,808 ถึง

float 9,223,372,036,845,775,807 (-263 ถงึ 263 - 1)
double 32 1.4 x 10-45 ถึง 3.4028235 x 1038
boolean 64 4.9 x 10-324 ถึง 1.7876931348623157 x 10308
1 true กบั false

การประกาศตัวแปร (Declaration)

ก่อนการเขียนโปรแกรมให้ท�ำงานตามที่ต้องการ ผู้อ่านต้องประกาศตัวแปรและก�ำหนดชนิดข้อมูล
ของตัวแปรให้ตรงกับข้อมูลที่เราต้องการท�ำงานเสียก่อน ซ่ึงมีรูปแบบการประกาศตัวแปรและก�ำหนดชนิด
ขอ้ มูลใหก้ บั ตวั แปรดงั น้ี

type varName [= Value];

โดยท ่ี type เป็นชนิดของขอ้ มูล
varName เปน็ ชอื่ ตวั แปร
Value เป็นคา่ ข้อมูลของตวั แปร
ตัวอยา่ งเช่น

boolean boolTest = ture;
int intAge;

หลักการต้ังช่ือตัวแปร

การตง้ั ชื่อตัวแปรเพื่อใช้งานในโปรแกรมนัน้ ผู้อ่านจะต้องต้ังให้สื่อความหมาย เม่ือมาดูโปรแกรมใน
ภายหลัง จะทำ� ใหส้ ามารถจ�ำได้วา่ ตวั แปรดงั กลา่ วใชใ้ นสว่ นใดของโปรแกรม ซึ่งมีกฎการต้งั ช่ือดังน้ี

1. ชือ่ ตัวแปรตอ้ งขึ้นต้นดว้ ย a-z, A-Z, เครื่องหมาย $ และเครอื่ งหมาย _ (Underscore) เท่านน้ั
2. ภายในชอ่ื ตวั แปรประกอบดว้ ย a-z, A-Z, 0-9, เครอ่ื งหมาย $ และเครอื่ งหมาย _ (Underscore)

เทา่ น้ัน
3. ตัวอกั ษรพิมพเ์ ล็กและพิมพ์ใหญ่จะแตกตา่ งกนั
4. หา้ มตัง้ ช่อื ซ้ำ� กับค�ำสงวน (Reserved Word) ซงึ่ มีดงั น้ี

abstract assert Boolean break byte case
catch char class const continue default
do double else enum extends final
finally float for goto if implement
import instanceof int interface long native
new package private protected public return
short static strictfp super switch synchronized
this throw throws transient try void
volatile while

ตัวแปรชนิดข้อความ

ในความจรงิ นน้ั ตวั แปรชนดิ ขอ้ ความไมม่ กี ารกำ� หนดไวใ้ นภาษา Java แตผ่ อู้ า่ นสามารถใชต้ วั แปรชนดิ
ขอ้ ความในรปู แบบของคลาสไดด้ ังน้ี

String strName = value;

โดยท่ี strName เป็นชอ่ื ตวั แปร
value เป็นค่าขอ้ มูลของตวั แปร

328 Android App Development ฉบับสมบูรณ์

ตัวอยา่ งเช่น

String strProvice = "Bangkok";
String strMonth = "May";

การประกาศค่าคงท่ี

การประกาศค่าคงท่ีเป็นการประกาศใช้งานตัวแปรแบบหนึ่ง แต่ไม่สามารถเปล่ียนแปลงค่าของ
ตวั แปรได้ ซงึ่ มีรปู แบบการประกาศคา่ ดงั นี้

final type varName = Value;

โดยท ี่ type เปน็ ชนดิ ของขอ้ มูล
varName เป็นชอ่ื ตวั แปร
Value เป็นคา่ ขอ้ มลู ของตวั แปร
ตัวอยา่ งเชน่

final String Car = "Honda";
final float Pi = 3.14;

ตัวด�ำเนินการ (Operators)

การเขียนโปรแกรมเพ่ือท�ำงานอย่างใดอย่างหน่ึง ผู้อ่านจ�ำเป็นต้องใช้งานตัวด�ำเนินการเสมอ ทั้ง
การก�ำหนดคา่ การเปรยี บเทียบคา่ ข้อมลู และอ่นื ๆ อกี มากมาย ซึ่งตัวด�ำเนนิ การในภาษา Java ทคี่ วรร้มู ีดงั น้ี

z ตวั ด�ำเนินการกำ� หนดคา่ (Assignment Operators)
z ตัวดำ� เนินการทางคณิตศาสตร์ (Arithmetic Operators)
z ตัวด�ำเนนิ การเปรยี บเทียบ (Comparison Operators)
z ตวั ด�ำเนินการทางตรรกศาสตร์ (Logical Operators)
z ตวั ดำ� เนนิ การยนู ารี (Unary Operators)
z ตวั ด�ำเนินการระดบั บติ (Bitwise Operators)

ภาคผนวก ความรู้เบื้องต้นการเขียนโปรแกรมภาษาจาวา 329

ประเภทตัวดำ�เนินการ ตัวด�ำ เนนิ การ ความหมาย ตวั อย่าง
กำ� หนดค่า
= ก�ำหนดค่า A = 5;
ทางคณิตศาสตร์ += เพมิ่ คา่ แล้วกำ� หนดค่า A += B;
-= ลดค่าแลว้ ก�ำหนดคา่ A -= B;
เปรียบเทยี บ *= คูณแล้วกำ� หนดคา่ A *= B;
/= หารแลว้ ก�ำหนดคา่ A /= B;
ทางตรรกศาสตร์ %= การหารเอาเศษแลว้ ก�ำหนดคา่ A %= B;
ยูนารี + การบวก A + B;
- การลบ A - B;
* การคูณ A * B;
/ การหาร A / B;
% การหารเอาเศษ A % B;
== เทา่ กับ A == B
!= ไมเ่ ท่ากับ A != B
< น้อยกวา่ A<B
<= นอ้ ยกว่าหรอื เท่ากบั A <= B
> มากกวา่ A>B
>= มากกวา่ หรือเทา่ กบั A >= B
&& และ A && B
|| หรอื A || B
! ไม่ !A
++ เพ่ิมค่ากอ่ นใช้งาน ++A
เพ่ิมค่าหลังใชง้ าน A++
-- ลดคา่ ก่อนใชง้ าน --A
ลดคา่ หลงั ใช้งาน A--
ระดบั บติ & AND A&B
| OR A|B
^ Exclusive OR A^B
~ ตรงกนั ขา้ ม ~A
>> เลอื่ นบิตไปทางขวา A >> 1
<< เลือ่ นบิตไปทางซ้าย A << 1
>>> เล่อื นบิตไปทางขวาแล้วเตมิ 0 A >>> 2

330 Android App Development ฉบับสมบูรณ์

ล�ำดับความส�ำคัญของตัวด�ำเนินการ

การใชง้ านตวั ด�ำเนินการ บางคร้ังมกี ารใช้งานตัวด�ำเนินการมากกวา่ หนง่ึ ตัวในนพิ จน์เดยี วกัน หากไม่
เข้าใจล�ำดับการท�ำงานของตัวด�ำเนินการ อาจจะท�ำให้ผลลัพธ์ผิดพลาด ตัวอย่างเช่น A = B +
C / D + A ซ่งึ โปรแกรมจะประมวลผลตัวดำ� เนนิ การใดก่อน เป็นตน้

ตวั ดำ�เนนิ การ กรณีมลี ำ�ดับความส�ำ คญั เท่ากนั ลำ�ดับความส�ำ คัญ

( ), [ ] ท�ำจากซา้ ยไปขวา
+, -, ++, --, !, ~ ทำ� จากขวาไปซา้ ย
*, /, % ทำ� จากซา้ ยไปขวา
+, - ทำ� จากซา้ ยไปขวา
<<, >>, >>> ทำ� จากซา้ ยไปขวา
<, <=, >, >= ทำ� จากซา้ ยไปขวา
==, != ท�ำจากซา้ ยไปขวา
& ท�ำจากซา้ ยไปขวา
^ ท�ำจากซ้ายไปขวา
| ทำ� จากซา้ ยไปขวา
&& ท�ำจากซ้ายไปขวา
|| ทำ� จากซ้ายไปขวา
?: ทำ� จากขวาไปซา้ ย
=, +=, -=, *=, /=, <<=, >>=, &=, |=, ^= ท�ำจากขวาไปซา้ ย

การแสดงผลอักขระพิเศษ

ในการแสดงผลขอ้ มูลในภาษา Java มกี ารแสดงผลอกั ขระพิเศษดังนี้

อักขระพเิ ศษ ความหมาย

\b เลอ่ื นเคอร์เซอร์ถอยหลงั ไป 1 ตวั อักษร
\f ขน้ึ หน้าใหม่
\n ขึน้ บรรทดั ใหม่
\r เลื่อนเคอร์เซอรไ์ ปทางซ้ายสุด
\t แสดงแทบ็ ตามแนวนอน
\' แสดงเครอื่ งหมาย '
\" แสดงเคร่ืองหมาย "
\\ แสดงเครือ่ งหมาย \
\xxx แสดงตัวอักษรรหัส Ascii
เชน่ \065 เปน็ การแสดงตัวอักษร A

ภาคผนวก ความรู้เบื้องต้นการเขียนโปรแกรมภาษาจาวา 331

อกั ขระพเิ ศษ ความหมาย
\uxxx แสดงตัวอกั ษรรหสั Unicode
เชน่ \u0008 เปน็ การขึ้นบรรทดั ใหม่

การจัดรูปแบบแสดงผลตัวเลข

ในหัวข้อนี้จะกล่าวถึงการจัดการรูปแบบแสดงผลข้อความในลักษณะจ�ำนวนรูปแบบต่างๆ เช่น
จ�ำนวนเต็ม ทศนิยม เป็นต้น ซ่ึงต้องเรียกใช้งานไลบรารี java.text เข้ามาใช้งานในโปรแกรมก่อนเสมอ โดย
เขยี นโคด้ ดงั นี้

import java.text.*;

จะพบวา่ รปู แบบการจดั การแสดงผลตวั เลขประกอบดว้ ยเครอื่ งหมาย #, 0, $ และ , โดยมรี ปู แบบดงั น้ี

DecimalFormat ValName = new DecimalFormat(pattern);

โดยท่ี ValName เปน็ ชือ่ ออบเจก็ ต์
pattern เปน็ รปู แบบทตี่ อ้ งการกำ� หนด

DecimalFormat ValName = new DecimalFormat("#,###.##");
System.out.println(ValName.format(7314.527));

ได้ผลลัพธ์เปน็ 7,314.53

การแปลงชนิดข้อมูล

ในการเขยี นโปรแกรมบางครง้ั จะตอ้ งมกี ารแปลงชนดิ ขอ้ มลู ทมี่ อี ยใู่ หต้ รงตามความตอ้ งการของระบบ
เช่น แปลงข้อมูลชนิดข้อความเป็นข้อมูลชนิดจ�ำนวนเต็ม แปลงข้อมูลชนิดจ�ำนวนเต็มเป็นข้อมูลชนิดทศนิยม
เปน็ ต้น ซึง่ ภาษา Java มีวิธกี ารแปลงชนิดข้อมูล 2 วธิ คี อื Implicit type conversion และ Explicit type
conversion

การแปลงชนิดข้อมูลแบบ Implicit type conversion

การแปลงชนดิ ขอ้ มลู แบบ Implicit type conversion เปน็ การแปลงชนดิ ขอ้ มลู โดยใชเ้ มธอดของคลาส
ซง่ึ ผ้อู ่านสามารถศกึ ษารูปแบบการใช้งานได้จากตวั อย่างตอ่ ไปน้ี

intTest = Integer.parseInt(str);
boolTest = Boolean.parseBoolean(str);
fltTest = Float.parseFloat(str);

การแปลงชนิดข้อมูลแบบ Implicit type conversion

package javaapplication1;

public class Main {
public static void main(String[] args) {
int intTest;
String str;

332 Android App Development ฉบับสมบูรณ์

str = "37";
intTest = Integer.parseInt(str);
System.out.print(intTest);
}
}

การแปลงชนิดข้อมูลแบบ Explicit type conversion

การแปลงชนดิ ขอ้ มูลแบบ Explicit type conversion เปน็ การแปลงชนดิ ข้อมลู โดยใช้ตัวดำ� เนนิ การ
cast ซึ่งมีรปู แบบการใชง้ านดังน้ี

valNameResult = (dataType) valName

โดยท่ี valNameResult เปน็ ชอื่ ตวั แปรทรี่ บั คา่ จากการแปลงขอ้ มลู ซงึ่ จะตอ้ งมชี นดิ ขอ้ มลู เดยี วกนั กบั
dataType

dataType เปน็ ชนิดข้อมลู ท่ตี อ้ งการแปลงให้เป็นไปตามต้องการ
valName เปน็ ช่ือตวั แปรทต่ี ้องการแปลงชนดิ ข้อมูล
ซึง่ ผ้อู า่ นสามารถศึกษารูปแบบการใช้งานไดจ้ ากตวั อยา่ งต่อไปนี้

dbl = (double)intTest;
intTest = (int) dbl;
flt = (int) intTest;

การแปลงชนิดข้อมูลแบบ Explicit type conversion

package javaapplication1;

public class Main {
public static void main(String[] args) {
int intTest;
double dbl;;
intTest = 37;
dbl = (double)intTest;
System.out.print(dbl);
}

}

ข้อควรระวังในการใช้ cast
1. การแปลงข้อมูลจากชนิดข้อมูลทศนิยมไปเป็นชนิดข้อมูลจ�ำนวนเต็ม จะท�ำให้ค่าทศนิยมหายไป
2. การแปลงขอ้ มลู จากชนดิ ขอ้ มลู ทมี่ ขี นาดใหญก่ วา่ ไปเปน็ ชนดิ ขอ้ มลู ทม่ี ขี นาดเลก็ กวา่ อาจจะทำ� ให้
ค่าข้อมูลผิดพลาด เช่น การแปลงข้อมูลจาก long ไปเป็น int เป็นต้น

ภาคผนวก ความรู้เบื้องต้นการเขียนโปรแกรมภาษาจาวา 333

การเขียนค�ำอธิบายโปรแกรม

การเขียนโปรแกรมภาษา Java สามารถเขยี นคำ� อธิบายโปรแกรมได้ 2 รูปแบบคือ
z ก ารเขยี นค�ำอธิบายโปรแกรมแบบบรรทดั เดยี ว โดยใชเ้ ครอ่ื งหมาย //
z ก ารเขยี นค�ำอธบิ ายโปรแกรมแบบหลายบรรทัด โดยใชเ้ ครอื่ งหมาย /* */
เพ่ือให้ผู้อ่านเข้าใจการใช้งานการเขียนค�ำอธิบายโปรแกรมมากย่ิงข้ึน ผู้อ่านสามารถศึกษาได้จาก
ตวั อย่างต่อไปน้ี

ค�ำส่ังตัดสินใจ

คำ� สง่ั ตดั สนิ ใจ เปน็ คำ� สงั่ ทใ่ี ชก้ ำ� หนดทศิ ทางการทำ� งานของโปรแกรมเมอ่ื มเี งอ่ื นไขในการตดั สนิ ใจ เชน่
ถา้ เง่อื นไขทกี่ �ำหนดเป็นจริง ให้โปรแกรมทำ� งานในชดุ คำ� ส่ังท่ี 1 แตห่ ากเงือ่ นไขทกี่ ำ� หนดเปน็ เท็จ ใหโ้ ปรแกรม
ทำ� งานในชดุ ค�ำส่ังที่ 2 เป็นตน้ ซึง่ สามารถสรปุ ค�ำส่ังตัดสินใจได้ดังน้ี

รปู แบบการใชง้ าน การท�ำ งานของค�ำ สัง่ ตวั อยา่ งการใช้งาน
z เป็นค�ำสั่งตัดสินใจเลือกท�ำงานในชุดค�ำ
if (ก�ำหนดเงื่อนไขที่ 1) if (A > B)
{ สง่ั ที่กำ� หนดเมือ่ เงอ่ื นไขทกี่ ำ� หนดเปน็ จรงิ {
ชดุ ค�ำสั่งเมอ่ื เงอื่ นไขเปน็ จรงิ ;
} z เป็นค�ำส่ังตัดสินใจเลือกท�ำงานในชุด A = A + B;
if (ก�ำหนดเงอื่ นไขที่ 1) ค�ำสั่งใดชุดค�ำสั่งหนึ่งจาก 2 ชุดค�ำสั่ง }
{ ซ่งึ พจิ ารณาจากเงื่อนไขที่กำ� หนด if (A > B)
ชุดคำ� สง่ั เมอ่ื เงอ่ื นไขเป็นจริง; {
} z เมอื่ เงอ่ื นไขทกี่ ำ� หนดเปน็ จรงิ ใหท้ ำ� งานใน
else ชุดค�ำส่ังหน่ึง และถ้าเง่ือนไขเป็นเท็จให้ A = A + B;
{ ท�ำงานในอีกชุดค�ำส่งั หนงึ่ }
ชุดค�ำสงั่ เม่อื เงือ่ นไขเปน็ เทจ็ ; else
} {

B = A + B;
}

334 Android App Development ฉบับสมบูรณ์

รูปแบบการใช้งาน การทำ�งานของค�ำ สั่ง ตัวอย่างการใชง้ าน
if (กำ� หนดเง่อื นไขท่ี 1) z เป็นค�ำส่ังตัดสินใจเลือกท�ำงานในชุด
{ if (A > B)
ชุดคำ� สงั่ ท่ี 1; ค�ำส่ังใดชุดค�ำส่ังหน่ึงจากหลายๆ ชุดค�ำ {
} ส่งั ซง่ึ พิจารณาจากเง่อื นไขที่กำ� หนด
else if (กำ� หนดเงอ่ื นไขที่ 2) z เมือ่ เงอ่ื นไขท่ี 1 เป็นจรงิ ใหท้ ำ� งานในชุด A = A + B;
{ ค�ำส่ังท่ี 1 และถ้าเงื่อนไขเป็นเท็จให้ }
ชดุ คำ� ส่ัง 2; พิจารณาเงื่อนไขที่ 2 else if (B > C)
} z เมือ่ เงือ่ นไขท่ี 2 เปน็ จริงให้ท�ำงานในชุด {
. ค�ำส่ังท่ี 2 และถ้าเงื่อนไขเป็นเท็จให้
. พิจารณาเงอ่ื นไขต่อไป A = A + C;
. z ท�ำเช่นน้ีต่อไปหากพบว่าทุกเงื่อนไขเป็น }
else เทจ็ ให้ทำ� งานในชุดค�ำส่งั สดุ ทา้ ย
{ else if (C > D)
ชดุ ค�ำสั่งสุดทา้ ย; z เป็นค�ำสั่งตัดสินใจเลือกท�ำงานในชุด {
} ค�ำส่ังใดชุดค�ำสั่งหนึ่งจากหลายๆ ชุด A = A + D;
คำ� ส่งั ซ่ึงพจิ ารณาจากตวั แปรหรือนพิ จน์ }
switch (ตวั แปรหรือนพิ จน์) ทก่ี ำ� หนด else
{ {
z หากตัวแปรหรือนิพจน์ที่ก�ำหนดตรงกับ B = A;
case ค่าที่ 1 : คา่ ท่ี 1 ให้ทำ� งานในชดุ ค�ำสัง่ ที่ 1 และถ้า }
ชุดคำ� สั่งท่ี 1; ไม่ตรงกนั ให้พิจารณาค่าที่ 2 switch (A)
{
break; z หากตัวแปรหรือนิพจน์ท่ีก�ำหนดตรงกับ
case ค่าที่ 2 : คา่ ท่ี 2 ใหท้ ำ� งานในชดุ ค�ำส่งั ท่ี 2 และถา้ case 1 :
ชดุ คำ� สั่งท่ี 2; ไม่ตรงกันใหพ้ จิ ารณาคา่ ต่อไป A = A + B;
break;
break; z ท�ำเช่นน้ีต่อไปหากพบว่าตัวแปรหรือ
case คา่ ท่ี 3 : นิพจน์ที่ก�ำหนดไม่ตรงกับค่าใดๆ ให้ case 2 :
ชุดค�ำสง่ั ท่ี 3; ทำ� งานในชดุ ค�ำสัง่ สดุ ทา้ ย A = A + C;
break;
break;
default : case 3 :
ชุดค�ำส่งั สดุ ท้าย; B = C;
} break;

default :
A = C;

}

ภาคผนวก ความรู้เบ้ืองต้นการเขียนโปรแกรมภาษาจาวา 335

ค�ำส่ังวนลูป

ค�ำสั่งวนลูปเป็นค�ำสั่งท่ีใช้ควบคุมการท�ำงานของโปรแกรมแบบวนซ้�ำๆ การท�ำงานเดิมตามเงื่อนไข
ท่ีก�ำหนด เช่น การวนซ�ำ้ การทำ� งานเดิมเป็นจ�ำนวน 10 รอบ ทำ� งานซ�ำ้ ๆ จนกว่าเงอ่ื นไขเปน็ เทจ็ เป็นตน้ ซงึ่
สามารถสรปุ ค�ำส่งั วนลูปได้ดังนี้

รูปแบบการใช้งาน การทำ�งานของคำ�ส่ัง ตวั อย่างการใชง้ าน
for(initial; condition; change) z เป็นค�ำส่ังวนซ้�ำการท�ำงานด้วยจ�ำนวน for(A = 0; A < 10; A++)
{ {
รอบทแ่ี นน่ อน
ชุดค�ำส่งั ; z โปรแกรมจะตรวจสอบเง่ือนไขก่อน Sum = Sum + A;
} }
โดยท่ี ถ้าเงื่อนไขเป็นจริงให้ท�ำงานกับชุด
initial = คา่ เริม่ ต้นของตวั แปร คำ� สัง่ ภายในลูป while(intRow < 10)
condition = เงือ่ นไขทกี่ ำ� หนด z เมื่อท�ำงานเสร็จจะเพิ่มหรือลดค่า {
change = การเปล่ยี นแปลงของ ตัวแปรและตรวจสอบเง่ือนไขใหม่อีก
ตัวแปรในแต่ละรอบ ครงั้ A = A + B;
while(เงื่อนไขท่กี ำ� หนด) intRow++;
{ z เป็นคำ� สง่ั วนซำ้� การทำ� งาน }
z โปรแกรมจะท�ำงานชุดค�ำสั่งภายในลูป do
ชุดคำ� ส่งั ; {
} เม่อื เง่ือนไขทีก่ ำ� หนดเป็นจรงิ A = A + B;
z เมื่อท�ำงานเสร็จจะตรวจสอบเง่ือนไข intRow++;
do }while(intRow <= 5);
{ ใหม่อกี ครงั้
z โปรแกรมจะออกจากลูปการท�ำงานเมื่อ
ชดุ คำ� สัง่ ;
}while(เงอ่ื นไขท่ีกำ� หนด); เงื่อนไขทก่ี ำ� หนดเปน็ เทจ็
z เป็นคำ� สัง่ วนซ�ำ้ การท�ำงาน
z โปรแกรมจะท�ำงานชุดค�ำสั่งภายในลูป

ก่อน 1 รอบจึงตรวจสอบเงื่อนไขที่
กำ� หนด
z ถ้าเง่ือนไขท่ีก�ำหนดเป็นจริง ให้กลับไป
ท�ำงานชุดค�ำส่ังภายในลูปอีกครั้ง และ
ตรวจสอบเง่อื นไขท่ีกำ� หนดอกี ครั้ง
z ถา้ เงอื่ นไขทกี่ ำ� หนดเปน็ เทจ็ โปรแกรมจะ
ออกจากลปู การท�ำงาน

336 Android App Development ฉบับสมบูรณ์

ตัวแปรอาร์เรย์

ตัวแปรอาร์เรย์เปรียบเสมือนการน�ำตัวแปรมาเรียงต่อกันหลายๆ ตัว โดยที่ทุกตัวจะมีชนิดข้อมูล
เดยี วกัน มีชอื่ ตัวแปรเดยี วกนั แต่สามารถอา้ งถงึ ตำ� แหน่งขอ้ มูลแตล่ ะตัวท่เี รยี งต่อกนั ด้วยล�ำดับการจัดเรยี ง ซงึ่
เรียกตำ� แหน่งข้อมลู แตล่ ะตัววา่ อินเด็กซ์ (Index)

ตวั แปรอาร์เรยท์ ่ีมีให้ใชง้ านในภาษา Java นน้ั สามารถแยกได้ 2 แบบคือ ตวั แปรอาร์เรย์ 1 มติ ิและ
ตวั แปรอาร์เรย์หลายมิติ ซงึ่ ในท่ีน้ีจะขอกลา่ วถึงตัวแปรอาร์เรย์ 1 มติ ิ ตัวแปรอารเ์ รย์ 2 มิติ และตวั แปรอารเ์ รย์
3 มิติเทา่ นน้ั

ตัวแปรอาร์เรย์ 1 มิติ

ตัวแปรอาร์เรย์ 1 มิติเปรียบได้กับการน�ำตัวแปรมาเรียงต่อกันหลายๆ ตัวในลักษณะของแถวข้อมูล
ซงึ่ สามารถจ�ำลองตัวอยา่ งตัวแปรอาร์เรย์ 1 มิติ ชอื่ ตัวแปร intEx1 เป็นตัวแปรชนิดจำ� นวนเตม็ ท่สี ามารถเก็บ
ขอ้ มูลจ�ำนวนเต็มได้ 6 ตัวยกตวั อย่างดังน้ี

จากตวั อย่างจะเหน็ ได้ว่า ตัวแปรอารเ์ รย์สามารถเก็บข้อมูลได้ 6 ตัว โดยที่
z ตวั แปรตัวแรกคอื ตำ� แหนง่ อินเดก็ ซ์ที่ 0 มคี า่ เทา่ กับ 5 ซ่ึงสามารถเขียนไดเ้ ปน็ intEx1[0] = 5
z ตัวแปรตวั ที่ 2 คือ ต�ำแหนง่ อนิ เด็กซท์ ่ี 1 มีคา่ เทา่ กบั 8 ซ่ึงสามารถเขียนได้เปน็ intEx1[1] = 8
z ต วั แปรตัวสดุ ท้ายคอื ตำ� แหนง่ อินเดก็ ซท์ ี่ 5 มคี า่ เท่ากับ 2 ซงึ่ สามารถเขยี นได้เปน็ intEx1[5] = 2

ตัวแปรอาร์เรย์หลายมิติ

ตัวแปรอาร์เรย์หลายมิติคือ ตัวแปรท่ีมีมุมมองการเข้าถึงข้อมูลของตัวแปรได้มากกว่า 1 ด้าน
ซึ่งในทนี่ ้ีจะกลา่ วถึงเฉพาะตัวแปรอารเ์ รย์ 2 มติ ิและตวั แปรอารเ์ รย์ 3 มิตเิ ทา่ น้ัน

ตัวแปรอารเ์ รย์ 2 มิติ

ตวั แปรอาร์เรย์ 2 มติ ิเปรยี บไดก้ ับการนำ� ตวั แปรมาเรยี งต่อกันหลายๆ ตัวในลักษณะของตารางขอ้ มลู
ซึ่งสามารถจำ� ลองตวั อยา่ งตวั แปรอารเ์ รย์ 2 มิติ ชอ่ื ตวั แปร intEx2 เปน็ ตวั แปรชนดิ จ�ำนวนเตม็ ท่สี ามารถเก็บ
ขอ้ มลู จ�ำนวนเต็มได้ 15 ตวั ยกตัวอยา่ งดงั น้ี

จากตวั อยา่ งจะเหน็ ไดว้ า่ ตวั แปรอารเ์ รยท์ ม่ี ขี นาด 3 แถว 5 คอลมั นส์ ามารถเกบ็ ขอ้ มลู ได้ 15 ตวั โดยท่ี
z ตัวแปรแถวท่ี 1 คอลมั น์ท่ี 1 มีค่าเทา่ กับ 3 ซึ่งสามารถเขยี นไดเ้ ปน็ intEx2[0][0] = 3
z ตัวแปรแถวที่ 1 คอลัมนท์ ่ี 2 มีค่าเท่ากับ 7 ซง่ึ สามารถเขยี นไดเ้ ป็น intEx2[0][1] = 7
z ตัวแปรแถวท่ี 3 คอลมั นท์ ี่ 2 มคี า่ เทา่ กบั 2 ซึง่ สามารถเขียนไดเ้ ปน็ intEx2[2][1] = 2
z ต ัวแปรแถวท่ี 3 คอลมั นท์ ่ี 5 มคี ่าเทา่ กับ 3 ซ่ึงสามารถเขยี นไดเ้ ปน็ intEx2[2][4] = 3

ภาคผนวก ความรู้เบ้ืองต้นการเขียนโปรแกรมภาษาจาวา 337

ตัวแปรอาร์เรย์ 3 มิติ

ตวั แปรอาร์เรย์ 3 มิตเิ ปรยี บไดก้ บั การน�ำตวั แปรมาเรียงตอ่ กันหลายๆ ตัวในลกั ษณะของกล่องขอ้ มูล
หรอื เรียกอีกอย่างวา่ อาร์เรยข์ องอารเ์ รย์ 2 มิติ ซ่ึงสามารถจำ� ลองตวั อยา่ งตัวแปรอารเ์ รย์ 3 มิติ ชอ่ื ตัวแปร
intEx3 เป็นตัวแปรชนิดจำ� นวนเตม็ ท่ีสามารถเก็บข้อมลู จำ� นวนเต็มได้ 24 ตัวยกตัวอยา่ งดงั น้ี

จากตัวอย่างจะเห็นได้ว่า ตัวแปรอาร์เรย์ที่มขี นาด 2 บลอ็ ก 3 แถว 4 คอลัมนส์ ามารถเกบ็ ขอ้ มลู ได้
24 ตัว โดยท่ี

z ตวั แปรบล็อกท่ี 1 แถวที่ 1 คอลมั น์ท่ี 1 มคี ่าเท่ากบั 9 เขยี นไดเ้ ปน็ intEx3[0][0][0] = 9
z ตวั แปรบลอ็ กที่ 1 แถวท่ี 1 คอลัมน์ที่ 2 มคี ่าเทา่ กบั 2 เขยี นไดเ้ ป็น intEx3[0][0][1] = 2
z ต ัวแปรบล็อกที่ 1 แถวท่ี 3 คอลัมน์ท่ี 4 มคี า่ เท่ากบั 7 เขยี นไดเ้ ปน็ intEx3[0][2][3] = 7
z ต ัวแปรบล็อกท่ี 2 แถวท่ี 1 คอลมั นท์ ี่ 1 มีคา่ เทา่ กับ 7 เขียนได้เป็น intEx3[1][0][0] = 7
z ต ัวแปรบล็อกที่ 2 แถวที่ 1 คอลมั นท์ ่ี 2 มีค่าเทา่ กบั 1 เขียนได้เปน็ intEx3[1][0][1] = 1
z ต วั แปรบล็อกท่ี 2 แถวที่ 3 คอลมั น์ที่ 4 มีคา่ เทา่ กับ 2 เขยี นได้เปน็ intEx3[1][2][3] = 2

การเขียนโปรแกรมกับตัวแปรอาร์เรย์

เม่ือผู้อ่านได้ท�ำความรู้จักกับลักษณะของตัวแปรอาร์เรย์ในประเภทต่างๆ กันไปแล้ว ในหัวข้อน้ีจะ
เป็นการใชง้ านตัวแปรอาร์เรย์ในการเขียนโปรแกรมของเรา โดยจะกล่าวถงึ การประกาศใช้งานตวั แปร กำ� หนด
ค่าตัวแปร และการอ้างถงึ ข้อมลู ตวั แปร

การประกาศตัวแปรอาร์เรย์

ในหัวข้อท่ีผ่านมาผู้อ่านได้เรียนรู้การประกาศตัวแปรชนิดต่างๆ กันไปแล้ว ซึ่งการประกาศตัวแปร
อาร์เรย์น้ันมีกฎการต้ังช่ือและรูปแบบค�ำส่ังเหมือนกับการประกาศตัวแปรท่ัวไป ต่างกันเพียงแต่การประกาศ
ตวั แปรอาร์เรย์นน้ั ต้องมีการก�ำหนดขนาดของตัวแปรไวเ้ ท่านัน้ เอง ซง่ึ มี 2 รปู แบบดังน้ี

type varName[ ] = new type[n];

หรอื

type varName[ ];
varName = new type[n];

338 Android App Development ฉบับสมบูรณ์

โดยที ่ type เป็นชนิดของข้อมลู
varName เปน็ ชอื่ ตัวแปรอารเ์ รย์
n เป็นขนาดของตวั แปรอาร์เรย์
มีตวั อยา่ งดังน้ี

int intTest[] = new int[7];
char ch[] = new char[10];

double dblTest[];
dblTest = new double[3];
boolean bool[];
bool = new boolean[2];

จากตัวอย่างโค้ดจะเห็นได้ว่าจะมีการก�ำหนดขนาดตัวแปรไว้ด้วยเครือ่ งหมาย [ ] เชน่ การประกาศ
ตวั แปรชนดิ จ�ำนวนเต็มช่ือ intTest ขนาด 7 ตวั เป็นตน้

การก�ำหนดค่าข้อมูลให้ตัวแปรอาร์เรย์

การก�ำหนดค่าให้กับตัวแปรแบบอาร์เรย์นั้น มีรูปแบบเหมือนกับการก�ำหนดค่าให้กับตัวแปรท่ัวไป
ต่างกันเพียงแต่การก�ำหนดค่าให้กับตัวแปรแบบอาร์เรย์นั้น จะต้องก�ำหนดต�ำแหน่งอินเด็กซ์เพ่ือระบุต�ำแหน่ง
ของตวั แปรทีจ่ ะกำ� หนดคา่ ภายในเครื่องหมาย { } ยกตัวอยา่ งเช่น

int intNum[] = {5, 3, 4, 1, 7};
char chPassword[] = {'P', 'a', 's', 's'};
double fPrice[][] = {{12.5, 17.8, 8.1}, {45.9, 9.7, 86.5}};
int intScore[][] = {{2, 4, 7, 6}, {9, 1, 3, 4}};

ตัวอย่างท่ีผ่านมาเป็นการประกาศตัวแปรพร้อมกับก�ำหนดค่า ซ่ึงอาจจะก�ำหนดค่าภายหลังประกาศ
ตัวแปรไดเ้ ชน่ กนั ซง่ึ มตี วั อย่างดังน้ี

intNum[1] = 6;
chPassword[0] = 'Z';
fPrice[2][1] = 0.08;

จากตัวอย่างจะเหน็ ได้ว่า เรากำ� หนดคา่ ใหต้ วั แปร intNum ในล�ำดับที่ 2 อินเด็กซ์ที่ 1 มีคา่ เท่ากบั
6 ซึง่ ได้ผลลพั ธด์ งั นี้

การอ้างถึงข้อมูลในตัวแปรอาร์เรย์

เมื่อมีการก�ำหนดค่าให้กับตัวแปรแล้ว ต่อไปก็ต้องรู้วิธีการอ่านข้อมูลจากตัวแปรโดยการระบุ
ต�ำแหน่งขอ้ มลู ทีต่ ้องการลงไป หรอื ทเี่ รียกกันวา่ อนิ เด็กซ์ (Index) ซึง่ มีตัวอย่างการใชง้ านดังนี้

Ans = intScore[2] * 3;
fSum = fPrice[3][2] + fPrice[3][2];
intNum[0] = intNum[1] + intNum[2];

ภาคผนวก ความรู้เบ้ืองต้นการเขียนโปรแกรมภาษาจาวา 339


Click to View FlipBook Version