โครงสร้างของระบบปฏิบัติการแอนดรอยด์
จะสังเกตได้ว่า มีการแบ่งออกมาเป็นส่วนๆ ที่มีความเกี่ยวเนื่องกัน
โดยส่วนบนสุดจะเป็นส่วนที่ผู้ใช้งานทำการติดต่อโดยตรงซึ่งก็คือส่วนของ (Applications)
จากนั้นก็จะลำดับลงมาเป็นองค์ประกอบอื่นๆตามลำดับ
และสุดท้ายจะเป็นส่วนที่ติดต่อกับอุปกรณ์โดยผ่านทาง Linux Kernel โครงสร้างของแอนดรอยด์ พอที่จะอธิบายเป็นส่วนๆได้ดังนี้
Applications ส่วน Application หรือส่วนของโปรแกรมที่มีมากับระบบปฏิบัติการ
หรือเป็นกลุ่มของโปรแกรมที่ผู้ใช้งานได้ทำการติดตั้งไว้
โดยผู้ใช้งานสามารถเรียกใช้โปรแกรมต่างๆได้โดยตรง
ซึ่งการทำงานของแต่ละโปรแกรมจะเป็นไปตามที่ผู้พัฒนาโปรแกรมได้ออกแบบและเขียนโค้ดโปรแกรมเอาไว้
Application Framework เป็นส่วนที่มีการพัฒนาขึ้นเพื่อให้นักพัฒนาสามารถพัฒนาโปรแกรมได้สะดวก
และมีประสิทธิภาพมากยิ่งขึ้น
โดยนักพัฒนาไม่จำเป็นต้องพัฒนาในส่วนที่มีความยุ่งยากมากๆ เพียงแค่ทำการศึกษาถึงวิธีการเรียกใช้งาน
Application Framework ในส่วนที่ต้องการใช้งาน
แล้วนำมาใช้งาน ซึ่งมีหลายกลุ่มด้วยกัน ตัวอย่างเช่น
Activities Manager เป็นกลุ่มของชุดคำสั่งที่จัดการเกี่ยวกับวงจรการทำงานของหน้าต่างโปรแกรม(Activity)
Content Providers เป็นกลุ่มของชุดคำสั่ง
ที่ใช้ในการเข้าถึงข้อมูลของโปรแกรมอื่น
และสามารถแบ่งปันข้อมูลให้โปรแกรมอื่นเข้าถึงได้
View System เป็นกลุ่มของชุดคำสั่งที่เกี่ยวกับการจัดการโครงสร้างของหน้าจอที่แสดงผลในส่วนที่ติดต่อกับผู้ใช้งาน
(User Interface)
Telephony Manager เป็นกลุ่มของชุดคำสั่งที่ใช้ในการเข้าถึงข้อมูลด้านโทรศัพท์
เช่นหมายเลขโทรศัพท์ เป็นต้น
Resource Manager เป็นกลุ่มของชุดคำสั่งในการเข้าถึงข้อมูลที่เป็น
ข้อความ, รูปภาพ
Location Manager เป็นกลุ่มของชุดคำสั่งที่เกี่ยวกับตำแหน่งทางภูมิศาสตร์
ที่ระบบปฏิบัติการได้รับค่าจากอุปกรณ์
Notification Manager เป็นกลุ่มของชุดคำสั่งที่จะถูกเรียกใช้เมื่อโปรแกรม
ต้องการแสดงผลให้กับผู้ใช้งาน ผ่านทางแถบสถานะ(Status Bar) ของหน้าจอ
Libraries เป็นส่วนของชุดคำสั่งที่พัฒนาด้วย
C/C++ โดยแบ่งชุดคำสั่งออกเป็นกลุ่มตามวัตถุประสงค์ของการใช้งาน
เช่น Surface Manage จัดการเกี่ยวกับการแสดงผล, Media
Framework จัดการเกี่ยวกับการการแสดงภาพและเสียง, Open GL |
ES และ SGL จัดการเกี่ยวกับภาพ 3มิติ และ
2มิติ, SQLlite จัดการเกี่ยวกับระบบฐานข้อมูล เป็นต้น
Android Runtime จะมี Darvik
Virtual Machine ที่ถูกออกแบบมา เพื่อให้ทำงานบนอุปกรณ์ที่มี
หน่วยความจำ(Memmory), หน่วยประมวลผลกลาง(CPU) และพลังงาน(Battery)ที่จำกัด ซึ่งการทำงานของ Darvik
Virtual Machine จะทำการแปลงไฟล์ที่ต้องการทำงาน ไปเป็นไฟล์ .DEX
ก่อนการทำงาน เหตุผลก็เพื่อให้มีประสิทธิภาพเพิ่มขึ้นเมื่อใช้งานกับ
หน่วยประมวลผลกลางที่มีความเร็วไม่มาก ส่วนต่อมาคือ Core Libraries ที่เป็นส่วนรวบรวมคำสั่งและชุดคำสั่งสำคัญ โดยถูกเขียนด้วยภาษาจาวา (Java
Language)
Linux Kernel เป็นส่วนที่ทำหน้าที่หัวใจสำคัญ
ในจัดการกับบริการหลักของระบบปฏิบัติการ เช่น เรื่องหน่วยความจำ พลังงาน
ติดต่อกับอุปกรณ์ต่างๆ ความปลอดภัย เครือข่าย
โดยแอนดรอยด์ได้นำเอาส่วนนี้มาจากระบบปฏิบัติการลินุกซ์ รุ่น 2.6 (Linux 26. Kernel) ซึ่งได้มีการออกแบบมาเป็นอย่างดี