CHƯƠNG 1 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID 1. Lịch sử ra đời Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng. Ban đầu, Android được phát triển bởi Android, Inc. Với sự hỗ trợ tài chính của Google và sau này được chính Google mua lại vào năm 2005 và hệ điều hành Android đã ra mắt vào năm 2007.
Chiếc điện thoại đầu tiên chạy Android là HTC Dream được bán vào ngày 22 tháng 10 năm 2008. Biểu trưng của hệ điều hành Android mới là một con robot màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ. Chính mã nguồn mở cùng với giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên được điều chỉnh và phân phối Android một cách tự do. Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới.
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày. Tháng 10 năm 2012, đã có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google Play (cửa hàng ứng dụng chính của Android) ước tính khoảng 25 tỉ lượt. Hiện nay con số này đã giảm xuống do sự ảnh hướng lớn của iOS từ Apple và một phần nhỏ của Windows Phone, tuy nhiên Android vẫn dẫn đầu thị phần. Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành trước.
Mỗi bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái, theo tên của một món ăn tráng miệng; ví dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ có kem) tiếp nối bằng phiên bản 1. Phiên bản mới nhất hiện nay là 9.0 Pie ra mắt vào tháng 8 năm 2018. Vào năm 2010, Google ra mắt loạt thiết bị Nexus một dòng sản phẩm bao gồm điện thoại thông minh và máy tính bảng chạy hệ điều hành Android, do các đối tác phần cứng sản xuất. HTC đã hợp tác với Google trong chiếc điện thoại thông minh Nexus đầu tiên, Nexus One.
Kể từ đó nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, như điện thoại Nexus 4 và máy tính bảng Nexus 10, lần lượt do LG và Samsung sản xuất. Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ lực của mình, với những tính năng phần cứng và phần mềm mới nhất của Android.[1] Khoa Tùng Dương - CT1901C – Xây dựng ứng dụng quản lý bàn ăn trên thiết bị di động android 4 Luan van 1. Giao diện Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử dụng cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt, chạm, kéo giãn và thu lại để xử lý các đối tượng trên màn hình. Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm khởi đầu với các thông tin chính trên thiết bị, tương tự như khái niệm desktop trên máy tính để bàn.
Màn hình chính Android thường gồm nhiều biểu tượng(icon) và tiện ích(widget). Giao diện màn hình chính của Android có thể tùy chỉnh ở mức cao, cho phép người dùng tự do sắp đặt hình dáng cũng như hành vi của thiết bị theo sở thích. Những ứng dụng do các hãng thứ ba có trên Google Play và các kho ứng dụng khác còn cho phép người dùng thay đổi “chủ đề” của màn hình chính, thậm chí bắt chước hình dáng của hệ điều hành khác như Windows Phone hay iOS. Phần lớn những nhà sản xuất và một số nhà mạng, thực hiện thay đổi hình dáng và hành vi của các thiết bị Android của họ để phân biệt với các hãng cạnh tranh.1: Thanh trạng thái Ở phía trên cùng màn hình là thanh trạng thái, hiển thị thông tin về thiết bị và tình trạng kết nối.
Thanh trạng thái này có thể “kéo” xuống để xem màn hình thông báo gồm thông tin quan trọng hoặc cập nhật của các ứng dụng, như email hay tin nhắn SMS mới nhận, mà không làm gián đoạn hoặc khiến người dùng cảm thấy bất tiện. Trong các phiên bản đời đầu, người dùng có thể nhấn vào thông báo để mở ra ứng Khoa Tùng Dương - CT1901C – Xây dựng ứng dụng quản lý bàn ăn trên thiết bị di động android 5 Luan van dụng tương ứng, về sau này các thông tin cập nhật được bổ sung thêm tính năng, như có khả năng lập tức gọi ngược lại khi có cuộc gọi nhỡ mà không cần mở ứng dụng gọi điện. Thông báo sẽ luôn nằm trong đó cho đến khi người dùng đã đọc hoặc xóa nó đi. Ứng dụng Android có lượng ứng dụng của bên thứ ba ngày càng nhiều, được chọn lọc và đặt tên một cửa hàng ứng dụng như Google Play hay Amazon Appstore để người dùng lấy về, hoặc bằng cách tải xuống rồi cài đặt tập tin APK từ trang web khác.
Các ứng dụng trên Play Store cho phép người dùng duyệt, tải về và cập nhật các ứng dụng do Google và các nhà phát triển thứ ba phát hành. Play Store được cài đặt sẵn trên các thiết bị thỏa mãn điều kiện tương thích của Google. Ứng dụng sẽ tự động lọc ra một danh sách các ứng dụng tương thích với thiết bị của người dùng, và nhà phát triển có thể giới hạn ứng dụng của họ chỉ dành cho những nhà mạng cố định hoặc những quốc gia cố định vì lý do kinh doanh.1: Kho ứng dụng Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng bộ phát triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công cụ dùng để phát triển, gồm có công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa Khoa Tùng Dương - CT1901C – Xây dựng ứng dụng quản lý bàn ăn trên thiết bị di động android 6 Luan van trên QEMU, tài liệu hướng dẫn, mã nguồn mẫu, và hướng dẫn từng bước.
Môi trường phát triển tích hợp được hỗ trợ chính thức là Android Studio, một môi trường đồ họa cho những nhà lập trình mới bắt đầu, và nhiều nền tảng ứng dụng di động đa nền tảng phong phú. Kiến trúc hệ điều hành Android Hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (phiên bản 2.6), tầng thư viện & tầng thực thi các ứng dụng trên hệ điều hành Android, tầng khung ứng dụng và trên cùng là tầng ứng dụng.1: Kiến trúc hệ điều hành Android 1. Tầng hạt nhân Linux Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm 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 (security), quản lý tiến trình (process).
Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được nâng cấp và sửa đổi rất nhiều đề phù hợp với tính chất của những thiết bị cầm tay như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu kết nối mạng không Khoa Tùng Dương - CT1901C – Xây dựng ứng dụng quản lý bàn ăn trên thiết bị di động android 7 Luan van dây… Tầng này có các thành phần chủ yếu: - Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu thập 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 camera, nhận luồng dữ liệu từ camera trả về. - Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth. - USB Driver: Quản lý hoạt động của các cổng giao tiếp USB.
- Keypad Driver: Điều khiển bàn phím. - Wi-Fi Driver: Chịu trách nhiệm về việc thu phát sóng Wi-Fi. - Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu dạng audio thành tín hiệu số và ngược lại. - Binder IPC Driver: Chịu trách nhiệm về việc 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ớ như thẻ SD, flash. - Power Management: Giám sát việc tiêu thụ điện năng. Tầng thư viện Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như: - Thư viện hệ thống (System C library): thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều hành. - Thư viện Media (Media Libraries): Có nhiều code để hỗ trợ việc phát và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng.
- Thư viện web (LibWebCore): Đây là thành phần để xem nội dung trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX. - Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng. Tầng thực thi các ứng dụng trên hệ điều hành Android Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động.
Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường. Thứ nhất các thư viện lõi (Core Library), chứa các lớp như JAVA IO, collections, File Khoa Tùng Dương - CT1901C – Xây dựng ứng dụng quản lý bàn ăn trên thiết bị di động android 8 Luan van Access. Thứ hai là một máy ảo java (Dalvik Virtual Machine). Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều hành Android không được chạy bằng JRE của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik do Google phát triển.
Tầng khung ứng dụng Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trình viên có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng sử dụng chung để tiết kiệm tài nguyên. Đây là một nền tảng mở, điều đó có 2 điều lợi: - Với 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 mà họ sản xuất cũng như để có nhiều mẫu mã, style hợp thị hiếu người dùng.