Thứ Hai, 23 tháng 8, 2010

Thứ Hai, 16 tháng 8, 2010

Android 01: Kiến trúc nền tảng Android

Ban đầu tôi định viết một bài về Android bao gồm các nội dung theo flow là What-Where-When-Why-How. Tôi đã đặt tay gõ rồi xóa đi vài lần. Lý do xóa là vì thấy những điều mình viết thật nông cạn và lan man. Thực ra thì toàn nói lại những gì người ta đã nói. Như vậy thì thật không cần thiết(right?).

Để biết Android là gì, bạn có thể đọc ở đây

Để biết Android đến từ đâu, từ bao giờ, bạn có thể đọc ở đây

Trong entry này, cái mà tôi quan tâm nhất chỉ là kiến trúc Android mà thôi. Kiến trúc Android gồm 4 phần chính, mô hình dưới đây sẽ cho ta cái nhìn tổng quan về kiến trúc Android. Nhân của Android được phát triển dựa vào Kernel Linux 2.6. Mỗi tầng trong kiến trúc Android hoạt động dựa vào tầng bên dưới nó.
  • Kernel Linux layer:
    • Dựa trên Kernel Linux version 2.6 bởi nó cung cấp các trình điều khiển các thiết bị phần cứng(driver), quản lý tiến trình, quản lý tài nguyên, bảo mật,... như sau:
      • Security system
      • Memory management
      • Process management
      • Network stack 
      • Driver model.
  • Libraries
    • Là các thư viện được viết bằng ngôn ngữ C/C++ sẽ được các developer phát triển ứng dụng android thông qua tầng Android Framework. Có thể kể ra đây một số thư viện quen thuộc với các lập trình viên như: 
      • Media Libraries – mở rộng từ PacketVideo’s OpenCORE. Hỗ trợ nhiều định dạng video và image phổ biến: MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
      • Surface Manager – quản lý việc hiển thị và kết hợp đồ họa 2D và 3D.
      • LibWebCore – dùng webkit engine cho việc render trình duyệt mặc định của HDH Android browser và cho dạng web nhúng (như HTML nhúng)
      • OpenGL|ES – thư viện đồ họa 2D và 3D
      • SQLite – quản lý database của ứng dụng
  • Runtime Android
    •  gồm một tập hợp các thư viện Java Core.
    • Máy ảo Dalvik thực thi các file định dạng .dex (Dalvik Excutable)
    • Mỗi ứng dụng Android chạy trên tiến trình riêng của máy ảo Dalvik. Dalvik được viết để chạy nhiều máy ảo cùng một lúc một cách hiệu quả trên cùng một thiết bị.
  • Application Framework
    • Google xây dựng cho các developer để phát triển các ứng dụng của họ trên Android chỉ bằng cách gọi các API.
      • View UI - để xây dựng layout của ứng dụng bao gồm: list view, text field, button, dialog, form …
      • Content Providers - cho phép các ứng dụng truy cập dữ liệu từ các ứng dụng khác hoặc để chia sẻ dữ liệu của riêng ứng dụng.
      • Resource Manager - cung cấp cách thức truy cập đến non-code resources như các asset, graphic, image, music, video …
      • Notification Manager - cho phép tất cả các ứng dụng hiển thị thông báo của mình trên hệ điều hành.
      • Activity Manager - quản lý vòng đời của các ứng dụng.
  • Applications 
    • Là các ứng dụng mà lập trình viên phát triển như Browser, Media,...

Chỉ cần dành ra khoảng 15 phút để xem clip dưới đây thôi, ta sẽ có được cái nhìn tổng quan về kiến trúc của Android.
 

Để viết ứng dụng Android ta chỉ cần tập trung vào tầng Application Framework các tầng khác có thể biết sơ sơ cũng được. he he

Nếu vẫn muốn đọc thêm nữa về kiến trúc Android, bạn có thể click vào đây

Thứ Sáu, 6 tháng 8, 2010

Welcome!

Chào bạn,

Chào mừng bạn đã (tình cờ)ghé thăm blog của tôi.

Mục đích của tôi khi viết blog là...rèn luyện kỹ năng viết, kỹ năng bày tỏ, diễn đạt. Tôi mới bắt đầu viết blog và cũng không(chưa) có ý định public blog của mình. Vì vậy mà blog này như là một tệp note lại những suy nghĩ, cảm xúc, nó còn có tác dụng nhắc nhở tôi làm những việc mà tôi dự định, những việc mà tôi muốn làm. Ví dụ như đọc một cuốn sách và viết một bài review về cuốn sách đó chẳng hạn.

Tài chính và Công nghệ thông tin là hai chủ đề mà tôi sẽ hướng tới. Đây là hai chủ đề mà tôi thấy mình có hứng thú nhất. Tôi thích IT, vì đó cũng là nghề nghiệp, công việc của tôi. Tài chính là vấn đề mà tôi rất quan tâm và tôi cũng chắc không chỉ có mình tôi mới quan tâm tới vấn đề này. Thực lòng mà nói thì tôi cũng không có nhiều kinh nghiệm hay trải nghiệm gì nhiều nhưng nếu không viết về nó để tạo động lực thì chắc tôi sẽ không tiến bộ.

Blog này là nơi tôi sẽ ghi lại những kinh nghiệm, những cảm xúc và trải nghiệm của tôi về cuộc sống. Có lẽ nhu cầu chia sẻ để được chia sẻ[từ các comment của các bạn] là một nhu cầu tự nhiên của con người, trong đó có tôi. Tôi luôn thấy mình trẻ, đôi khi tôi nghĩ về tương lai, khi đó tôi sẽ là một bà lão nhưng điều tôi muốn là tôi sẽ trở thành một bà lão có tâm hồn trẻ trung và hài hước. Blog là của riêng tôi, hiện tại tôi chỉ muốn nó là của tôi nhưng tôi cũng hiểu rằng chẳng có gì là riêng tư tuyệt đối trên internet. Vì vậy, tôi cứ nên viết một lời chào. Chào bạn!

Hy vọng sẽ học hỏi và trao đổi được với các bạn trong tương lai.