Android Architect

Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown below in the architecture diagram.

android_architecture

Linux kernel

At the bottom of the layers is Linux – Linux 2.6 with approximately 115 patches. This provides basic system functionality like process management, memory management, device management like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware.

=> Căn phòng nhỏ này chứa những trình điều khiển (drivers) dùng để điều khiển phần cứng như Keypad, Wifi, Camera, Audio, Màn hình… Phòng này có thể coi như là “Trung tâm chỉ huy” của ngôi nhà. Linux Kernel nắm giữ những gì là cốt lõi của hệ điều hành. Các giải thuật quản lí tài nguyên, chuyển đổi qua lại giữa các tác vụ, phân chia quyền, giải quyết tranh chấp… cũng có thể xem nó như là “phòng công tác đối ngoại” vì nó đảm nhận việc tương tác với thiết bị ngoại vi. Nó chính là nhân Linux 2.6.

Libraries

On top of Linux kernel there is a set of libraries including open-source Web browser engine WebKit, well known library libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video, SSL libraries responsible for Internet security etc.

=> Căn phòng này giống như nhà bếp của ngôi nhà. Tất cả mọi người ở phòng Applications hay Application Framework muốn làm việc thì phải lấy một thứ gì đó trong phòng này cho vào “bụng” thì mới làm việc được. Nghĩa là khi ứng dụng chạy sẽ gọi các hàm nằm trong thư viện này. Các lập trình viên cũng sẽ dùng những hàm trong các thư viện này để phát triển ứng dụng.

Ví dụ: Media Framework sẽ được gọi khi các chương trình có liên quan đến Media như nghe nhạc, xem ảnh. Hay WebKit sẽ liên quan đến Internet, SQLite liên quan đến cơ sở dữ liệu… Một chương trình có thể phải cần nhiều thư viện trong căn phòng này.

Android Runtime

This is the third section of the architecture and available on the second layer from the bottom. This section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android.

The Dalvik VM makes use of Linux core features like memory management and multi-threading, which is intrinsic in the Java language. The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine.

The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.

=> Có thể nói rằng căn phòng ‘Android runtime’ là một nơi khá đặc biệt. Nó chỉ có 2 người: Dalvik Virtual Machine và những thư viện nhân (core libraries). Những thư viện cơ bản của hệ điều hành, chỉ cung cấp cho hệ điều hành.
Trong Google Android, có một công cụ được gọi là ‘DX’ nó sẽ chuyển những ứng dụng thành dạng Dalvik Executable (.dex). Đây chính là những file đặc biệt dùng cho Dalvik Virtual Machine. Định dạng này cũng được tạo ra nhằm làm tối thiểu kích thước chương trình, làm cho nó tương thích với thiết bị di động. Dalvik Virtual Machine là một chương trình được viết để Android có thể chạy đa nhiệm nhanh và mượt.

Application Framework

The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications.

=> Căn phòng này gồm những người có quyền cao hơn những người trong phòng Applications. Những người này sẽ có những nhiệm vụ “quản lí” những người ở phòng Applications.

Ví dụ: Content Provider cho phép chia sẻ thông tin giữa các ứng dụng, Resource Mananger: quản lí các vấn đề liên quan đến đồ họa, các file layout.., Notification Manager quản lí các cảnh báo: tiếng bíp, đèn led… Activity Manager: quản lí hoạt động của các ứng dụng.

Các framework này giống như là bộ ứng dụng sườn của Android. Có rất nhiều nhân vật trong căn phòng này công việc của họ các bạn cũng có thể đoán ra thông qua tên gọi của họ. Mà đa số họ đều là Quản Lí (Manager) hày Nhà cung cấp (Provider) nên “không dám bàn nhiều”.

Applications

You will find all the Android application at the top layer. You will write your application to be installed on this layer only. Examples of such applications are Contacts Books, Browser, Games etc.

=> Căn phòng đâu tiên bạn bước vào khi đến với ngôi nhà Android. Tất cả những người trong căn phòng này chính là các ứng dụng mà bạn có trong thiết bị chạy Android. Là những thứ mà bạn dễ dàng thấy được trên màn hình: Phone, Contact, các trò chơi, chương trình bạn cài vào… và một số ứng dụng chạy ngầm mà bạn không thấy được.

Hầu hết ứng dụng được viết bằng Java (hoặc C). Có thể ví căn phòng này giống như căn phòng riêng của bạn, bạn có thể cho ai đó vào ở (cài đặt ứng dụng) hay nếu “không ưa” ai đó thì có thể “tiễn” họ đi (gỡ bỏ ứng dụng) tùy thích. Những phòng còn lại bạn không có quyền làm như thế.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s