android architecture
DESCRIPTION
Android Architecture Architecture Layer Application Framework LayerTRANSCRIPT
Mr.Jenchke [email protected]
แอนดรอยด�เป็�นซอฟต์�แวร�ที่��มี�โครงสร�างแบบสแต์�ก (Stack) ซ��งรวมีเอาระบบป็ฏิ!บ"ต์!การ (Operating System), มี!ดเด!ลแวร� (Middleware) และแอพพล!เคชั"นที่��ส&าค"ญเข้�าไว�ด�วยก"น เพ*�อใชั�ส&าหร"บที่&างานบนอ-ป็กรณ์�พกพาเคล*�อนที่�� (Mobile Devices) เชั/น โที่รศั"พที่�มี*อถื*อ เป็�นต์�น
การที่&างานข้องแอนดรอยด�มี�พ*2นฐานอย4/บนระบบล�น-กซ� เคอร�เนล (Linux Kernel) ซ��งใชั� Android SDK (Software Development Kit) เป็�นเคร*�องมี*อส&าหร"บการพ"ฒนาแอพพล!เคชั"นบนระบบป็ฏิ!บ"ต์!การ Android และใชั�ภาษา Java ในการพ"ฒนา
สถืาป็8ต์ยกรรมีข้องแอนดรอยด� (Android Architecture) น"2นถื4กแบ/งออกเป็�นล&าด"บชั"2น ออกเป็�น4ชั"2น
Android Architecture
Android Architecture Diagram
C / C++
Java
Applicati on Layer
ชั"2นน�2จะเป็�นชั"2นที่��อย4/บนส-ดข้องโครงสร�างสถืาป็8ต์ยกรรมี Android ซ��งเป็�นส/วนข้องแอพพล!เคชั"นที่��พ"ฒนาข้�2นมีาใชั�งาน เชั/น แอพพล!เคชั"นร"บ/ส/งอ�เมีล�, SMS, ป็ฏิ!ที่!น, แผนที่��, เว�บเบราเซอร�, รายชั*�อผ4�ต์!ดต์/อ เป็�นต์�น ซ��งแอพพล!เคชั"นจะอย4/ในร4ป็แบบข้องไฟล� .apk
Applicati on Framework Layer• Activity Manager: เป็�นต์"วจ"ดการเก��ยวก"บก!จกรรมีที่"2งหมีดใน Life
cycle ข้องการพ"ฒนา Android Applications
• Content Providers: เป็�นส/วนที่��ใชั�ควบค-มีการเข้�าถื�งข้�อมี4ลที่��มี�การใชั� งานร/วมีก"น (Share data) ระหว/าง Applications ที่��แต์กต์/างก"น เชั/น ข้�อมี4ลผ4�
ต์!ดต์/อ (Contact), ร4ป็ภาพ• Telephony Manager: เป็�นต์"วจ"ดการเก��ยวก"บการโที่รและการเข้�าถื�ง
ข้�อมี4ลการใชั�งานการโที่ร (voice calls, access voice calls, telephony applications ).
• Location Manager: เป็�นส/วนที่��จ"ดการเก��ยวก"บค/าต์&าแหน/งข้อง เคร*�องอ-ป็กรณ์�พกพาเคล*�อนที่�� (GPS)
• Resource Manager: เป็�นส/วนที่��จ"ดการข้�อมี4ลต์/างๆ ที่��ไมี/ใชั/ส/วนข้อง โค�ดโป็รแกรมี เชั/น ร4ป็ภาพ, localized strings, layout ซ��งจะอย4/ในไดเร�คที่อร�
res
• View System : เป็�นส/วนที่��ใชั�ในการควบค-มีการที่&างานส&าหร"บการ สร�างแอพพล!เคชั"น เชั/น lists, grids, text boxes, buttons และ embeddable web
browser
• Notification Manager: เป็�นส/วนที่��ควบค-มีอ�เวนต์� (Event) ต์/างๆ ที่�� แสดงบนแถืบสถืานะ (Status bar) เชั/น ในกรณ์�ที่��ได�ร"บข้�อความีหร*อสายที่��
ไมี/ได�ร"บและการแจ�งเต์*อนอ*�นๆ เป็�นต์�น
Applicati on Framework Layer
Library LayerAndroid ได�รวบรวมีกล-/มีข้องไลบราร�ต์/างๆ ที่��ส&าค"ญและมี�ความีจ&าเป็�นเอาไว�
มีากมีาย เพ*�ออ&านวยความีสะดวกให�ก"บน"กพ"ฒนาและง/ายต์/อการพ"ฒนา โป็รแกรมี โดยต์"วอย/างข้องไลบราร�ที่��ส&าค"ญเชั/น
• System C library: เป็�นกล-/มีข้องไลบราร�มีาต์รฐานที่��อย4/บนพ*2นฐานข้องภาษา C ไลบราร� (libc)
ส&าหร"บ embedded system ที่��มี�พ*2นฐานมีาจาก Linux
• Media Libraries: เป็�นกล-/มีการที่&างานมี"ลต์!มี�เด�ย เชั/น MPEG4, H.264, MP3, AAC, AMR, JPG, PNG
• Surface Manager: เป็�นกล-/มีการจ"ดการร4ป็แบบหน�าจอ การวาดหน�าจอ• 2D/3D library: เป็�นกล-/มีข้องกราฟ<กแบบ 2 มี!ต์! หร*อ SGL (Scalable Graphics Library) และแบบ 3 มี!ต์!
หร*อ OpenGL
• FreeType: เป็�นกล-/มีข้องบ!ต์แมีป็ (Bitmap) และเวคเต์อร� (Vector) ส&าหร"บการเรนเดอร� (Render) ภาพ• SQLite: เป็�นกล-/มีข้องฐานข้�อมี4ล โดยน"กพ"ฒนาสามีารถืใชั�ฐานข้�อมี4ลน�2เก�บข้�อมี4ลแอพพล!เคชั"น
ต์/างๆ ได�• Browser Engine: เป็�นกล-/มีข้องการแสดงผลบนเว�บเบราเซอร�โดยอย4/บนพ*2นฐานข้อง Webkit ซ��งจะ
มี�ล"กษณ์ะคล�ายก"บ Google Chrome
Linux Kernel Layer ระบบ Android น"2นถื4กสร�างบนพ*2นฐานข้อง
ระบบป็ฏิ!บ"ต์!การ Linux โดยในชั"2นน�2จะมี�ฟ8งก�ชั"นการที่&างานหลายๆ ส/วน แต์/โดยส/วนมีากแล�วจะเก��ยวข้�องก"บฮาร�ดแวร�โดยต์รง เชั/น การจ"ดการหน/วยความีจ&า (Memory Management) การจ"ดการโพรเซส (Process Management) การเชั*�อมีต์/อเคร*อข้/าย (Networking) เป็�นต์�น
Quiz• ระบบ Android น"2นถื4กสร�างบนพ*2นฐานข้องระบบป็ฏิ!บ"ต์!การ
อะไร?• Android Architecture มี�ก�� Layer และมี� Layer อะไรบ�าง?• Android Runtime อย4/ใน Layer อะไรข้อง Android
Architecture?• อะไรเป็�นต์"วจ"ดการก!จกรรมี (Activity) ที่"2งหมีดใน Life cycle
และต์"วการก!จกรรมี (Activity) อย4/ใน Layer อะไรข้อง Android Architecture?
• Surface Manager ใชั�ที่&าอะไรและอย4/ใน Layer อะไร?• Display Driver อย4/ใน Layer อะไร?
Thank