Nguyên lý hệ điều hành

Android là hệ điều hành sử dụng nhân Linux, nhưng không phải chính là nhân để chạy hệ điều hành Linux của các thiết bị chạy Linux. Có rất nhiều mã lập trình của Android sử dụng rất riêng so với hệ thống Linux, ví dụ như kernel của Google’s Android sử dụng có chế độ làm việc riêng của nó. Hệ thống lập trình OEMs là ngôn ngữ chủ đạo để viết nên hệ thống cho Kernel, bởi vì nó là phương tiện dùng để lập trình các hệ thống driver cho các phần cứng khác cho các phiên bản khác nhau của Android Kernel. Điều quan trọng của Kernel là kiểm soát và điều khiển phần cứng, hiểu một cách đơn giản, Kernel chính là một mối nối và là “thông dịch viên” giữa phần cứng và phần mềm. Khi phần mềm cần phần cứng làm một việc gì đó, nó sẽ gửi yêu cần tới bộ vi xử lý và nó sẽ nói “các người dùng nói bất cứ cái gì, chúng tôi sẽ đáp ứng cái đó”. Từ trình điều khiển độ sáng màn hình, mức âm lượng, hiệu suất tốc độ của thiết bị, điều khiển xung nhịp CPU. Ngay cả việc di chuyển con trỏ chuột hay ngón tay lướt trên màn hình cảm ứng tất cả đều được kiểm soát bởi kernel.

