Công nghệ Android

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xây dựng hệ thống nhận dạng và dịch trên thiết bị di động (Trang 31 - 35)

2.2.1. Giới thiệu về hệ điều hành android

Tháng 7/2005 Google mua lại công ty phát triển phần mềm Android. Sau hơn 2 năm âm thầm phát triển, Google liên kết với các tập đoàn và công ty lớn danh tiếng trên thế giới dưới danh hiệu "Open Handset Alliance" (OHA) cùng nhau sáng tạo và phát triển công nghệ phần mềm "Android" cho các loại điện thoại di động smartphone với một thị trường rất rộng lớn (3 tỷ máy) để cạnh tranh với những đối thủ lớn như Symbian, Microsoft, Palm...

Hình 2.6. Các thành viên của "Liên minh di động mở"

http://hi-android.info

Từ khi công bố, Android[5,16] đã là hệ điều hành điện thoại di động mở nguồn mở miễn phí do Google phát triển dựa trên nền tảng mã nguồn mở Linux OS (Kernel 2.6) cho máy di động và những phần mềm trung gian (middleware) để hỗ trợ các ứng dụng mà người sử dụng cần đến. Do đặc điểm của Android là bản quyền mã nguồn mở của nó rất thông thoáng (dựa trên nền tảng bản quyền của Apache V 2.0) nên bất kỳ một hãng sản xuất phần cứng nào cũng đều có thể tự do sử dụng hệ điều hành Android cho thiết bị của mình, miễn là các thiết bị ấy đáp ứng được các tiêu chuẩn cơ bản do Google đặt ra (có cảm ứng chạm, GPS, 3G,...). Các nhà sản xuất có thể tự do thay đổi phiên bản Android trên máy của mình một cách tự do mà không cần phải xin phép hay trả bất kì khoản phí nào nhưng phải đảm bảo tính tương thích ngược (backward compatibility) của phiên bản chế riêng đó[20].

Những tính năng cơ bản hỗ trợ trên nền tảng Android[5,16]:

- Ứng dụng framework cho phép tái sử dụng và thay thế các thành phần. - Máy ảo Dalvik được thiết kế phù hợp để chạy trên các thiết bị di động. - Trình duyệt web được tích hợp dựa trên mã nguồn mở WebKit.

- Các thư viện đồ họa 2D, 3D mạnh mẽ và tối ưu. - Hệ quản trị cơ sở dữ liệu gọn nhẹ SQLite.

- Hỗ trợ các định dạng âm thanh phổ biến, video, và các định dạng hình ảnh quen thuộc như MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF. - Hỗ trợ GSM, Bluetooth, EDGE, 3G và WiFi.

- Hỗ trợ camera, GPS, la bàn.

Đặc biệt Google phát triển Android SDK cung cấp các công cụ và bộ thư viên các hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lập trình java.

Hệ điều hành Android ra đời đã tạo nên một cuộc cách mạng công nghệ thực sự, cơ chế nguồn mở tạo ra nhiều thách thức và cơ hội cho những nhà phát triển ứng dụng; đồng thời mang lại cho người dùng điện thoại sự cảm nhận khác biệt về 1 chiếc Smartphone, chưa đầy 2 năm kho phần mềm cho Android đã lên đến còn số hơn 30 nghìn ứng dụng. Được nhiều tập đoàn công nghệ hàng đầu tham gia phát triển, nền tảng này ngày càng nhiều tích năng nổi trội và đầy sáng tạo. Phiên bản hệ điều hành Android mới nhất là 4.0 (tính đến ngày 30/08/2011). 2.2.2. Kiến trúc hệ thống

Kiến trúc Android[5,16,18] bao gồm các tầng và các thành phần trong đó. Tầng sẽ sử dụng các dịch vụ cung cấp bởi các tầng dưới. Android được chia thành 4 tầng: tầng nhân linux, tầng Libraries và Android Runtime, tầng Application Framework, tầng Application. Các thành phần trong hệ điều hành Android được viết bằng cả C/C ++ và Java.

Tầng hạt nhân linux

Hệ điều hành android phát triển dựa trên nhân linux (Linux kernel 2.6) và được cải tiến nhiều để phù hợp với các hạn chế đặc trung của điện thoại di động như hạn chế về bộ vi xử lý, dung lượng bộ nhớ. Tầng này bao gồm những dịch vụ hệ thống chủ yếu như quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (sercurity), quản lý tiến trình (process). Bộ nhân làm nhiệm vụ như một lớp trung gian kết nối phần cứng thiết bị và phần ứng dụng. Các thành phần chủ yếu bao gồm:

- Display Driver: Điều khiển việc hiển thị và thu nhận những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng…).

- Camera Driver: Điều khiển hoạt động của camera.

- Bluetooth Driver: Điều khiển thiết bị thu và phát Bluetooth. - USB Driver: Quản lý hoạt động của các cổng USB.

- Keypad Driver: Điều khiển bàn phím.

- Wifi Driver: Điều khiển thiết bị thu và phát wifi.

- Binder IPC Driver: Có nhiệm vụ kết nối và liên lạc với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện.

