chapter 3
Android Application
02
Android Application
รู้จักกับ App
ประเภทของ App
App Views
App Development Life Cycle
Application Component
Example of App
รู้จักกับ App
รู้จักกับแอนดรอยด์

แอนดรอยด์แอป (Android App) ถูกเขียนขึ้นด้วภาษาจาวา โดยมี Android SDK เป็นตัวแปลภาษา โดยผู้พัฒนาสามารถเพิ่มเติมข้อมูลที่อยู่ในรูปแบบไฟล์ลงไปใน app จากนั้นจะทำการแปลงไฟล์ไปเป็นไฟล์สำหรับติดตั้งที่เรียกว่า APK APK: คือ Android package โดยมีนามสกุลของไฟล์เป็น .apk ทุกสิ่งทุกอย่างที่ผู้พัฒนาใส่เข้าไปใน app จะถูกบรรจุอยู่ในไฟล์ APK

เนื่องจาก Android OS เป็นระบบ multi-user แอนดรอยด์ app จึงทำงานแยกกันเป็นอิสระ

แต่ละ app จะมี UserID และแอนดรอยด์จะกำหนดสิทธิ์เข้าถึงไฟล์ที่อยู่ใน app ดังนั้น app อื่นจะเข้ามาใช้ไฟล์ไม่ได้

แต่ละ app จะมี virtual machine (VM) เป็นของตัวเอง แต่ละ app จึงทำงานแยกเป็นอิสระจากกัน

04
ประเภทของ App
Native App

Native App คือ แอปที่ถูกเขียนขึ้นด้วยเครื่องมือและภาษาเฉพาะสำหรับระบบปฏิบัติการแอนดรอยด์ โดยแอปที่ถูกสร้างขึ้นนี้จะเรียกใช้องค์ประกอบต่างๆของระบบปฏิบัติการแอนดรอยด์ เช่น บัญชีเบอร์โทรศัพท์ กล้อง หรือระบบเซนเซอร์ต่างๆ ได้ โดยทั่วไป ภาษาที่ใช้ในการพัฒนา Native App คือภาษา JAVA โปรแกรมหลักที่ใช้ในการพัฒนาแอปคือ Android Studio

06
Web App

Web App คือแอปที่พัฒนาจากเวบไซต์มาแสดงผลบนมือถือ จริงๆแล้ว Web App ไม่ใช่แอป เพราะแอปประเภทนี้ได้ทำการดัดแปลงเวบไซต์ที่เขียนด้วย HTML5 หรือ PHP ให้สามารถแสดงผลบนระบบปฏิบัติการได้

07
Hybrid App

Hybrid apps คือ แอปที่มีส่วนผสมทั้ง Native App และ Web App

08
App View
App View

Top level views คือ หน้าจอแรกหรือหน้าจอหลักของ app

Category views คือ หน้าจอที่เป็นเมนูหรือตัวเลือกเพื่อเข้าถึงหน้าที่จะแสดงรายละเอียด

Detail/edit view  คือ หน้าจอที่ใช้แสดงรายละเอียด

10
Top level views

หน้าจอหลักที่มีเพียงหน้าจอเดียว

11
Category views

โดยทั่วไป หน้าที่ของ Category View คือเป็นสารบัญหรือเมนูย่อย เพื่อลิงค์ไปยังหน้าต่างๆของแอป หน้าจอแบบ Category views สามารถสร้างได้หลายรูปแบบดังตัวอย่าง

12
Category views

Fix Tab

Spinner

Navigation Drawer

13
Detail/edit view

The detail view allows you to view and act on your data. The layout of the detail view depends on the data type being displayed, and therefore differs widely among apps.

14
Detail/edit view
15
Application Components
Application Components