doc36 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3467 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Nguyên lý hệ điều hành, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
họ tiếp thị đến các nhà sản xuất thiết bị cầm tay và các nhà mạng trên những tiền đề về việc cung cấp một hệ thống mềm dẻo, có khả năng nâng cấp mở rộng cao. Một số nguồn tin cho biết trước đó Google đã lên danh sách các thành phần phần cứng và các đối tác phần mềm, đồng thời ra hiệu với các nhà mạng rằng họ sẵn sàng hợp tác ở nhiều cấp độ khác nhau. Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trường điện thoại di động xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật Báo Phố Wall chú thích rằng Google muốn đưa công nghệ tìm kiếm và các ứng dụng của họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều này. Các phương tiện truyền thông tin và online cũng sớm có bài viết về những tin đồn cho rằng Google đang phát triển một thiết bị cầm tay mang thương hiệu Google. Và lại càng có nhiều suy đoán sau bài viết về việc Google đang định nghĩa các đặc tả công nghệ và trình diễn các mẫu thử với các nhà sản xuất điện thoại di động và nhà mạng. Tháng 9 năm 2007, tờ InformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động. Ngày 5 tháng 11 năm 2007, Liên Minh Thiết Bị Cầm Tay Mở Rộng (Open Handset Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments, Tập Đoàn BroadCom, Google, HTC, Intel, LG, Tập Đoàn Marvel Technology, Motorola, Nvidia Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động. Cùng với sự thành lập của OHA (Liên minh thiết bị cầm tay mã nguồn mở), họ cũng giới thiệu sản phẩm Android đầu tiên. Nó là một thiết bị di động có hệ điều hành dựa trên nhân Linux phiên bản 2.6.(2.7) Ngày 9 tháng 12 năm 2008 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 Giấy Phép. Trừ những giai đoạn cập nhật ngắn, Android đã lưu hành với mã nguồn mở kể từ ngày 21 tháng 10 năm 2008. Google đã mở toàn bộ mã nguồn (bao gồm cả các ngăn xếp mang và điện thoại) dưới giấy phép Apache. Với giấy phép Apache, các nhà cung cấp có thể thêm những mở rộng thương mại mà không cần chuyển chúng thành mã nguồn mở. Biểu Tượng. Biểu tượng đại diện của hệ điều hành Android hiện tại là chú robot màu xanh, vốn được biết đến với tên gọi Bugdroid, ngay từ khi ra mắt đã trở nên phổ biến và được ưa chuộng trên thị trường di động thế giới. Tuy nhiên, chú robot xanh xinh xắn lại không phải là biểu tượng đầu tiên của hệ điều hành này. Người máy màu xanh lá này đã trở nên quá quen thuộc trên toàn cầu Hình ảnh về những con robot trông có vẻ tinh nghịch với hình dáng như những chiếc kẹo bên dưới đây chính là hình đại diện được đề cử đầu tiên dành cho hệ điều hành Android. Chúng được sáng tạo bởi Dan Morill, một nhân viên làm việc trong bộ phận lập trình của Google, vào năm 2007. Tuy không được lựa chọn để làm hình ảnh đại diện chính thức, nhưng những biểu tượng vui nhộn này cũng đã tồn tại trong một khoảng thời gian khá dài với biệt danh Dandroids. Dandroids có vẻ "nhí nhố" hơn Bugdroid Dandroids mặc dù mang những nét đặc trưng riêng nhưng đến sau cùng, Google đã chọn “người máy” Bugdroid – với dáng vẻ hiện đại và trẻ trung hơn – được sáng tạo bởi Irina Blok, làm biểu tượng chính thức cho hệ điều hành di động của họ. Bên cạnh đó, để khẳng định thương hiệu, cách đặt tên các phiên bản hệ điều hành Android theo các món ăn tráng miệng do Ryan PC Gibson đề xuất cũng đã được Google áp dụng. Và cho đến bây giờ, Android đã và đang mang đến thêm nhiều hương vị ngọt ngào nữa như Cupcake, Donut, Ice Cream Sandwich, Jelly Bean hay sắp tới đây sẽ là Key Lime Pie. Các phiên bản Android được đặt tên theo các món tráng miệng LỊCH SỬ PHÁT TRIỂN CỦA CÁC PHIÊN BẢN ANDROID. Android đã có những bước đi dài kể từ khi thiết bị đầu tiên dùng hệ điều hành này xuất hiện, chiếc HTC Dream (ở nhiều nước gọi là T-Mobile G1) . Trong quãng thời gian ấy, người dùng đã chứng kiến sự xuất hiện của rất nhiều phiên bản Android, giúp nó dần biến đổi thành một nền tảng di động mạnh mẽ như ngày hôm nay. Điểm Khởi Đầu Của Android – Android 1.0 (Linux Kernel 2.6, 2.7) Kỉ nguyên Android chính thức khởi động vào ngày 22/10/2008, khi mà chiếc điện thoại T-Mobile G1 chính thức được bán ra ở Mỹ. Ở giai đoạn này, rất nhiều những tính năng cơ bản cho một smartphone bị thiếu sót, chẳng hạn như bàn phím ảo, cảm ứng đa điểm hay khả năng mua ứng dụng. Tuy nhiên, vai trò của phiên bản đầu tiên này vô cùng quan trọng. Nó đã đặt nền móng cho các tính năng có thể xem là đặc điểm nhận dạng của Android ngày nay. Thanh thông báo kéo từ trên xuống: Ngay từ ngày đầu tiên trình làng, Android đã được tích hợp một hệ thống cảnh báo vô cùng hữu dụng so với những đối thủ cạnh tranh thời bấy giờ mặc dù nó không được tốt như Notification Bar trên các thế hệ Android mới. Người dùng có thể nhanh chóng xem những tin nhắn đến, xem ai mới gọi nhỡ hoặc bất cứ thứ gì mà phần mềm trên đang máy muốn người dùng biết. Tất cả thông báo đều tập hợp trong một danh sách duy nhất. Thanh trạng thái, bao gồm đồng hồ, biểu tượng pin, biểu tượng cho các kết nối cũng được tích hợp vào nơi đây, giúp tiết kiệm tối đa không gian màn hình nhưng vẫn phục vụ đầy đủ nhu cầu thông tin cho người sử dụng. Mãi cho đến ngày nay, Android 4.2 vẫn duy trì ý tưởng tuyệt vời này. Màn hình chính và widget: Nếu muốn so sánh Android, iOS và Windows Phone, điểm khác biệt lớn nhất đó là một màn hình chính. Màn hình chính của Android thật sự rất phong phú. Có thể thay đổi hình nền (Windows Phone không làm được điều này), đặt icon ra màn hình chính, sử dụng widget và hơn hết là thay luôn cả cái màn hình chính nếu muốn. Độ tùy biến của màn hình chính trên Android có thể xem là cao nhất trong các hệ điều hành di động hiện nay. Về phần widget, đây cũng là một điểm hay của Android vì nó cho phép người dùng nhanh chóng truy cập đến một số tính năng nào đó hoặc xem nhanh các thông tin cập nhật chi tiết một cách nhanh nhất. Widget cũng đóng vai trò trang trí cho màn hình chính nữa. Symbian cũng có widget nhưng chưa so được với Android về mức độ phong phú và chức năng (tất nhiên là phải về sau này, còn lúc mới ra thì chưa có nhiều). Tích hợp chặt chẽ với Gmail: Lúc chiếc G1 ra mắt, Gmail đã hỗ trợ giao thức POP và IMAP để dùng được với các trình gửi nhận email trên thiết bị di động, nhưng vấn đề nằm ở chỗ không có giao thức nào được tận dụng tối đa để phục vụ những tính năng độc đáo của Gmail (ví dụ như lưu trữ, đánh nhãn cho email). Android 1.0 ra mắt đã khắc phục được vấn đề này và có thể nói chiếc G1 đã mang lại trải nghiệm Gmail tốt nhất trên thị trường vào thời điểm đó. Về mặt giao diện: Google xây dựng giao diện của Android 1.0 với sự hợp tác của một công ty thiết kế đến từ Thụy Điển với tên gọi The Astonishing Tribe (TAT). Từ Android 1.0 đến 2.2, có thể thấy sự xuất hiện của một widget đồng hồ quen thuộc, tuy đơn giản nhưng khá đẹp mắt, đó chính là dấu ấn của TAT. Một thời gian sau, TAT bị RIM mua lại để tập trung phát triển cho nền tảng BlackBerry OS cũng như BBX. Mối quan hệ của TAT với Google Android cũng chấm dứt ở đây. Android 1.1 (Ngày 9 Tháng 2 Năm 2009) Tháng 2/2009, bản nâng cấp đầu tiên của Android được trình làng, khoảng ba tháng sau khi G1 được bán ra. Phiên bản 1.1 không phải là một cuộc cách mạng gì to lớn bởi tính năng chính của nó là sửa một danh sách lỗi khá dài. Tuy nhiên, nó đã cho thấy khả năng nâng cấp thiết bị di động qua phương pháp Over-The-Air (tức tải về và cài đặt bản cập nhật ngay trên thiết bị, không cần kết nối với máy tính). Ở thời điểm đó, rất ít hệ điều hành di động có thể làm được việc này, hầu hết đều phải nhờ đến một phần mềm chuyên dụng nào đó trên PC. Trước đó, ở Mỹ có dòng máy Danger Hiptop (được biết nhiều hơn với tên Sidekick) đã có cập nhật dạng gần giống over the air theo từng giai đoạn, và chính Andy Rubin, người sáng lập công ty Android Inc. (sau đó Google mua lại) cũng chính là nhà đồng sáng lập hãng Danger. Android 1.5 Cupcake (Linux Kernel 2.6,27 – Ngày 30 Tháng 4 Năm 2009) Android 1.5 có lẽ có vai trò cực kì quan trọng trong quá trình trưởng thành của Android khi nó bổ sung cho hệ điều hành này những tính năng nổi bật giúp nó cạnh tranh với các nền tảng đối thủ khác. Đây cũng là bản Android đầu tiên được Google gọi tên theo các món đồ ăn với chữ cái bắt đầu được xếp theo thứ tự alphabet. Cupcake là một loại bánh nhỏ, hơi giống bánh bông lan và có kem bên trên. Sau này ta có thêm Donut, Eclair (bánh su kem nhưng dài, nhân chocolate), FroYo (ya-ua đá), Gingerbread (bánh gừng), Honeycomb (một loại bánh có hình tổ ong), Ice Cream Sandwich (bánh sandwich kem) và mới đây nhất là Jelly Bean (một loại kẹo dẻo viên nhỏ, hình hạt đậu). Về mặt giao diện, Android 1.5 không có nhiều điểm thay đổi so với người tiền nhiệm của mình. Google chỉ điểm thêm vài điểm để làm giao diện trông bóng bẩy, mượt mà hơn một tí, chẳng hạn như widget tìm kiếm có độ trong suốt nhẹ, biểu tượng app drawer có một số hoa văn nhỏ mới, v.v. Nói chung, giao diện không phải là một điểm nhấn của Android 1.5 mà người ta quan tâm nhiều hơn đến các tính năng mới mà nó mang lại, chẳng hạn như: Bàn phím ảo: Tại sao Google không cho những bản Android đầu tiên bàn phím mềm? Đâu phải là họ không có khả năng làm đâu? Thực chất, mục tiêu ban đầu của Android là cạnh tranh với BlackBerry. Vâng, thời đó BlackBerry đang rất nổi và được nhiều người dùng quan tâm, nhất là ở Mỹ, bởi chính bàn phím vật lí của nó. Bởi vậy mà G1 có một bàn phím QWERTY trượt ngang. Mãi đến bản Cupcake này mới có một chiếc điện thoại Android thuần cảm ứng là HTC Magic được giới thiệu. Cùng với đó, Google tích hợp vào Cupcake những "cái móc", dân lập trình gọi là hook, để họ có thể tự do viết phần mềm bàn phím của riêng mình cho Android. Lại thêm một điểm nữa khiến cho Android trở nên khác biệt với các hệ điều hành đối thủ khác. Lúc Cupcake xuất hiện, bàn phím ảo mặc định rất chậm và không chính xác khi so sánh với iOS, chính vì thế mà những hãng sản xuất phần cứng như HTC đã phát triển riêng một biện pháp khắc phục, cũng may là có hook do Google mở ra. Mở rộng khả năng cho widget: Android 1.0 và 1.1 có tích hợp widget, nhưng tiềm năng của nó chưa được khai thác hết vì Google chưa đưa bộ phát triển phần mềm cho lập trình viên. Từ Android 1.5 trở đi thì chuyện đã thay đổi, và đến thời điểm hiện tại, kho widget của Android đã rất phong phú, đó là chưa kể đến những ứng dụng của bên thứ ba cũng mang sẵn trong mình widget nữa. Nhờ có khả năng này mà việc tùy biến giao diện của Android càng được đẩy mạnh hơn nữa. Cải tiến clipboard: Thật ra Android đã hỗ trợ việc copy và paste ngay từ những ngày đầu tiên rồi, nhưng nó bị giới hạn lại ở textbox (là những chỗ nào chúng ta có thể gõ chữ được) và sao chép các đường link mà thôi. Ví dụ đang đọc mail hay đang duyệt web thì chịu, chúng ta không cách gì sao chép được. Với Cupcake thì Google cho phép sao chép nội dung của web, một cải tiến được đánh giá là tốt. Còn với Gmail thì phải đến vài bản nâng cấp sau mới có được tính năng này. Khả năng quay phim: Thật khó mà tưởng tượng được chiếc smartphone xịn lại bán ra mà không hề có tính năng quay phim, nhưng đó là những gì mà chiếc T-Mobile G1 phải "hứng chịu" (cũng hơi giống iPhone những đời đầu). Mãi đến Android 1.5 thì Android mới quay phim được. Nhưng cũng giống với bàn phím, trình camera mặc định của Android không tốt nên các hãng phần cứng phải nhanh chóng thay nó với ứng dụng của riêng mình với các chế độ quay theo cảnh, chạm để lấy nét, tùy chỉnh thông số video. Và còn nhiều thứ khác nữa bao gồm khả năng xóa hoặc di chuyển hàng loạt email trong Gmail, cho phép tải ảnh, video lên YouTube, Picasa, truy cập danh bạ trong Google Talk từ nhiều ứng dụng khác. Android 1.6 Donut (Linux Kernel 2.6,29 – Ngày 30 Tháng 9 Năm 2009) Phiên bản bánh Donut này, mặc dù chỉ thêm có 0.1 vào mã số của Android 1.5 nhưng nó cũng mang lại nhiều cải tiến đáng giá. Một vài điểm trong giao diện được cải thiện, vài tính năng nhỏ được thêm vào, cuối cùng là hỗ trợ cho mạng CDMA. Động thái này cho phép nhiều nhà mạng hơn có thể sử dụng với Android, giúp cho Android có thêm một số lượng lớn người dùng ở Mỹ và ở cả Châu Á nữa. Nhưng có lẽ điểm thú vị nhất của Donut đó là hỗ trợ các thành phần đồ họa độc lập với độ phân giải. Lần đầu tiên, Android có thể chạy trên nhiều độ phân giải và tỉ lệ màn hình khá nhau, cho phép những thiết bị có nhiều độ phân giải hơn là 320 x 480. Hiện nay, chúng ta có những chiếc smartphone Android chạy ở độ phân giải QVGA, HVGA, WVGA, FWVGA, qHD, và 720p, HD và Full HD. Vài chiếc máy tính bảng còn đạt mức 1920 x 1080 nữa. Tính năng Quick Search Box, được biết nhiều hơn trong thế giới điện thoại với cái tên Universal Search, cũng là một điểm mà Android nhận được nhiều lời khen. Có thể tìm kiếm danh bạ, ứng dụng, nhạc, tin nhắn,…, tất cả đều chỉ thao tác trong một hộp tìm kiếm mà thôi. Trước Donut, khi nhấn nút Search trên máy Android thì chỉ có thể tìm kiếm thông qua google.com mà thôi. Google cũng cho phép những lập trình viên tích hợp tính năng tìm kiếm mới này vào ứng dụng của mình để mở rộng thêm khả năng của Quick Search Box. Android 1.6 còn có gì mới? Đó là một Android Market với thiết kế mang tông màu xanh trắng đặc trưng của Android, có thể hiển thị các ứng dụng free và trả phí hàng đầu. Những ứng dụng bên thứ ba cũng bắt đầu xuất hiện nhiều hơn. Giao diện camera mới, tíhc hợp với trình xem ảnh tốt hơn, giảm thời gian chờ giữa hai lần chụp ảnh. Nhưng cũng thường thì các nhà sản xuất cũng thay thế bằng ứng dụng của riêng mình. Android 2.0 và Android 2.1 Éclair (Linux Kernel 2.6,29 – 26/10/009) Đầu tháng 9 năm 2009, một năm sau khi G1 chào đời, Android 2.0 đã được ra mắt. Thật sự không ngoa khi mô tả Android 2.1 bằng một chữ "lớn". Một cơ hội lớn cho những nhà phát triển, một tiềm năng lớn cho Android về sau, những chiếc điện thoại "lớn" được ra mắt và phân phối bởi các nhà mạng lớn. Eclair, tên gọi của Android 2.0, lúc mới ra mắt chỉ được dùng độc nhất cho chiếc Motorola Droid của nhà mạng Verizon, một trong những chiếc điện thoại đã kích hoạt cho một kỉ nguyên Android lớn mạnh như ngày hôm nay. Motorola Droid còn được biết đến với tên gọi Motorola Milestone khi nó xuất hiện ở Việt Nam. Đây là một sản phẩm rất thành công của Motorola và cả Google khi mang đến cho người dùng những trải nghiệm cực kì tốt với Android. Vậy những gì làm cho Eclair quan trọng? Nó là bản nâng cấp và làm mới lớn nhất mà Android từng có kể từ khi hệ điều hành này được giới thiệu, cả về ngoại hình lẫn kiến trúc bên trong. Vào thời điểm Motorola Milestone ra mắt, độ phân giải cao và lạ 854 x 480 cùng nhiều yếu tố phần cứng khác đã làm cho sản phẩm này đứng đầu thế giới Android về cấu hình, nhưng quan trọng hơn là Android 2.0 có những tính năng khiến cho nó dễ bán hơn, chẳng hạn như: Hỗ trợ nhiều tài khoản người dùng: lần đầu tiên, nhiều tài khoản Google có thể được đăng nhập trên cùng một thiết bị chạy Android. Tài khoản Microsoft Exchange cũng được hỗ trợ trong Eclair. Người dùng có thể duyệt qua danh bạ, email của từng tài khoản. Google giờ đây cho phép những nhà phát triển bên thứ ba tích hợp dịch vụ của họ vào trong mục Account này, đồng thời hỗ trợ tự động đồng bộ hóa. Quick Contact: khi chạm vào một số liên lạc nào đó, có một menu nhỏ sẽ xuất hiện để người dùng tương tác theo nhiều cách: gửi email, gọi điện, nhắn tin và hơn thế nữa. Miễn là nơi nào có biểu tượng contact xuất hiện là nơi đó có thể dùng Quick Contact. Sau này có thêm Twitter, Facebook và nhiều dịch vụ đồng bộ khác cũng tích hợp tính năng riêng của mình vào Quick Contact. Cải tiến bàn phím ảo: Giống với chiếc G1, Droid/Milestone có một bàn phím QWERTY đầy đủ dạng trượt ngang nhưng Google cho phép người dùng sử dụng thêm bàn phím ảo mà hãng đã thiết kế lại. Mặc dù tính năng cảm ứng vẫn còn một điều xa vời với Android vào lúc đó (trình duyệt, bản đồ và cả các phần mềm khác không hề dùng được tính năng hai ngón tay để phóng to, thu nhỏ,…) nhưng Eclair lại sử dụng dữ liệu multitouch từ bàn phím để xác định điểm chạm thứ hai trong lúc người dùng gõ nhanh. Độ chính xác của bàn phím ảo trên Android 2.0 nhờ đó đã được cải tiến đáng kể. Trình duyệt mới: Mặc dù chưa hỗ trợ cảm ứng đa điểm nhưng trình duyệt trên Android 2.0 cũng có nhiều điểm nâng cấp đáng khen. Google đã hỗ trợ HTML5, bao gồm luôn khả năng phát video ở chế độ toàn màn hình. Hộp địa chỉ kết hợp với thanh tìm kiếm (giống với trình duyệt Chrome) cũng lần đầu xuất hiện trên Android. Để bù lại cho tính năng cảm ứng đa điểm, trình duyệt mới hỗ trợ chạm hai lần để phóng to nội dung trên màn hình, kèm theo đó là hai nút Zoom in, Zoom out. Giao diện mới: các biểu tượng giờ đây đã đẹp hơn, sang trọng hơn, gọn gàng hơn nhiều so với trước. Widget cũng được thiết kế mới để tương thích với độ phân giải cao trên Droid. Giao diện menu cũng đẹp hơn nữa. Về phần Android 2.1, mặc dù không "lớn" như Android 2.0 vì nó chủ yếu ra mắt để sửa lỗi và thêm hàm API để lập trình viên can thiệp sâu hơn vào hệ thống nhưng nó đã hỗ trợ thêm vài tính năng lý thú như Live Wallpaper, chuyển giọng nói thành văn bản và một màn hình khóa mới. Android 2.1 cũng có rất nhiều ý nghĩa về việc thay đổi chiến lược của Google. Nhận thấy rằng các hãng phần cứng thường thay đổi giao diện gốc của Android theo ý họ, Google đã chọn HTC để làm việc trực tiếp và tạo ra Nexus One, chiếc điện thoại đầu tiên của hãng. Nexus One mang trong mình một bản Android 2.1 thuần khiết nhất và không hề bị chỉnh sửa gì cả. Không chỉ nổi bật về mặt phần mềm, Nexus One còn có phần cứng mạnh mẽ thời bấy giờ. Nó là một trong những smartphone đầu tiên chạy trên CPU Snapdragon 1GHZ của Qualcomm, đồng thời sở hữu màn hình AMOLED độ phân giải WVGA. Thực ra, Google đã tiến hành việc này kể từ chiếc Droid với Android 2.0. Google và Motorola đã làm việc chặt chẽ để cùng phát triển một mẫu điện thoại tốt, nhưng Eclair trong Droid vẫn có vài sự tinh chỉnh. Và tất nhiên là Google chưa bao giờ trực tiếp bán Droid cả. Android 2.2 Froyo (Linux Kernel 2.6,32 Ngày 20 Tháng 5 Năm 2010) Android 2.2 được ra mắt trong năm 2010 và mục tiêu của chương trình Nexus đã xuất hiện rõ hơn bao giờ hết: Nexus One là chiếc điện thoại đầu tiên được nâng cấp lên Android 2.2, sớm hơn nhiều so với tất cả các hãng khác. Giao diện màn hình chính đã được thay đổi, từ 3 màn hình chính tăng lên thành 5 màn hình. Dãy nút kích hoạt nhanh chế độ gọi điện, web và App Drawer cũng đã xuất hiện. Những chấm nhỏ ở góc trái, phải bên dưới của màn hình giúp người dùng biết mình đang xem đến màn hình nào. Google đã có nhiều cố gắng để giao diện Android được vui và đẹp hơn, dễ dùng hơn, bắt kịp phần nào với giao diện của bên thứ ba như HTC Sense chẳng hạn. FroYo còn có một trình xem ảnh mới với khả năng hiển thị hình ảnh 3D: nghiêng máy thì dãy ảnh sẽ nghiên theo, đồng thời nó mang trong mình nhiều hiệu ứng chuyển động đẹp mắt khác. Đây cũng là dấu mốc về việc Google đã đi thuê ngoài nhằm phát triển Android mà Gallery trên FroYo là một ví dụ. Tính năng trạm phát Wifi cũng xuất hiện, cách copy, paste mới tốt hơn. Nhiều tính năng bảo mật mới cũng xuất hiện. Tuy nhiên, với người dùng thông thường thì việc Android 2.2 FroYo có hỗ trợ duyệt web với Flash là điểm đáng quan tâm nhất. Hầu như người ta muốn lên FroYo là để tận hưởng được cảm giác duyệt web với Flash đầy đủ trên thiết bị di động. Android 2.2 bổ sung thêm tính năng di chuyển một phần ứng dụng từ bộ nhớ máy sang thẻ nhớ, giúp tiết kiệm dung lượng cho các điện thoại thời bấy giờ. Android 2.3 Gingerbread (Linux Kernel 2.6,33,34 – 6 Tháng 12 Năm 2010) Khoảng nửa năm sau khi FroYo xuất hiện, Google đã trở lại với bản Android 2.3. Google giới thiệu nó với nhiều tính năng mới, tập trung vào việc phát triển game, đa phương tiện và phương thức truyền thông mới. Android 2.3 có tên mã là Gingerbread, hiện bộ SDK Android 2.3 dành cho các nhà phát triển cũng đã được Google phát hành. Android 2.3 thật ra không phải là một bản nâng cấp lớn nhưng những ảnh hướng mà nó mang lại thì không nhỏ chút nào. Lần đầu tiên Android khoác lên mình một giao diện đen, trông ngầu và chuyên nghiệp hơn. Các thành phần trên màn hình chính có thêm tông màu xanh lá đậm. Bên cạnh đó, việc sử dụng màu đen còn là ý định của Google để giúp các máy dùng màn hình AMOLED tiết kiệm pin hơn. Vài tính năng mới trên Android 2.3: Hai thanh chặn khi chọn văn bản: Hồi Android 2.2, việc chọn văn bản khi đang soạn thảo hoặc khi đang duyệt web rất cực khổ. Nhờ có thanh chặn này mà người dùng có thể chọn từng kí tự một, tiện lợi hơn rất nhiều. Bàn phím được cải tiến: Google một lần nữa đầu tư cho bàn phím ảo, lần này có sự thay đổi lớn về tông màu của bàn phím. Nhìn các phím đẹp hơn, đen hơn và cả kí tự cũng được thay đổi so với hồi Android Cupcake. Nhờ có khả năng nhận biết đa điểm trên bàn phím mà việc việc soạn thảo đã dễ chịu hơn, cho phép người dùng nhấn cùng lúc nhiều phím để chuyển sang bàn phím dạng kí tự. Công cụ quản lí pin và ứng dụng: vì Android cho phép các ứng dụng chạy nền thực thụ chứ không bị ngắt lại, vấn đề pin bị người dùng phàn nàn rất nhiều, đặc biệt là các phần mềm không được viết để thoát khỏi bộ nhớ sau khi đã hoàn tất công việc của mình. Một công cụ mới đã ra mắt với biểu đồ nhằm theo dõi mức độ tiêu thụ pin cùng việc quản lí ứng dụng đang chạy sẽ giúp đỡ người dùng phần nào. Hỗ trợ máy ảnh trước: Lần đầu tiên một phiên bản của hệ điều hành Android hỗ trợ việc sử dụng máy ảnh phụ phía trước của thiết bị. Nhiều tính năng mới của Gingerbread chủ yếu nhắm đến lập trình viên hơn là người dùng cuối, ví dụ như NFC chẳng hạn. Nhiều tháng trôi qua, NFC không có nhiều ứng dụng thực tế ngoài việc đến một vài thành phố ở nước ngoài và dùng NFC để lấy thông tin về địa điểm. Khi Nexus S dành cho nhà mạng Sprint, Mỹ, ra đời, Google giới thiệu Google Wallet, dịch vụ thanh toán di động sử dụng NFC của mình. Đến bây giờ, nhiều thứ hơn đã hỗ trợ NFC, NFC tag cũng xuất hiện ở nhiều nơi hơn. Thậm chí người ta còn dự đoán rằng NFC sẽ thay thế được mã QR trong tương lai và Android 2.3 đã góp một phần quan trọng nhằm thúc đẩy việc sử dụng phổ biến kết nối tầm ngắn này. Với Gingerbread, Google muốn xâm nhập vào thị trường game di động vốn đang bị chiếm lĩnh bởi iOS bằng việc cung cấp cho lập trình viên quyền truy cập cấp thấp nhất, tức là gần sát nhất, đến các phần cứng về âm thanh, đồ họa, lưu trữ,… Nhờ đó, nhiều game/ứng dụng native ra đời với tốc độ hoạt động nhanh hơn, hình ảnh, âm thanh phong phú, chân thật và đẹp hơn nhiều. Android 3.x Honeycomb (Ngày 22 Tháng 2 Năm 2011) Honeycomb là phiên bản Android dành riêng cho máy tính bảng, và sản phẩm đầu tiên dùng hệ điều hành này Motorola Xoom. Xoom mang trong mình một giao diện thuần Android 3.0 và không bị chỉnh sửa gì. Mặc dù Android 3.0 không có nhiều dấu ấn đặc biệt trên thị trường nhưng nó là nền tảng cho Android 4.0 sau này với các tính năng như: Sử dụng tông màu đen và xanh dương làm tông màu chủ đạo, hệ thống icon và biểu tượng mới. Homescreen và widget cũng được thiết kế lại. Việc đặt widget lên màn hình cũng tiện dụng hơn nhờ có hình ảnh thu nhỏ của các homescreen trong mục widget nên người dùng có thể chọn lựa theo ý muốn. Không còn nút nhấn vật lí: trên các máy tính bảng Android 3.x, người ta không còn trang bị cho chúng ba phím Back, Home và Menu (và Search nữa) riêng biệt, cả nút cứng lẫn nút cảm ứng, mà thay vào đó nó đã được bố trí ngay trên màn hình của người dùng. Android 3.x có khả năng ẩn hoặc hiện các nút này một cách linh hoạt tùy vào việc người dùng đang chạy ứng dụng gì. Cải thiện đa nhiệm: nút Recent Apps lần đầu tiên xuất hiện trên Android cho phép người dùng duyệt qua các ứng dụng mà mình mới chạy trong thời gian gần đây, nhờ đó việc chuyển đổi app dễ dàng hơn và nhanh chóng hơn. Mỗi ứng dụng như vậy cũng có một ảnh chụp màn hình thu nhỏ để tiện cho việc chọn lựa. Từ Gingerbread trở về trước, việc chạy đa nhiệm phải nhờ đến việc nhấn giữ nút Home để tiết lộ bảng các ứng dụng gần đây, bất tiện hơn nhiều. Thanh Action Bar: một thanh chức năng được đặt bên trên mỗi ứng dụng, ở đó lập trình viên có thể đặt các nút nhấn để điều khiển ứng dụng lên. Ngoài ra, Honeycomb còn hỗ trợ cho việc bố cục ứng dụng theo nhiều cột để hướng đến việc hỗ trợ máy tính bảng tốt hơn. Sau Android 3.0, Android 3.1 và 3.2 là hai bản nâng cấp nhỏ của Honeycomb và vẫn dùng lại cái tên này. Mục đích chủ yếu của chúng là để sửa lỗi và thêm vài tính năng mới như resize widget ngay trên homescreen, hỗ trợ thẻ SD,... Android 4.0 Ice Cream Sandwich (Ngày 19 Tháng 10 Năm 2011) Cuối năm 2011, Google chính thức giới thiệu điện thoại Galaxy Nexus, thiết bị đầu tiên trên thị trường sử dụng Android 4.0 Ice Cream Sandwich. Có thể nói Android 4.0 là sự thay đổi lớn nhất trong lịch sử phát triển của Android tính nay. Android 4.0 hỗ trợ một bộ font mới tên là Roboto được cho là tối ưu hóa để dùng trên các màn hình độ phân giải càng ngày càng cao hơn, đồng thời để hiển thị được nhiều thông tin hơn trên màn hình. Hệ thống thông báo (Notification) già nua của Android đã được làm mới hoàn toàn, đẹp hơn, tiện dụng hơn, nhất là tính năng trượt ngang để xóa từng thông báo riêng lẻ. Tương tự như vậy cho tính năng Recent Apps và cả trình duyệt của máy. Bàn phím cũng được làm mới với khả năng tự động sửa lỗi cao hơn, việc sao chép, cắt dán chữ và nội dung cũng tốt hơn bao giờ hết. Đây cũng là lần đầu tiên Google hợp nhất hệ điều hành dành cho smartphone và cho máy tính bảng vào làm một. Đây là một động thái của hãng nhằm giảm thiểu sự phân mảnh vốn đang ngày càng nghiêm trọng của Android. Khi chạy trên máy tính bảng, Android 4.0 sẽ có một giao diện khác tối ưu cho màn hình lớn, nhưng về cơ bản thì tính năng của nó vẫn giống hệt như lúc chạy trên smartphone. Android 4.0 cũng 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 4.1 và 4.2 Jelly Bean (Ngày 9 Tháng 7 Năm 2012) Android 4.1 được giới thiệu tại hội nghị Google I/O với nhiều cải tiến đáng giá và rất được mong đợi. Đây cũng là lúc chiếc Nexus 7 được chính thức ra mắt với sự hợp tác giữa Google với Asus. Về giao diện, không có nhiều thay đổi so với Android 4.0, vẫn là màn hình chính với thanh dock bên dưới quen thuộc. Giao diện kiểu này rất đơn giản nhưng lại đẹp và gọn gàng, giúp chúng ta dễ dàng theo dõi những thông tin xuất hiện trên màn hình, đặc biệt là khi điều khiển các ứng dụng. Ở màn hình Lockscreen, giờ đây vòng trượt mở khóa có đến ba biểu tượng để kích hoạt ba tính năng khác nhau chứ không chỉ có hai như trên Android 4.0. Trượt sang phải để mở khóa máy, sang trái để chạy ứng dụng camera, hai thứ này đã có từ trước. Nhưng nếu người dùng kéo vòng trượt lên bên trên thì sẽ thấy một chữ "Google". Đây chính là cách thức để kích hoạt Google Now. Sự xuất hiện của Google Now cho thấy rằng Google đã bắt đầu bước chân vào việc cạnh tranh với Siri. Với việc nâng cao khả năng tìm kiếm, thay đổi giao diện, tự động theo dõi thói quen sử dụng để đưa ra những thông tin chính xác và thích hợp với người dùng hơn. Trên Android 4.1 có thể tìm kiếm bằng giọng nói và các kết quả trả không chỉ đơn giản là những dòng tìm kiếm nữa mà nó được thiết kế theo dạng thẻ đồ họa, thông minh hơn, trực quan hơn. Không chỉ tìm kiếm theo yêu cầu, Google Now còn tự chủ động thu thập thông tin liên tục dựa vào lịch sử tìm kiếm của người dùng, dựa vào danh sách lịch hẹn để biết người dùng sẽ đi đâu, cần thông tin gì. Nhưng có lẽ 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. Theo như giải thích của Google, độ mượt này có được là nhờ vào dự án Butter. Project Butter đã được Google đề cập tới tại I/O 2012 với mục đích giải quyết tình trạng lag và độ phản ứng không tốt của Android. Với Project Butter, các kỹ sư Android đã tăng framerate cho phiên bản mới nhất này lên 60 khung hình/giây (trước đó trên Android 3.0 hay Android 4.0 framerate là 30 khung hình/giây) cũng như bổ sung VSync, tăng bộ đệm lên gấp ba để nâng cao trải nghiệm người dùng. Project Butter sẽ có tác động trực tiếp tới toàn bộ hệ thống của Jelly Bean nhằm mang tới trải nghiệm người dùng nhanh và mượt mà nhất có thể. VSync sẽ cải thiện hiệu năng đồ hoạ tổng thể trong khi bộ nhớ đệm tăng gấp ba lần sẽ cho phép GPU và CPU cũng như màn hình hoạt động song song với nhau. Hồi Google I/O, Google đã mang một máy quay chậm có tốc độ lên tới 300 khung hình/giây để so sánh độ mượt. CẤU TRÚC CỦA ANDROID. Bộ Nạp Khởi Động - BootLoader Ở mức độ cơ bản nhất, smartphone giống như một ổ đĩa cứng đã được phân vùng hoàn chỉnh. Một trong số các vùng đó lãnh nhận trách nhiêm nặng nề: chứa tất cả các tập tin khởi động của hệ điều hành Android; số còn lại nhận trách nhiệm lưu trữ tất cả các phần mềm, dữ liệu. Tại đó người dùng có thể làm được rất nhiều thứ với các công cụ có sẵn. Có thể nói rằng, bộ nạp khởi động cũng giống như một trạm kiểm soát an ninh cho hệ thống. Nếu thay đổi bất cứ thứ gì trên phân vùng này, người dùng có thể phá vỡ hoạt động ổn định của hệ điều hành. Hoặc nếu rành về lập trình, người dùng có thể tùy chỉnh hệ thống phù hợp với mình Có rất nhiều sự phàn nàn về việc bootloader bị mã hóa. Và trên thực tế, đa số các điện thoại đều khóa phân vùng này lại, kể cả các nhà phát triển được cho là gần gũi nhất như Nexus. Nói một cách chính xác nhất, tất cả các phân vùng khởi động đều được khóa và mã hóa chặt chẽ, nghĩa là khó có thể mở nó một cách dễ dàng và các lệnh mở khóa tương tự như “fastboot oem unlock” sẽ chẳng ăn thua gì! Chính việc khóa bootloader đã nảy sinh nhiều vấn đề trong việc thay thế linh kiện giữa các dòng sản phẩm. Điều đó đã mở ra cuộc chạy đua giữa các nhà sản xuất phần cứng trong vấn đề này. HTC, Samsung và Motorola đều khóa bootloader của họ. Tuy nhiên trong những năm gần đây, đặc biệt trong vài tháng gần đây, hầu hết các nhà sản xuất đều cung cấp một số công cụ hoặc mật mã để người sử dụng có thể truy cập vào bootloader của mình. HTC và Sony Ericsson đã cung cấp ứng dụng để bẻ khóa bootloader của họ, ASUS chỉ cung cấp ứng dụng này trên một số phiên bản hạn chế của hãng. Sony Ericsson, Motorola hứa sẽ trình làng ứng dụng đó trong thời gian sớm nhất, LG và Samsung hứa sẽ cung cấp các sản phẩm mà bootloader không bị khóa. Câu hỏi được đặt ra là tại sao bootloader lại bị khóa lại? Có rất nhiều câu trả lời và câu trả lời đáng chú ý nhất và cũng là giá trị nhất đó chính là để hạn chế dữ liệu trên hệ thống của người dùng bị hack. Trong hệ thống đó chắc chắn sẽ chứa những dữ liệu nhạy cảm mà hacker có thể lợi dụng để làm thiệt hại đáng kể cho người dùng. Chính vì lý do đó mà các nhà sản xuất đã tốn một khoản không nhỏ đầu tư nghiên cứu về vấn đề này. Tuy nhiên, cũng có rất nhiều ý kiến trái chiều về việc có hay không có sự cần thiết của việc “lock bootloader”. Ngôn ngữ của Android. Android chắc chắn cũng sẽ có ngôn ngữ riêng của Android. Một trong đó chính là Dalvik. Thực chất, Dalvik không hẳn là một phương tiện lập trình để viết thành ngôn ngữ của Android. Có thể giải thích một cách cơ bản Dalvik chính là một máy ảo chạy các ứng dụng được viết bằng Java. Chương trình Java cơ bản sẽ mã hóa những ngôn ngữ lập trình bằng một số thuật ngữ riêng biệt để tạo ra những tập tin lập trình riêng biệt – bytecode – sau đó các tập tin này được biên soạn thành một tập tin dex. Chính Dalvik sẽ đọc và xử lý tập tin này. Về bản chất, các tập tin của hệ thống ngôn ngữ lập trình (Java chẳng hạn) được biến đổi thành các tập tin dex mà các Dalvik có thể sử dụng (tương tự một số tập tin jar nếu một người sử dụng tiêu chuẩn Java VM). Các dữ liệu lập trình chỉ được dịch một lần ra các tập tin dex, giúp tiết kiệm không gian và sử dụng đĩa cứng tiết kiệm hơn. Các tập tin đó có thể được sửa đổi đôi chút khi người dùng cài đặt một ứng dụng để tối ưu hóa cho điện thoại di động của người dùng. VM Dalvik được viết dành riêng cho Android sử dụng. Dalvik là một phiên bản tối ưu hóa của một Java Virtual Machine, được xây dựng từ dự án Apache Harmony, Dalvik là một phiên bản mã nguồn mở để chạy tốt hơn so với một tiêu chuẩn Java VM trên phần cứng hạn chế của một hệ thống nào đó. Dalvik cũng được thiết kế để sử dụng như một máy chủ đa nhiệm tại một thời điểm nhất định nào đó. Điều thú vị là Dalvik là một phần mềm mã nguồn mở, có thể được sử dụng trên các hệ điều hành khác, nó được sử dụng trên các dòng BlackBerry PlayBook. Hacking – Root. Đối với hacking trong Android Central là vấn đề truy cập vào phần mềm (hoặc phần cứng) và thay đổi mọi thứ cho đến khi chúng phù hợp với sở thích của cá nhân. Đó chính là ý nghĩa đầu tiên của cụm từ Hacking khi nó mới ra đời. Android hacking bao gồm nhiều thành phần, từ việc nhỏ nhặt nhất, thú vị nhất như: thay đổi biểu tượng, trạng thái và màu sắc của các biểu tượng,… cho tới những thành phần đồ sộ như: xây dựng tùy chỉnh AOSP ROMs,… Hầu hết thời gian cài đặt và sử dụng các công cụ hack này sẽ yêu cầu người dùng xác nhận thông tin, nếu như người dùng xâm nhập quá sâu vào hệ thống, việc yêu cầu xác nhận lại thông tin từ nhà sản xuất là khó tránh khỏi. Điều đó là cần thiết để bảo vệ người dùng khỏi sự tấn công của hacker mũ đen. Kernel Nói chính xác thì Kernel chính là nhân của hệ điều hành Android, nó chỉ dành riêng cho Android. Những hệ điều hành khác cũng có nhân của riêng nó, iOS, MacOS hay Windows. BlackBerry cũng có một kernel của riêng nó. Android là hệ điều hành sử dụng nhân Linux, nhưng không phải chính là nhân để chạy hệ điều hành Linux của các thiết bị chạy Linux. Có rất nhiều mã lập trình của Android sử dụng rất riêng so với hệ thống Linux, ví dụ như kernel của Google’s Android sử dụng có chế độ làm việc riêng của nó. Hệ thống lập trình OEMs là ngôn ngữ chủ đạo để viết nên hệ thống cho Kernel, bởi vì nó là phương tiện dùng để lập trình các hệ thống driver cho các phần cứng khác cho các phiên bản khác nhau của Android Kernel. Điều quan trọng của Kernel là kiểm soát và điều khiển phần cứng, hiểu một cách đơn giản, Kernel chính là một mối nối và là “thông dịch viên” giữa phần cứng và phần mềm. Khi phần mềm cần phần cứng làm một việc gì đó, nó sẽ gửi yêu cần tới bộ vi xử lý và nó sẽ nói “các người dùng nói bất cứ cái gì, chúng tôi sẽ đáp ứng cái đó”. Từ trình điều khiển độ sáng màn hình, mức âm lượng, hiệu suất tốc độ của thiết bị, điều khiển xung nhịp CPU. Ngay cả việc di chuyển con trỏ chuột hay ngón tay lướt trên màn hình cảm ứng… tất cả đều được kiểm soát bởi kernel. Thử ví dụ một việc điển hình: nhấp vào nút “Search” trên smartphone để gọi ứng dụng tìm kiếm ra. Làm cách nào mà smartphone hiểu được rằng người dùng đã nhấp vào nút “Search” đó? Khi tay chạm vào màn hình cảm ứng của smartphone chính là đã chạm vào một tọa độ đã được định vị sẵn của smartphone. Một phần mềm hệ thống sẽ kiểm soát toàn bộ những tọa độ có trên màn hình đã được mã hóa thành những tọa độ, phần mềm đó biết rằng hộp “Search” cư ngụ tại địa chỉ nào. Và khi tọa độ định vị của nút Tìm kiếm đó được “chạm phải”, khi đó phần mềm hệ thống sẽ nhận thông tin được mã hóa ghi nhận lại và chuyển cho Kernel xử lý tín hiệu vừa nhận được. Tại Kernel, lệnh vừa nhận được sẽ được xử lý và chuyển ngay đế những nơi có nhiệm vụ thực thi lệnh đó và sẽ được “chấp hành” tại đó. Đôi khi hệ thống và Kernel không chỉ nhận được những thông tin từ những những dòng lệnh được đưa vào từ màn hình cảm ứng, nó cũng có thể nhận tín hiệu từ một thiết bị khác bằng cách này hay cách khác, Bluetooth chẳng hạn. Nghe có vẻ phức tạp, nhưng logic của máy tính luôn luôn đi theo một hướng đã được định sẵn: một hành động sẽ tạo ra một hiệu quả, không lộn xộn. Nếu không có Kernel thì người dùng chả làm ăn gì được kể cả với smartphone. Không có “người” nhận lệnh, xử lý lệnh, thực thi và kiểm soát những nơi thực thi lệnh đó. Tất cả phần mềm và phần cứng của chiếc smartphone trị giá bạc triệu cũng chả có ý nghĩa gì. Tuy nhiên, để Kernel hiểu được và nhận diện được các phần cứng khác nhau, các nhà sản xuất phải cho Kernel “học” bằng một phần mềm mà chúng ta vẫn hay gọi là “driver”. Với Android Kernel, tất cả những kết nối đều thông qua một hệ thống ngôn ngữ lập trình API và OEM, các nhà phát triển cũng dựa vào hệ thống này mà viết nên những hệ thống driver của họ. Có một số nhà phát triển hệ thống cho Kernel như: Abyss kernel, FM kernel, Speedmod kernel, Franco kernel, Cfoot kernel. NHƯỢC ĐIỂM CỦA ANDROID. Tại Sao Android Lại Kém Mượt Và Pin Yếu? Android sẽ mất 256MB Heap size RAM dành cho một thứ gọi là Dalvik Cache thứ mà không có trên tất cả các HĐH khác từ trước đến giờ, kể cả những HĐH sử dụng Java. Nó đóng vai trò như một vùng nhớ đệm, chứa phần mã máy đã được tạm thời biên dịch và thực thi nó như là các mã máy bình thường khác. Về nguyên tắc thì dù là chạy trên VM thì tốc độ của Android cũng không bị ảnh hưởng gì cả, có chăng là sẽ tốn thêm thời gian để nạp ứng dụng và biên dịch JIT, một khi anh ấy đã hoạt động rồi thì không có gì cản trở cả. Quay lại vấn đề tại sao hiệu suất Android lại bị đánh giá thấp hơn iOS, WP hay BB10. Vấn đề nằm ở tư tưởng thiết kế HĐH. Trước hết phải nói đến "hành vi" sử dụng smartphone không giống như sử dụng máy tính, trên smartphone anh không cần dùng "cửa sổ" này mà vẫn thấy cửa sổ khác, và anh không cần các cửa sổ phải cùng nhau hoạt động cùng một lúc. Bởi vì cửa sổ duy nhất mà anh cần đó là cái màn hình hiện tại. Vì vậy Apple mới đưa ra một kỹ thuật gọi là Pseudo Multitasking, nó hoạt động kiểu như thế này: Ứng dụng sẽ không được "keep running" khi mà anh chuyển đổi từ ứng dụng này sang ứng dụng khác, nói một cách khác nó sẽ bị tắt hoàn toàn. Nhưng trước khi nó được tắt, Apple cung cấp cho chúng ta một state, ở đó ta có thể lưu lại những dữ liệu cần dùng trong lần khởi động tới (những dữ liệu này sẽ được gọi là session), ứng dụng tắt hoàn toàn hệ thống không cần phải quản lý gì nữa, mọi thứ clean. Ở lần khởi động thứ 2, sau khi khởi động ứng dụng và trước khi hiện ra apple lại cung cấp cho chúng ta một state, ở đấy đọc những dữ liệu đã được ghi trước đó, và phục hồi lại trạng thái ứng dụng trước khi tắt ở lần trước. Về phía Android, ứng dụng sẽ được chạy theo một mô hình lifecycle phức tạp hơn gồm nhiều trạng thái tương tự như iOS, nhưng có một điểm khác. Đó là ứng dụng Android vẫn "keep running" khi thoát ra. Lý giải cho việc ứng dụng được giữ tiếp tục chạy trong hệ thống, đội ngũ phát triển Android của Google nói rằng, như vậy khi nào cần thì mọi thứ đã có sẵn, ứng dụng không cần phải đợi nạp lại. Khi nào cần đến chỉ việc gọi thôi. Tuy nhiên kéo theo đó là cả một hệ lụy Trước hết nói thêm về 2 khái niệm cơ bản của HĐH: - Memory paging hay còn gọi là "phân trang", thực tế viết đầy đủ là Memory allocation in paging systems, đây là một tính năng của HĐH nhằm phân chia tài nguyên RAM của hệ thống, khi nạp 1 ứng dụng lên thì HĐH cần phải biết vị trí nào trong RAM còn trống, đủ kích thước nạp ứng dụng đó, và khi cần xử lý thì nó phải có một index chỉ đường đến vị trí nạp ứng dụng chứ nếu không làm sao mà biết đường lần trong hàng tỉ ô nhớ của hệ thống. - System scheduling, gọi là "định thì" hệ thống, nó khá là quan trọng, bởi vì bản chất của CPU nó chỉ xử lý có một lệnh / 1 IPC thôi, trong khi có nhiều process cần được xử lý, vì vậy mới cần thằng "cảnh sát giao thông" này, nó là thằng quyết định xem process nào được vào gặp "sếp lớn", còn những thằng còn lại sẽ phải đứng chờ trong một "hàng đợi", còn đợi bao lâu thì tùy vào thuật toán định thì cụ thể. Ở cả Android lẫn iOS thì mặc định thuật toán định thì đều là dạng tuần tự theo lượt, vào trước ra trước FIFO. Tuy nhiên do tính mở Android có thể thay đổi được bằng các Kernel bên ngoài. Lý do đơn giản là việc phân phối tài nguyên của hệ thống. Ngoài ra số lượng process mà iOS phải xử lý sẽ ít hơn (vì khi chuyển ứng dụng thì process đã bị tắt cùng với ứng dụng trước đó rồi) Với iOS toàn bộ tài nguyên của hệ thống có thể được huy động tối đa để phục vụ cho một ứng dụng, ngoài ra việc phân trang và định thì của hệ thống không phải là gánh nặng và vì thế nó có thể hoạt động trơn tru hơn Android mặc dù CPU có thể yếu hơn, RAM có thể ít hơn, và vì lý do đó nên tiêu thụ năng lượng cũng ít hơn dẫn đến thời lượng pin sẽ nhiều hơn. Với Android, điều đáng buồn là một HĐH di động lại bị kỳ vọng quá mức vào khả năng xử lý multitasking, Google muốn biến nó trở thành một HĐH máy tính??? Sử dụng true multitasking đồng nghĩ với anh phải phân chia tài nguyên cho nhiều ứng dụng hơn, phân trang phức tạp hơn, định thì phức tạp hơn anh phải xử lý tranh chấp tài nguyên, ngăn ngừa deadlock... Tất cả những cái đó vô hình chung làm cho Android hiệu suất kém hơn, tốn tài nguyên hơn và tiêu thụ nhiều năng lượng hơn (do phải xử lý nhiều hơn) Việc so sánh giữa iOS với Android cũng giống như kiểu có 2 anh lực sĩ, anh iOS dùng cả 2 tay nâng 1 quả tạ 100kg, còn anh Android thì mỗi tay một quả 100kg, ngoài ra còn phải treo trên người một tá phụ kiện lỉnh kỉnh nữa. Bởi vậy nên với các thiết bị Android, người ta mới dùng giải pháp là cung cấp thêm tài nguyên hệ thống, bằng cách nâng cấp thêm CPU, RAM, tăng thêm pin. Điều đáng buồn là hiện tại trong tất cả các HĐH di động chỉ có một mình Android là xây dựng theo thiết kế true multitasking, còn lại cả WP, lẫn BB10 đều thiết kế theo mô hình tương tự như Apple có chỉnh sửa phù hợp với "triết lý" của họ. Nếu như thiết kế của Apple tốt thế thì Android giờ "cải lùi" thiết kế lại Android theo cách đó được không? Câu trả lời là có thể và cũng không thể. Việc nâng cấp từ một HĐH đơn nhiệm hoặc giả đa nhiệm lên đa nhiệm dễ hơn là làm ngược lại, bởi vì nâng cấp thì chỉ cần chèn thêm các states mới vào mô hình chạy ứng dụng thôi, các ứng dụng vẫn có thể chạy bình thường. Còn làm ngược lại thì các ứng dụng cũ có các state mà đơn nhiệm không có sẽ... mất bớt tính năng, mất công phát triển lại lắm, cũng giống như các apps chạy qua VM giả lập trên BB10 có nhiều cái không đầy đủ tính năng như chạy trên Android. Android hiện tại thì vẫn đang phát triển, và bên cạnh đó chính những yếu điểm của nó cũng có lợi ích làm kéo theo cuộc đua phần cứng. Tạm không nói đến vấn đề tư tưởng thiết kế của iOS tốt hơn hay Android tốt hơn. Nhưng có một điều rõ ràng phải công nhận, Android là một cuộc cánh mạng, vì nó cho chúng ta có thêm lựa chọn và nhờ đó thúc đẩy thế giới sang một thời kỳ mới, kỷ nguyên của smartphone và điện toán di động. Thiết nghĩ việc thay đổi bộ khung phát triển của Android là điều cần xảy ra mặc cho những khó khăn và hệ lụy. Vấn đề lag của Android phải được đặt lên hàng đầu bởi nội dung phàn nàn nhiều nhất về Android vẫn là "chậm" và "giật". Bên cạnh đó, giao diện hay lag sẽ phá vỡ cốt lõi ngôn ngữ của màn hình cảm ứng. Thiết bị với màn hình cảm ứng sẽ không còn "tự nhiên" nữa và màn hình cảm ứng cũng mất đi tính chất "ma thuật" của nó. Android cần phải khắc phục nhược điểm kể trên nếu không muốn mất đi hình tượng của mình trong lòng người dùng. Sự Phân Mảnh Của Android. Sự phân mảnh của Android là gì? Đó là sự phân chia thành nhiều loại khác nhau khi nói đến phiên bản Android, kích thước màn hình của những thiết bị Android, độ phân giải, giao diện, tên nhà sản xuất, model máy,... Vậy tại sao phải "Chống phân mảnh"? Hiện tượng phân mảnh sẽ làm suy yếu khả năng tương tác trên cùng một nền tảng. Khi ứng dụng tương thích với phiên bản hệ điều hành này và thiết bị này lại không chạy được trên phiên bản khác và thiết bị khác sẽ gây khó khăn cho người dùng, nhà sản xuất và cả lập trình viên. Vì vậy, các nhà cung cấp sẽ gặp trở ngại lớn khi cần tạo ra những ứng dụng thích hợp với nhiều dòng máy khác nhau. Sự phân mảnh của Android mang lại khá nhiều ảnh hưởng cho cộng đồng, từ người dùng, lập trình viên cho đế các hãng sản xuất lẫn nhà mạng. Mặt tốt là người dùng có thể lựa chọn hàng nghìn thiết bị mà họ thích, từ một chiếc smartphone Android giá rẻ cho đến smartphone cao cấp có tích hợp máy chiếu hay màn hình 3D. Tùy chọn cũng phong phú hơn cho việc chạy mạng GSM, CDMA, thậm chí là cả hai. Mặt trái là phần cứng bên trong, kích thước màn hình và ROM tùy biến quá nhiều khiến cho việc chọn lựa ứng dụng, thiết bị cũng như quá trình thiết kế phần mềm trở nên gian nan hơn. 2.1) Model OpenSignalMaps ghi nhận có tất cả 3997 model máy khác nhau trong tổng số thiết bị mà hãng nghiên cứu. Trong đó, chiếc Samsung Galaxy S II GT-i1900 là phổ biến nhất với 61.389 máy. Một vấn đề mà hãng gặp phải đó là các bản ROM tùy biến đôi khi chỉnh sửa lại thông số về model máy nên có 1363 thiết bị chỉ xuất hiện một lần duy nhất trong cơ sở dữ liệu. Thật ra, tất cả các thiết bị này đều là hàng chính hãng nhưng chúng không phổ biến, chẳng hạn như Concorde Tab (máy tính bảng 10.1 của Hungari), Lemon P1 (điện thoại hai SIM ở Ấn Độ), Energy Tablet i724 (máy tính bảng dùng cho việc giải trí gia đình ở Tây Ban Nha), 2.2) Thương hiệu Cũng như model máy, thương hiệu của các thiết bị chạy Android cũng phân mảnh không kém, cho thấy rằng Android rất dễ dàng để tích hợp. Có tất cả 599 thương hiệu được ghi nhận, và một số có thể không chính xác cũng do ROM tùy biến. Có hai chiếc máy tính bảng FusionGarage vốn đã bị hủy bỏ đột ngột và chiếc smartcamera 7 của Polaroid. Samsung vẫn là thương hiệu phổ biến nhất với 270.144 máy, chiếm 40% tổng số thiết bị tham gia vào nghiên cứu. 2.3) Phiên bản Android. Hai năm trước, theo OpenSignalMaps, 2.3 là phổ biến nhất. Ngạc nhiên thay, hiện nay thì Android 2.3.3 Gingerbread vẫn chiếm tỉ trọng lớn trong số các thiết bị nghiên cứu. 2.3.3 chỉ là một bản nâng cấp của 2.3 với không nhiều thay đổi lớn, chủ yếu để sửa lỗi mà thôi. 2.4) Độ phân giải màn hình Hiện tại các thiết bị của Android hầu hết đều có tỉ lệ màn hình 5:3 Biểu đồ thể hiện sự phổ biến của các độ phân giải màn hình trên máy Android 2.5) Các bản ROM Từ một bản ROM gốc của Google đưa ra (rom stock). Các lập trình viên có thể tùy biến tinh chỉnh thay đổi một số thứ, dẫn đến tình trạng trên thế giới hiện nay có quá nhiều bản rom tùy biến hay còn gọi là ROM COOK. Malware Trên Android. Như chúng ta đã biết, Android là một mã nguồn mở, chính vì thế nên nó thu hút rất nhiều những lập trình viên, trong đó có cả những hacker. Tại sao hacker lại nhắm vào Android? Cách đây không lâu, theo thống kê thì đã có đến gần 1 triệu thiết bị Android được kích hoạt trong vòng 1 ngày (năm 2011 là 850.000 thiết bị/ ngày). Với một mảnh đất màu mỡ như Android, rất dễ để các hacker có thể thu lợi cho bản thân mình thông qua các chương trình độc hại. Tháng 10/2011, Computerworld UK cho biết Google đã tìm ra một lỗi vào khoảng thời gian tháng 8 cùng năm và cung cấp bản vá lỗi ngay lập tức, nhưng các nhà sản xuất điện thoại thông minh lại không cập nhật kịp bản vá này. 7 tháng sau, một phần mềm độc hại dạng trojan tên là Droid Dream đã xuẩt hiện (vào tháng 3/2011), khai thác lỗi này và lây nhiễm cho khoảng 250.000 điện thoại thông minh Android.  Nền tảng Android kém bảo mật hơn so với iOS nhưng nhiều người dùng iPhone lại bẻ khóa (jailbreak) thiết bị của mình và mở ra các kẽ hở để tin tặc có thể lợi dụng. iPhone như một khu vườn “kín cổng cao tường” được bảo vệ kỹ càng song lại gò bó và bị giám sát chặt chẽ, trong khi Android lại là một môi trường mở và phóng khoáng tự do hơn. Google không làm tốt công tác giám sát kiểm tra ứng dụng như Apple song nó lại tạo điều kiện cho những người dùng ưa khám phá có điều kiện trải nghiệm những ứng dụng tuyệt vời mà người dùng Apple không thể nào có được”. GOOGLE THU LỢI TỪ ANDROID NHƯ THẾ NÀO? Một trong những lý do khiến Android trở nên phổ biến là việc HĐH này được Google phát hành dưới dạng mã nguồn mở hoàn toàn miễn phí. Điều này có nghĩa là tất cả các hãng sản xuất như HTC, Samsung, Motorola, LG... đều có thể sản xuất smartphone Android mà không mất 1 đồng chi phí bản quyền nào trả cho Google.  Liệu Google có cảm thấy sung sướng trước sự thành công của Android nếu hãng này không kiếm được 1 xu từ nó? Chắc chắn là không. Google không phải là 1 tổ chức từ thiện, Android, không nghi ngờ gì, là 1 công cụ "làm tiền" của Google. Thế nhưng câu hỏi đặt ra là, liệu Google kiếm tiền từ Android như thế nào, nếu với mỗi chiếc smartphone Android xuất xưởng Google không thu được 1 đồng nào từ chính HĐH mà họ phải bỏ ra hàng trăm triệu, thậm chí có thể là hàng tỉ, USD để phát triển? Google là 1 công ty quảng cáo, để quảng cáo trúng đích, Google phải có thông tin về đối tượng xem những quảng cáo đó. Họ thu thập các thông tin này bằng nhiều cách, và Android đơn giản là 1 công cụ hỗ trợ Google điều tra người dùng. Bản thân các thiết bị chạy Android cũng là những quầy trưng bày quảng cáo của Google. Các ứng dụng miễn phí trên Android cũng đi kèm quảng cáo. Phần tiền thu được từ các quảng cáo này được Google và người phát triển ứng dụng đó cưa đôi. Bên cạnh quảng cáo, Google còn một vài cách nữa để làm tiền từ Android. Mà đầu tiên là từ việc bán các ứng dụng như Gmail, Google Search cho các nhà sản xuất thiết bị. Cụ thể là những hãng sản xuất như HTC, Motorola... muốn đưa các ứng dụng của Google như Gmail, Google Search vào sản phẩm của mình thì phải trả 1 khoản phí cho Google.  Bên cạnh đó, Google Play cũng là 1 nguồn thu của Google. Google thu 1 khoản phí trên mỗi ứng dụng bán được. Mặc dù với tình hình kinh doanh bết bát của Google Play, có lẽ số tiền này cũng không thực sự lớn. Và kể cả trong trường hợp ứng dụng không bán được, Google vẫn thu được tiền vì 1 lập trình viên muốn đăng tải ứng dụng trên Google Play thì phải trả 1 khoản phí gia nhập, và khoản phí này tất nhiên là sẽ chảy vào túi Google. KẾT LUẬN. Android là vẫn đang tiếp tục phát triển mạnh mẽ từng ngày. Trong 5 năm qua, Android đã trải qua 11 phiên bản khác nhau với nhiều cải tiến và thay đổi, để từ đó Google đã tạo nên một hệ sinh thái mà ở đó rất nhiều các thiết bị chạy hệ điều hành này. Android ra đời lúc mà thị trường di động đang ở dưới sự thống trị tuyệt đối bởi Symbian OS của Nokia và BlackBerry OS của RIM, nhưng chỉ một vài năm sau đó, hệ điều hành này đã nhanh chóng vươn lên với tốc độ vượt bậc và bây giờ kết quả ai cũng dễ nhận ra, Android OS đã chiếm thị phần lớn nhất, hơn 75% thị phần di động toàn cầu. Nói tóm lại, trong 5 năm ra mắt, ANDROID đã đi từ con số 0 lên đến NGÔI VƯƠNG CỦA THỊ TRƯỜNG DI ĐỘNG.

Các file đính kèm theo tài liệu này:

  • docdat_tung_huyen_android_525.doc