I. ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
4. Cơ sở lý thuyết
4.4. Ứng dụng trên di động với Android
Android là phần mềm mã nguồn mở cho các thiết bị di động có hệ điều hành, các phần mềm… Android SDK cung cấp các công cụ và bộ API cần thiết cho các nhà phát triển với ngôn ngữ Java.
Đặc trưng cơ bản:
• Application framework cho phép tái sử dụng và di chuyển các thành phần
• Dalvik virtual machine tối ưu hóa cho thiết bị di động
• Integrated browser dựa trên engine mã nguồn mở WebKit
• Optimized graphics cung cấp thư viện đồ họa 2D, 3D dựa trên OpenGL ES
1.0
• SQLite cho việc thao tác, lưu trữ dữ liệu có cấu trúc
• Media support cho audio, video, và các định dạng ảnh (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF)
• GSM Telephony (phụ thuộc phần cứng)
• Bluetooth, EDGE, 3G, and WiFi (phụ thuộc phần cứng)
• Camera, GPS, compass, and accelerometer (phụ thuộc phần cứng)
• Rich development environment bao gồm bộ mô phỏng, công cụ cho việc
gỡ lỗi, bộ nhớ và plugin cho Eclipse IDE
Figure 5: Các thành phần chính của hệ điều hành Android
Applications
Android bao gồm tập lõi ứng dụng bao gồm email, SMS, calendar (lịch), maps, browsers, contacts (liên lạc)… Mọi ứng dụng đều được viết dưới nền tảng ngôn ngữ Java.
Application Framework
Dưới mỗi ứng dụng là các dịch vụ hệ thống, bao gồm:
• Tập hợp phong phú các Views để có thể xây dựng một ứng dụng, bao gồm list, grid, text boxes, buttons và nhúng vào các trình duyệt.
• Content Providers cho phép các ứng dụng có thể truy cập dữ liệu từ các ứng
dụng khác, ví dụ như Contacts, hoặc chia sẻ dữ liệu.
• Resource Manager, cung cấp truy cập đến các tài nguyên thông qua các file
lay out bao gồm các giá trị các string, graphics, và các file ảnh, video…
• Notification Manager cho phép mọi ứng dụng hiển thị dưới dạng
alerts(cảnh báo) dưới thanh status (thanh trạng thái).
• Activity Manager quản lý vòng đời của các ứng dụng và cung cấp điều
hướng.
Libraries
Android gồm có một tập các thư viện C/C++ được sử dụng cho rất nhiều thành phần hệ thống Android. Dưới đây là các thành phần chính:
• System C library - thư viện C chuẩn, nhúng trong các thiết bị Linux
• Media Libraries - dựa trên PacketVideo's OpenCORE; thư viện hỗ trợ chơi
và ghi lại các file audio và video, và các file ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG.
• Surface Manager - quản lý truy cập đến các tầng đồ họa 2D, 3D từ nhiều ứng dụng đồng thời.
• LibWebCore - hỗ trợ cho nhúng vào các trình duyệt web.
• SGL – engine cho đồ họa 2D.
• 3D libraries – thư viện 3D có openGL.
• FreeType - hiển thị bitmap và vector
• SQLite – Engine dữ liệu quan hệ nhẹ và hiệu quả cho mọi ứng dụng
Android Runtime
Android bao gồm tập các thư viện cung cấp các chức năng chính dựa trên nền tảng ngôn ngữ Java. Mỗi ứng dụng Android application tự chạy tiến trình của nó, là một thể hiện của máy ảo Dalvik. Dalvik viết cho các thiết bị có thẻ chạy nhiều máy ảo VMs đồng thời một cách hiệu quả.
Linux Kernel
Android phụ thuộc vào Linux phiên bản 2.6 cho phần lõi hệ thống như bảo mật, quản lý bộ nhớ, quản lý tiến trình, mạng… Đồng thời kernel (nhân) cũng hoạt động như tầng abstract giữa phần cứng và phần mềm.