องค์ประกอบของ app แบ่งออกเป็น 4 ส่วน โดยแต่ละส่วนมีจุดประสงค์และวงจรในการทำงานที่แตกต่างกันออกไป องค์ประกอบของ app ทั้ง 4 คือ:

  • Activities
  • Services
  • Content providers
  • Broadcast receivers
  • 16
    Application Components
    Activity

    Activity คือการกิจกรรมของ app ที่เกิดขึ้นบนหน้าจอ โดย Activity จะกำหนดการทำงานของหน้าจอ 1 หน้าจอ เช่น หากต้องการให้ app มีการทำงาน 2 หน้าจอ ได้แก่ หน้าจอสำหรับแสดงรายชื่อหนังสือและหน้าจอสำหรับแก้ไขชื่อหนังสือ ผู้พัฒนาต้องเขียน activity 2 activity เพื่อควบคุมการทำงานแต่ละหน้าจอ ถึงแม้ทั้ง 2 activity จะทำงานร่วมกันบน app เดียวกัน แต่ทั้ง 2 activity ก็ทำงานแยกขาดจากกันอย่างชัดเจน โดยแต่ละ activity สามารถติดต่อสื่อสารกันได้ และสามารถสั่งให้อีก activity หนึ่งเริ่มต้นทำงานได้ เช่น ที่หน้าจอสำหรับแสดงรายชื่อหนังสือ จะมีปุ่ม “แก้ไขชื่อหนังสือ” เมื่อกดปุ่มจะทำให้หน้าจอแก้ไขชื่อหนังสือทำงาน

    17
    Application Components
    Services

    Services  จะทำงานคล้ายกันกับ activity ต่างกันคือ service จะทำงานอยู่ด้านหลัง (run background) และไม่ต้องมีหน้าจอก็สามารถทำงานได้ ยกตัวอย่างเช่น ผู้ใช้สามารถฟังเพลงได้ในระหว่างที่ใช้งาน Facebook app โดย service จะไม่ขัดจังหวะการทำงานของ activity ที่ผู้ใช้ติดต่ออยู่ service สามารถติดต่อกับ service ด้วยกันเองและ activity ด้วย

    18
    Application Components
    Content Providers

    Content provider   เป็นองค์ประกอบของ app ที่ใช้ในการจัดการการใช้งานข้อมูลร่วมกันของ app. ผู้พัฒนาสามารถบันทึกข้อมูลในรูปแบบของไฟล์ ฐานข้อมูล โดยสามารถเก็บข้อมูลหรือติดต่อข้อมูลที่อยู่บนระบบเครือข่ายหรือภายในเครื่องก็ได้ ผ่านทาง content provider, app อื่นสามารถติดต่อหรือแม้กระทั่งแก้ไขข้อมูลของ app ได้ เช่น ผู้พัฒนาสามารถสร้าง app เพื่อดึงเอาข้อมูลจาก Contact ซึ่งเป็น app พื้นฐานของแอนดรอยด์มาแสดงผลได้ ทั้งยังสามารถแก้ไขข้อมูลที่ดึงมาจาก Contact ได้ด้วย

    19
    App Development Life Cycle
    App Development Life Cycle
    20
    Application Components
    Broadcast receivers

    Broadcast receivers   คือ องค์ประกอบของ app ที่ใช้ตอบรับ broadcast announcement ของระบบ broadcast หรือ การแจ้งข่าวสารจะถูกสร้างขึ้นจากระบบ เช่น การแจ้งเมื่อมีการปิดหน้าจอ การแจ้งเมื่อแบตเตอรี่ใกล้หมด นอกจากการแจ้งที่สร้างด้วยตัวแอนดรอยด์แล้ว app ก็สามารถแจ้งข่าวสารได้ด้วยเช่นกัน เช่น การแจ้งเมื่อมีการดาวน์โหลดรูปภาพโดย browser การแจ้งข่าวสารจาก app จะไม่ได้แจ้งที่หน้าจอ แต่จะใช้วิธีแจ้งข่าวสารผ่านทาง Notification โดยแสดงที่ notification bar

    21
    Additional Components
    The Manifest File

    AndroidManifest.xml   เป็นไฟล์ที่รวบรวมทุกองค์ประกอบของ app ไว้ เพื่อที่ระบบแอนดรอยด์จะได้รู้ว่า app นี้มีองค์ประกอบอะไรบ้าง โดย manifest ไฟล์นี้จะอยู่ที่ root ของ app project หน้าที่ของ manifest ไฟล์ ได้แก่:

  • ระบุ user permission ที่ app ต้องการใช้ เช่น การเข้าถึง contact หรือ ความต้องการใช้งานอินเตอร์เน็ต
  • ประกาศ minimum API Level ของ app
  • ประกาศ hardware และ software ที่จะ app ต้องการใช้งาน เช่น camera, bluetooth services หรือ multitouch screen
  • ประกาศ API libraries ที่ app ต้องการใช้งานนอกเหนือจาก API Level เช่น Google Maps library
  • 23
    The Manifest File

    หน้าที่หลักของ manifest file ก็คือการแจ้งให้ระบบแอนดรอยด์ทราบว่า app นี้องค์ประกอบอะไรบ้าง

    24
    Layout

    Layout   คือ ส่วนติดต่อผู้ใช้ หรือ User Interface (UI) นั่นเอง โดยจะแบ่งออกเป็น

  • Layout ส่วนที่ใช้ในการออกแบบหน้าจอ เช่น layout และ ตาราง
  • View เป็นส่วนที่ใช้ในการแสดงข้อมูล ในภาษา VB จะเรียกว่า object หรือ control เช่น text field, combo box หรือ grid
  • Layout ของ Android Studio จะใช้ภาษา XML ในการควบคุม

    25
    Resources

    Resources หมายถึง สิ่งต่างๆที่เราสามารถนำเข้าไปแสดงผลหรือใช้งานบนแอพที่สร้างด้วย Android Studio เช่น String, ฐานข้อมูล, รูปภาพ  

    26
    R.java

    Class R หรือ R.java   จะเป็นคลาสที่ Android Studio สร้างขึ้นมาโดยอัตโนมัติเมื่อเราเพิ่ม layout, View หรือ resources ต่างๆเข้าไปในแอพ โดยแต่ละ object ที่เพิ่มเข้าไปจะมีหลายเลขประจำตัว(ID) ของตัวเอง

    27
    App for Android
    Apps for mobile
    29
    Apps for tablet
    30
    Apps for wearable
    31
    Apps for Television and Game Box
    32
    Apps for Auto
    33