Android là một sofware stack cho các thiết bị di động bao gồm: một hệ điều hành, midleware và key application. Android SDK cung cấp các công cụ (tool) và APIs cần thiết để phát triển ứng dụng trên Android platform. Android platform sử dụng ngôn ngữ lập trình Java.
Nội dung [ Bài 1] WHAT IS ANDROID
I. Features
II. Android Architecture
III. Applications
IV. Applications Framework
V. Libraries
VI. Android Runtime
VII. Linux Kernel
I. Features
Application framework cho phép tái sử dụng và thay thế (replacement) các component.
Dalvik virtual machine optimize các thiết bị di động.
Integrated browser dựa trên mã nguồn mở
WebKit engine.
Optimized graphics xử lý đồ họa mạnh mẽ với thư viện 2D graphics, 3D dựa trên đặc tả OpenGL ES 1.0 (hardware acceleration optional).
SQLite lưu trữ cơ sở dữ liệu.
Media support hỗ trợ các media như: audio, video, và các định dạng hình ảnh như: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF.
GSM Telephony phụ thuộc vào phần cứng của thiết bị.
Bluetooth, EDGE, 3G, and WiFi phụ thuộc vào phần cứng của thiết bị.
Camera, GPS, compass, and accelerometer phụ thuộc vào phần cứng của thiết bị.
Rich development environment bao gồm một emulator thiết bị , các tool phục vụ cho debug, memory và performance profiling, và plugin cho Eclipse IDE.
II. Android Architectur
Sơ đồ dưới đây mô tả cấu trúc của hệ điều hành Android.
|
Cấu trúc của hệ điều hành Android. |
III. Applications
Các ứng dụng core của Android bao gồm: mail client, SMS program, calendar, maps, browser, contacts… Tất cả các ứng dụng được viết bằng ngôn ngữ Java
IV. Applications Famework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho developers khả năng xây dựng các ứng dụng vô cùng phong phú và sáng tạo. Developers có thể tự do tận dụng các thiết bị phần cứng, thông tin vị trí GPS, chạy các dịch vụ background, thiết lập hẹn giờ alarm, thêm các thông báo vào status bar...
Các nhà phát triển có thể truy cập vào cùng framework API được sử dụng bởi các ứng dụng core. Kiến trúc ứng dụng được thiết kế đơn giản nhằm tái sử dụng các thành phần; bất kỳ ứng dụng nào cũng có thể công bố capability của mình để các ứng dụng khác có thể sử dụng những capability đó tùy thuộc vào sự giới hạn về bảo mật được thực thi bởi framework.
Các thành phần chạy bên dưới của ứng dụng là một tập hợp các service và hệ thống bao gồm:
Views sử dụng để xây dựng các thành phần của ứng dụng, gồm có: list, grid, text box, button và web browser.
Content Providers cho phép truy cập vào dữ liệu của các ứng dụng khác (như Contacts) và chia sẽ dữ liệu giữa chúng.
Resource Manager cho phép truy cập vào các tài nguyên non-code như localized strings, graphics và các file layout.
Notification Manager cho phép tất cả các ứng dụng hiển thị các cảnh báo(alert) được custom trong status bar.
Activity Manager quản lý tất cả các vòng đời của ứng dụng và cung cấp một backstack chung.
V. Libraries
Android bao gồm một tập các thư viện C/C++ sử dụng bởi nhiều thành phần khác nhau của hệ điều hành Android. Những khả năng này được liên lạc(expose) với developers thông qua các framework của Android. Một số thư viện core như sau:
System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices.
Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications.
LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view.
SGL - the underlying 2D graphics engine.
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer.
FreeType - bitmap and vector font rendering.
SQLite - a powerful and lightweight relational database engine available to all applications.
VI. Android Runtime
Android bao gồm một tập các thư viện cơ bản để cung cấp hầu hết các chức năng sẵn có trong các thư viện core của ngôn ngữ lập trình JAVA.
Tất cả các ứng dụng Android đều chạy trong tiến trình(process) riêng của nó, với thể hiện (instance) riêng của nó của máy ảo Dalvik. Dalvik đã được viết để một thiết bị có thể chạy nhiều máy ảo một cách hiệu quả. Máy ảo Dalvik thực thi các file định dạng Dalvik Executable (.dex) được tối ưu hóa cho bộ nhớ tối thiểu. Máy ảo VM được đăng ký, và chạy các class được biên dịch bởi trình biên dịch ngôn ngữ Java đã được chuyển đổi thành các định dạng .dex bởi tool "dx".Máy ảo Dalvik dựa trên Linux Kernel cho các chức năng cơ bản như thread và quản lý bộ nhớ ở mức độ thấp.
VII. Linux Kernel
Android dựa trên Linux phiên bản 2.6 cho các dịch vụ hệ thống như: bảo mật, quản lý bộ nhớ, quản lý process, network stack và driver model. Kernel cũng hoạt động như là một tầng trừu tượng hóa(abstraction layer) giữa phần cứng và rest của software stack.
Read more ...