- M-System Driver: Quản lý việc đọc ghi…lên các thiết bị nhớ. - Power Madagement: Giám sát việc tiêu thụ điện năng.

Tầng Libraries và Android Runtime

- Phần Libraries gồm nhiều thư viện viết bằng C/C++ được biên dịch đặc biệt cho kiến trúc phần cứng được sử dụng bởi điện thoại. Một số thư viện chủ yếu như:

 Thư viện hệ thống: dựa trên chuẩn C, sử dụng chỉ bởi hệ điều hành.  Thư viện Media: hỗ trợ việc phát và ghi các định dạng âm thanh, hình

ảnh, video thông dụng.

 Thư viện web: được sử dụng để xây dựng phần mềm duyệt web, hỗ trợ các ứng dụng nhúng khác.

 Thư viện SQLite: hệ cơ sở dữ liệu tinh gọn trên Android.

- Phần Android Runtime chứa các thư viện để chương trình viết bằng ngôn ngữ Java chạy được. Phần này gồm 2 bộ phận tương tự như mô hình chạy Java trên máy tính: thứ nhất là các thư viện lõi (chứa các lớp java io, collections, file access), thứ 2 là máy ảo Dalvik do Google phát triển.

JNI: Java Native Interface (Tương tự khái niệm Application Programming Interface).

Java Native Interface: là một bộ framework cho phép mã lệnh viết bằng Java chạy trên máy ảo java có thể gọi hoặc được gọi bởi một ứng dụng viết bằng

native code (Ứng dụng được viết cho một phần cứng cụ thể và trên một hệ điều

hành cụ thể) hoặc những bộ thư viện viết bằng C, C++, Assembly.

Bằng cách sử dụng JNI, Android cho phép các ứng dụng chạy trên máy ảo Dalvik có thể sử dụng những phương thức được viết bằng các ngôn ngữ cấp thấp như: C, C++, Assembly. Qua đó các nhà phát triển ứng dụng có thể xây dựng ứng dụng dựa trên các bộ thư viện viết bằng C, C++, Assembly nhằm tăng tốc độ thực thi của ứng dụng hoặc sử dụng những tính năng mức thấp mà ngôn ngữ Java không hỗ trợ.

Tầng Application Framework

Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển ứng dụng mở. Các nhà phát triển ứng dụng dễ dàng sử dụng framework này để tạo ra các ứng dụng một cách nhanh chóng và sáng tạo. Framework được viết bằng Java, có khả năng sử dụng chung để tiết kiệm tài nguyên. Nền tảng mở này giúp cho các hãng sản xuất điện thoại có thể tùy biến để phù hợp với cấu hình điện thoại của hãng, đồng thời giúp cho người lập trình có thể sử dụng các hàm API ở tầng trên mà không cần phải hiểu rõ cấu trúc bên dưới. Các nhà phát triển ứng dụng được tự do sử dụng các tính năng cao cấp của thiết bị phần cứng như: thông tin định vị địa lý, khả năng chạy dịch vụ dưới nền, thiết lập đồng hồ báo thức, thêm notification vào status bar của màn hình thiết bị…, đồng thời được phép sử dụng đầy đủ bộ API được dùng trong các ứng dụng tích hợp sẵn của Android.

Kiến trúc ứng dụng của Android được thiết kế nhằm mục đích đơn giản hóa việc tái sử dụng các component. Qua đó bất kì ứng dụng nào cũng có thể công bố các tính năng mà nó muốn chia sẻ cho các ứng dụng khác (VD: Ứng dụng email có muốn các ứng dụng khác có thể sử dụng tính năng gởi mail của nó). Phương pháp tương tự cho phép các thành phần có thể được thay thế bởi người sử dụng. Tầng này bao gồm một tập các services và thành phần sau:

- Một tập đa dạng các đối tượng View được dùng để xây dựng ứng dụng như: list, grid, text box, button. Thậm chí có thể nhúng một trình duyệt web vào ứng dụng.

- Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng khác hoặc chia sẽ dữ liệu của chúng.

- Resource Manager: Cung cấp khả năng truy xuất các tài nguyên non-code như hình ảnh hoặc file layout.

- Activity Manager: Giúp quản lý vòng đời của một ứng dụng.

Tầng Application

Tầng giao tiếp với người dùng bao gồm các ứng dụng cơ bản được cài đặt đi liền với hệ điều hành (như gọi điện-phone, quản lý danh bạ - contacts, duyệt web – browser...) và các ứng dụng người dùng cài đặt thêm vào (như game, từ điển...).

Google cung cấp một công cụ phát triển phần mềm gọi là Android SDK. Android SDK cung cấp các công cụ và API cần thiết để bắt đầu phát triển các ứng dụng trên nền tảng Android bằng cách sử dụng ngôn ngữ lập trình Java. Các file ứng dụng để cài đặt trên hệ điều hành android có đuôi .apk.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xây dựng hệ thống nhận dạng và dịch trên thiết bị di động (Trang 31 - 35)

Tải bản đầy đủ (PDF)

(65 trang)