Kiến trúc nền tảng Android – ZmikiSoft

(ZmikiSoft.com) – Kiến trúc nền tảng Android
Chúng ta đã biết Android là một hệ điều hành nguồn mở dựa trên nhân Linux, được xây dựng theo ngăn xếp ( stack ) cho nhiều mảng rộng của thiết bị và các yếu tố hình thức nhất định. Nhìn vào hình ảnh minh họa ở trên chúng ta sẽ dễ nhìn nhận và hiểu hơn về kiểu thiết kế này. Mỗi ngăn xếp ( System Apps, Java API Framework .. ) sẽ chứa một mảng các thành phần bên trong.

Chúng ta sẽ đi khám phá về một vài stack trong sơ đồ trên ( từ mức thấp đến mức cao ) :

  • The Linux Kernel

Đây chính là nền tảng của Android, hệ quản lý được tăng trưởng dựa trên nhân của hệ quản lý Linux. Việc sử dụng nhân Linux được cho phép Android có nhiều đặc tính bảo mật thông tin và được cho phép những đơn vị sản xuất thiết bị tăng trưởng những bộ điều khiển và tinh chỉnh ( driver ) cho thiết bị tốt nhất .

  • Hardware Abstraction Layer (HAL)

Đây là ngăn có chức năng cung cấp các chuẩn giao tiếp phần mềm với phần cứng của thiết bị, giúp các ứng dụng trên Android có thể sử dụng được các phần cứng như camera, bluetooth… HAL chứa nhiều thư viện, nhiều module khác nhau, các thư viện này có chức năng điều khiển một phần cứng cụ thể. Ví dụ: module camera sẽ chịu trách nhiệm điều khiển các tác vụ liên quan đến camera gắn trên điện thoại/ máy tính bảng, khi ứng dụng chúng ta viết cần camera thì module camera sẽ được gọi để giúp ứng dụng của chúng ta thực hiện chức năng đó.

  • Android Runtime

Với những thiết bị chạy hệ điều hành quản lý Android phiên bản 5.0 trở lên, thì mỗi ứng dụng sẽ chạy riêng một tiến trình với một instance ( đơn cử ) của Android Run Time. ART được viết để chạy được trên nhiều máy ảo ở Lever thấp bằng việc thực thi những file DEX. ART sẽ giúp những ứng dụng trên Android chạy nhanh hơn ( tất cả chúng ta sẽ thấy rõ điều này khi sử dụng Android 5.0 trở lên và Android phiên bản nhỏ hơn, cùng thông số kỹ thuật phần cứng ). Đặc biệt khi bạn viết những ứng dụng nhu yếu nhiều tương hỗ từ phần cứng như giải quyết và xử lý ảnh cần bộ nhớ, camera, vận tốc CPU thì bạn sẽ thấy sự độc lạ đáng kể cở nào .
Ngoài ra ART còn nhiều tương hỗ rất tốt khác như : tối ưu hóa việc gom rác, giúp mạng lưới hệ thống giải phóng nhanh những phần nhớ không thiết yếu. Hỗ trợ debug ứng dụng tốt hơn những phiên bản cũ, báo chi tiết cụ thể những lỗi crash ứng dụng …

  • Native C/C++ Libararies

Nhiều thành phần mạng lưới hệ thống nhân Android và những dịch vụ như ART và HAL như nêu ở trên được thiết kế xây dựng từ native code, những dịch vụ này được viết bằng ngôn từ C / C + +. Android cung ứng những Java Framework API để giúp ứng dụng viết bằng Java hoàn toàn có thể sử dụng được nhưng thư viện / dịch vụ Native này. Ví dụ : bạn hoàn toàn có thể truy vấn vào OpenGL ES nhờ vào Java OpenGL API để tương hỗ việc vẽ và đa hình những công dụng đồ họa 2D / 3D trong ứng dụng của bạn .

Nếu viết một ứng dụng bằng ngôn ngữ C/C++ bạn có thể sử dụng Android NDK thay vì Android SDK để truy cập một số thư viện native này một cách trực tiếp. Việc này sẽ giúp ứng dụng tận dụng được tối đa sức mạnh phần cứng, giúp ứng dụng chạy nhanh hơn như các ứng dụng vể xử lý camera, xử lý video, truyển nhận video…

  • Java API Framework

Đây là ngăn chứa những tính năng của Android mà bạn hoàn toàn có thể sử dụng bằng những API viết bằng ngôn từ Java. Những API này được kiến thiết xây dựng thành những khối ( block ) thiết yếu cho việc thiết kế xây dựng ứng dụng của bạn, giúp bạn tạo ứng dụng một cách đơn thuần và đơn thuần trong việc sử dụng lại code. Cụ thể như :

  1.  Bộ quản lý tài nguyên: cung cấp cách để truy cập vào vị trí của strings, graphics, các file layout bạn viết bằng XML…
  2. Quản lý notification: giúp các ứng dụng có thể hiện thị các màn hình thông báo trên thanh statuc bar của thiết bị.
  3. Bộ quản lý Activity: quản lý các vòng đời của Activity trong các ứng dụng và cung cấp những chuyển đổi màn hình trong ngăn xếp ( stack – khi tạo 1 activity nó sẽ được chứa vào ngăn xếp, mỗi ứng dụng khi chạy sẽ có một ngăn xếp để chứa các Activity của nó ).
  4. Content provider: cung cấp các cách chia sẽ dữ liệu, lưa trữ và xử lý dữ liệu…
  • System Apps

Đây là tầng chứa những ứng dụng cho người dùng cuối sử dụng, như những ứng dụng gọi điện, những ứng dụng của bạn khi thiết kế xây dựng xong và setup lên thiết bị nó sẽ nằm ở tầng này để người dùng sử dụng .

Ứng dụng cần chức năng nào, cần yêu cầu phần cứng nào sẽ gọi các tầng dưới hơn để yêu cầu và thực hiện.

Khóa học lập trình Android
Khóa học lập trình Java
Khóa học lập trình iOS
Khóa học lập trình Objective-C/Swift