CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT 10/2008, hệ điều hành Android đã chính thức trở thành phần mềm mã nguồn mở. 12/2008, có thêm 14 thành viên mới gia nhập dự án Android được công bố, gồm có ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, và Vodafone Group Plc [2]. Các phiên bản android: Phiên bản đầu tiên của hệ điều hành Android ra đời vào tháng 9/2008 và tháng 2/2009 không có tên gọi chính thức, sau này, những phiên bản tiếp theo ra đời với tên gọi là những món tráng miệng với vần đầu của bảng Anphabet C- D-E-F-G-H-I…[2] Các phiên bản hệ điều hành Android[2] Android Cupcake 1.5, 4/2009: Phiên bản này có một số tính năng đáng chú ý như: khả năng ghi lại và xem video thông qua chế độ máy ghi hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại, tích hợp bàn phím ảo với khả năng đoán trước văn bản.6, 9/2009: Phiên bản này giúp nâng cao trải nghiệm trên kho ứng dụng Android Market, tích hợp giao diện tùy biến cho phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng cấp khả năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ, bước đầu hỗ trợ màn hình độ phân giải WVGA. 5 do an CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT Android Eclair 2.
Phiên bản này có sự cải thiện rõ rệt trong giao diện người dùng, tối ưu hóa tốc độ phần cứng, hỗ trợ nhiều kích cỡ và độ phân giải màn hình hơn, thay đổi giao diện duyệt web và hỗ trợ chuẩn HTML5, Exchange ActiveSync 2.5, nâng cấp Google Maps 3.2, camera zoom kĩ thuật số tích hợp đèn flash, nâng cấp bàn phím ảo và kết nối Bluetooth 2.2 5/2010: Phiên bản này chú trọng nâng cấp tốc độ xử lí, giới thiệu engine Chrome V8 JavaScript, hỗ trợ Adobe Flash10.1, thêm tính năng tạo điểm truy cập Wi-Fi. Một tính năng đáng chú ý khác hỗ trợ chuyển đổi nhanh chóng giữa các ngôn ngữ và từ điển trên bàn phím đồng thời cho phép cài đặt và cập nhật ứng dụng ở các thiết bị mở rộng bộ nhớ.3, 12/2010: Phiên bản này đã nâng cấp đáng kể giao diện người dùng, cải thiện bàn phím ảo, thêm tính năng copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ trợ chuẩn video WebM và nâng cao tính năng copy–paste.0, 2/2011: Đây là phiên bản hệ điều hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa cho tablet, từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt mail.0 Ice Cream Sandwich, cuối 2011:Android 4.0 nhắm đến việc duyệt web nhanh hơn, tối ưu hóa hiệu suất hoạt động của thiết bị, kéo dài thời gian dùng pin… Android Jelly Bean 4.2, 2012: quan trọng hơn hết của Jelly Bean không phải là về giao diện hay ứng dụng mới mà về Project Butter giúp mang lại độ mượt chưa từng có cho Android.3, 24/4/2013: đi kèm những tính năng mới như hỗ trợ kết nối Bluetooth Smart, bộ API OpenGL ES 3.0, bổ sung tính năng sử dụng Wi-Fi để định vị ngay cả khi người dùng tắt kết nối này đi cùng nhiều thay đổi lớn nhỏ khác.[2] 6 do an CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT Android 4.4 KitKat, 15/10/2013 với các cải tiến mới Chế độ toàn màn hình – Immersive Mode, Hiệu ứng chuyển cảnh màn hình -Transition Manager, Storage Access Framework, Chromium WebView, NFC,Cổng hồng ngoại – Infrared Blasters… Android L (Lollipop), 26/06/2014 với những cải tiến về chất lượng pin, giao diện thanh thoát nhẹ nhàng theo thiết kế Material Design, Android Runtime (ART) đã được sử dụng mặc định. Android M vào ngày 5/10/2015 phiên bản Android mới nhất với mã hiệu Marshmallow (kẹo dẻo) đã chính thức được đưa vào sử dụng rộng rãi trên các hệ máy Nexus và các hãng điện thoại sử dụng Android khác cũng đang rục rịch chuẩn bị cho đợt cập nhập này. Android N (Nougat), 22/8/2016, phiên bản Android có những thay đổi đáng chú ý tới hệ điều hành và nền tảng phát triển của nó, bao gồm khả năng tự hiển thị nhiều ứng dụng trên màn hình cùng một lúc bằng cách chia màn hình, hỗ trợ trả lời thông báo trực tiếp trong thẻ thông báo.
Ưu và nhược điểm: Ưu điểm: Là hệ điều hành có mã nguồn mở nên khả năng tuỳ biến cao, có thể tùy ý chỉnh sửa mà không có sự can thiệp hay cấm cản từ Google. Đa dạng sản phẩm, rất nhiều hãng điện thoại, thiết bị công nghệ đã ưu ái chọn Android cho thiết bị của họ, giá cả thì hợp lý từ bình dân đến cao cấp. Kho ứng dụng Google Play Store đồ sộ. Thân thiện và dễ sử dụng.
Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao. Nhược điểm: Dễ nhiễm phần mềm độc hại và virus. Do tính chất mã nguồn mở, nhiều phần mềm không được kiểm soát có chất lượng không tốt hoặc lỗi bảo mật vẫn được sử dụng. Kho ứng dụng quá nhiều dẫn đến khó kiểm soát chất lượng, thiếu các ứng dụng thật sự tốt.
7 do an CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT Sự phân mảnh lớn. Trong khi một số thiết bị Android xuất sắc đã trình làng như Galaxy S5, Galaxy Note 4, Xperia Z3…, vẫn còn rất nhiều sản phẩm giá rẻ bình thường khác. Cập nhật không tự động với tất cả thiết bị. Khi một phiên bản hệ điều hành mới ra mắt, không phải tất cả sản phẩm đều được cập nhật, thậm chí nếu muốn trải nghiệm bạn thường xuyên phải mua mới thiết bị.
Đặc điểm của hệ điều hành Android: 1. Kiến trúc nền tảng: Kiến trúc của hệ điều hành Android Android là một ngăn xếp phần mềm, bao gồm các tầng như hình trên. Trong đó các hàm thực thi các ứng dụng trong hai tầng Applications và Applications Framework được viết bằng ngôn ngữ lập trình Java. Còn các hàm thực thi các ứng dụng ở các tầng dưới: Libraries, Android runtime, Linux kernel được viết bằng mã 8 do an CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT gốc hay native code được viết bằng ngôn ngữ C/C++.
Khi cần xây dựng một ứngdụng Android mà cần phải sử dụng một đoạn mã viết bằng C/C++ ở các tầng bên dưới thì ta sẽ sử dụng JNI (Java Native Interface) để giúp ứng dụng Android viết bằng Java có thể truy cập được các hàm viết bằng C/C++. Dưới đây ta sẽ tìm hiểu chức năng của từng tầng trong kiến trúc Android: Tầng Applications: Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản như: calendar, maps, contacts, brower, camera, phone… Tất cả các ứng dụng này đều được viết bằng ngôn ngữ Java. Tầng Applications framework: Bằng cách cung cấp một nền tảng phát triển mở Android cung cấp cho các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịchvụ chạy nền, thiết lập hệ thống báo động, và cộng thêm các cảnh báo đến các thanh trạng thái, và nhiều hơn nữa.
Nhà phát triển có thể truy cập vào các API cùng một framework được xây dựng bởi các ứng dụng lõi. Kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụnglại các thành phần; bất kỳ ứng dụng nào cũng có thể công bố khả năng của nó và bất kỳ ứng dụng nào khác cũng có thể sử dụng những khả năng này (có thể hạn chế bảomật được thực thi bởi framework). Tất cả các ứng dụng cơ bản là một bộ dịch vụ và các hệ thống, bao gồm: Một tập hợp phong phú và mở rộng các View có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout… Trình cung cấp nội dung (Content Providers): Cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng khác (chẳng hạn như contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó. Quản lý tài nguyên (Resource Manager): Cung cấp truy xuất tới các tài nguyên không phải là mã nguồn, chẳng hạn như graphics, và các file layout.
Quản lý thông báo (Notification Manager): Cho phép tất cả các ứng dụng hiển thị các cảnh báo trong thanh trạng thái. 9 do an CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT Quản lý hoạt động (Activity Manager): Quản lý chu trình sống của ứng dụng và điều hướng các Activity. Tầng Libraries: Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi nhiều thành phần khác nhau trong hệ thống Android. Điều này được thể hiện thông qua nền tảng ứng dụng Android.
Một số các thư viện cơ bản được liệt kê dưới đây: System C library – Thực hiện triển khai BSD của thư viện hệ thống C chuẩn (libc) và chỉnh cho các thiết bị nhúng dựa trên Linux. BSD là giấy phép nguồn mở, cho phép mọi người sử dụng chương trình, mã nguồn của nó và các dẫn xuất. Media Libararies– Dựa trên PacketVideo’s OpenCORE, các thư viện hỗ trợ phát và ghi âm với nhiều định dạng audio và video, cũng như đối với các file ảnh tĩnh bao gồm: MPEG4, H.264, MP3, AAC, ARM, JPG, và PNG. Surface Manager - Quản lý truy cập vào hệ thống hiển thị.
LibWebCore - Một công cụ trình duyệt web hiện đại. SGL – Công cụ đồ họa 2D cơ sở. 3D libraries – Sự thực hiện dựa trên OpenGL ES 1. Free Type - Biểu diễn font véc-tơ và bitmap.
QLite – Cơ sở dữ liệu. Webkit – Thư viện cho việc biểu diễn HTML. Tầng Android runtime: Tầng này bao gồm các thư viện lõi và máy ảo Dalvik. Các thư viện lõi bao gồm các thư viện lớp cơ bản nhất như: cấu trúc dữ liệu, mạng, các tiện ích, hệ thống file.
DVM được thiết kế để đạt được các chức năng quản lý chu kỳ sống của đối tượng, quản lý ngăn xếp, quản lý luồng, bảo mật, …DVM là lý tưởng để sử dụng với yêu cầu về không gian bộ nhớ và CPU thấp so với các máy ảo chạy trên các máy tính để bàn và hệ thống máy chủ. Theo tính toán của Google thì cần 64M RAM cho phép hệ thống hoạt động tốt, 24M RAM được sử dụng để khởi tạo và bắt đầu hệ thống cơ bản,và 20M RAM được sử dụng cho các dịch vụ cấp cao. Linux kernel: Android được xây dựng trên nhân Linux, nhưng Android không phải là Linux. Android dựa trên Linux phiên bản 2.6 cho các hệ thống dịch vụ cốt lõi như an ninh, 10 do an CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT quản lý bộ nhớ, quản lý quá trình, ngăn xếp mạng, và mô hình điều khiển.
Hạt nhân cũng hoạt động như một lớp trừu tượng giữa phần cứng và phần còn lại của ngăn xếp phần mềm.