Nghiên cứu phát triển phần mềm nhúng cho các thiết bị cầm tay trên nền tảng Android

  • Số trang: 61 |
  • Loại file: PDF |
  • Lượt xem: 18 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ THU HIỀN NGHIÊN CỨU PHÁT TRIỂN PHẦM MỀM NHÚNG CHO CÁC THIẾT BỊ CẦM TAY TRÊN NỀN TẢNG ANDROID LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI, 2013 1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ THU HIỀN NGHIÊN CỨU PHÁT TRIỂN PHẦM MỀM NHÚNG CHO CÁC THIẾT BỊ CẦM TAY TRÊN NỀN TẢNG ANDROID Ngành: Chuyên ngành: Mã số: Công nghệ thông tin Công nghệ phần mềm 60.48.10 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. LÊ QUANG MINH HÀ NỘI, 2013 2 MỤC LỤC LỜI CAM ĐOAN.................... Error! Bookmark not defined. MỤC LỤC ............................................................................ 3 DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT .................. 5 DANH MỤC HÌNH VẼ, ĐỒ THỊ ....................................... 6 DANH MỤC BẢNG ............................................................ 7 MỞ ĐẦU............................................................................... 8 1.1.Nghiên cứu khảo sát bài toán ...................................................... 10 1.2. Phân tích bài toán ....................................................................... 11 1.3. Hệ điều hành di động .................................................................. 11 1.3.1. Đặc điểm của hệ điều hành di động .............................................. 11 1.3.2. So sánh hệ điều hành Android với các hệ điều hành iOS ............ 12 1.3.3. Mã nguồn mở ................................................................................ 13 2.1.Tổng quan về Android ................................................................. 14 2.1.1. Android là gì? ................................................................................ 14 2.1.2. Lịch sử phát triển Android ............................................................ 14 2.1.3. Các phiên bản Android .................................................................. 15 2.2. Kiến trúc của hệ điều hành Android ......................................... 20 2.2.1. Tầng Linux Kernel ........................................................................ 21 2.2.2. Tầng Libraries + Android Runtime ............................................... 21 2.2.3. Tầng Application Framework ....................................................... 23 2.2.4. Tầng Application ........................................................................... 24 2.3. Hệ thống tập tin trên Android ................................................... 25 2.4. Quá trình khởi tạo Android ....................................................... 26 2.5. Khả năng hỗ trợ phát triển ứng dụng........................................ 28 2.5.1. Yêu cầu về phần cứng ................................................................... 28 2.5.2. Android SDK ................................................................................. 28 3 2.5.3. Java Development Kit (JDK) ......................................................... 30 2.5.4. Eclipse IDE.................................................................................... 30 2.5.5. Android Emulator ......................................................................... 30 CHƯƠNG 3: TÍCH HỢP ANDROID VỚI THIẾT BỊ PHẦN CỨNG ..................................................................... 32 3.1. Lựa chọn phần cứng ................................................................... 32 3.1.1. Chuẩn bị lựa chọn phần cứng ...................................................... 32 3.1.2. Lựa chọn thiết bị ........................................................................... 36 3.2. Thiết lập môi trường phát triển ................................................. 39 3.3. Quá trình tích hợp Android ....................................................... 40 CHƯƠNG 4: PHÁT TRIỂN PHẦN MỀM TRÊN ANDROID .......................................................................... 47 4.1. Cấu trúc của một ứng dụng........................................................ 47 4.1.1. Activity ........................................................................................... 47 4.1.2. Service ........................................................................................... 49 4.1.3. Content Provider............................................................................ 50 4.1.4. Intent ............................................................................................. 51 4.1.5. Broadcast Receiver ........................................................................ 51 4.1.6. Notification .................................................................................... 51 4.2. Xây dựng ứng dụng .................................................................... 51 4.2.1. Mục tiêu của ứng dụng ................................................................. 51 4.2.2. Yêu cầu về chức năng ................................................................... 52 4.2.3. Mô hình Usecase ........................................................................... 52 4.2.4. Biểu đồ tuần tự của hệ thống ........................................................ 53 4.2.5. Thiết kế các thành phần ................................................................ 54 4.2.4. Tính năng hỗ trợ tương tác ........................................................... 55 4.3. Kết quả phát triển và thử nghiệm .............................................. 57 KẾT LUẬN ........................................................................ 59 TÀI LIỆU THAM KHẢO ................................................. 61 4 DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT Từ viết tắt Diễn giải API Application Programming Interface ARM Acorn RISC Machine CPU Central Processing Unit FLAC Free Lossless Audio Codec FOSS Free and Open Source Software GNU Gnu not unix GPS Global Positioning System GPU graphics processing unit HTML HyperText Markup Language IMAP Internet Message Access Protocol POP3 Post Office Protocol version 3 RISC Reduced Instructions Set Computer SDK Software Development Kit SGL Scene Graph Library SMTP Simple Mail Transfer Protocol SoC System on Chip SSL Secure Sockets Layer XHTML Extensible HyperText Markup Language 5 DANH MỤC HÌNH VẼ, ĐỒ THỊ Hình 2.1: Kiến trúc hệ điều hành Android Hình 2.2: Kiến trúc tầng Linux Kernel Hình 2.3: Kiến trúc tầng Libraries + Android Runtime Hình 2.4: Kiến trúc tầng Application Framework Hình 2.5: Kiến trúc tầng Applications Hình 2.6: Quá trình khởi tạo Android từ nhân Linux Hình 2.7: Cửa sổ thiết lập máy ảo Hình 2.8: Giao diện Android Emulator Hình 3.1: Cổng VGA Hình 3.2: Cổng HDMI Hình 3.3: Thủ tục hợp nhất nhân Hình 4.1: Vòng đời của một ứng dụng Hình 4.2: Hai cách gọi Service Hình 4.3: Mô hình usecase Hình 4.4: Biểu đồ tuần tự của hệ thống Hình 4.5. Giao diện phần mềm NotesEX Hình 4.6. Giao diện phần mềm NotesEX sau khi lưu ghi chú 6 DANH MỤC BẢNG Bảng 1.1: So sánh hệ điều hành Android với hệ điều hành iOS Bảng 2.1. Các phiên bản của Android Bảng 2.2: Các kiểu file trên HĐH Android Bảng 2.3: Quyền hạn trên file Bảng 2.4: Android SDK Bảng 2.5: Các gói thư viện SDK Bảng 2.5: JDK yêu cầu không gian đĩa Bảng 3.1: Mục tiêu sử dụng của từng đối tượng Bảng 4.1: Kịch bản kiểm tra chức năng 7 MỞ ĐẦU Trong những năm gần đây, với sự phát triển của nền kinh tế và tri thức, kèm theo đó là sự phát triển về công nghệ đặc biệt là công nghệ số. Với hàng loạt các thiết bị cảm ứng, máy tính bảng có thiết kế nhỏ gọn, nhiều chức năng. Cùng với nó là sự ra đời của hệ điều hành mã nguồn mở, công nghệ, chuẩn kết nối, cho phép các nhà khoa học có thể tùy ý lựa chọn và xây dựng các thiết bị cầm tay theo những chức năng khác nhau như: điện thoại, máy tính bảng, máy chơi game, từ điển, thiết bị định vị, ... Bên cạnh đó hệ thống nhúng cũng đang rất phát triển trong công nghệ thông tin và truyền thông, ở đó các chức năng xử lý được ứng dụng cụ thể cho các thiết bị như điện thoại di động, đồ điện tử cầm tay, các thiết bị máy tính,… Phần mềm cho hệ thống nhúng hay gọi là phần mềm nhúng, là một lĩnh vực công nghệ chính của nhiều quốc gia như Mỹ, Nhật Bản, Hàn Quốc, Ấn Độ, ..tại các quốc gia này đều có nhiều chương trình hỗ trợ để phát triển công nghệ phần mềm nhúng. Và hiện tại Việt Nam cũng là một trong những quốc gia cũng đang có các chương trình hỗ trợ. Ngày 22/9/2010, Thủ tướng chính phủ ký Quyết định số 1755/QĐ-TTg phê duyệt Đề án “Đưa Việt Nam sớm trở thành nước mạnh về công nghệ thông tin và truyền thông” (trong Đề án nước mạnh). Trong các hệ nhúng thì hệ điều hành hay được sử dụng nhất hiện nay là Embeded Linux, Win CE, DOS, Lynyos, .. Và mới đây, thì hệ thống nhúng và phần mềm nhúng đang được kêu gọi phát triển trên hệ điều hành Android. Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát HD, TV, ..) được phát triển bởi Google và dựa trên nền tảng Linux. Đứng ở góc độ nghiên cứu và phát triển phần mềm nhúng cho các thiết bị cầm tay. Android được lựa chọn bởi tính tương thích cao, hệ điều hành mở, miễn phí và có khả năng cạnh tranh tốt với các hệ điều hành khác và không phụ thuộc vào duy nhất một nhà sản xuất phần cứng nào. Hơn nữa, các nhà sản xuất thiết bị có thể mở rộng hoặc thay đổi các tính năng của hệ điều hành để tạo ra sản phẩm riêng của mình. Và trong những năm gần đây, các nhà công nghệ trong nước đã nhanh chóng thành lập cộng đồng phát triển Android, nhằm giới thiệu về công nghệ và sản phẩm liên quan đến Android. Với tiềm năng về thị trường tablet cùng với sự hỗ trợ của hệ điều hành Android đã tạo ra cơ hội lớn cho các nhà sản xuất công nghệ. Và với lợi ích và xu hướng công nghệ mới, thông qua đề tài “ Nghiên cứu phát triển phần mềm nhúng cho các thiết bị cầm tay trên nền tảng Android”, tôi hướng tới việc đưa ra cách tích hợp hệ điều hành Android cho phần cứng của nhiều nhà cung cấp thiết bị, cũng như việc phát triển ứng dụng trên hệ điều hành này. 8 Như chúng ta đã biết, khi một nhà sản xuất khi tạo ra bất kỳ một sản phẩm đều phải có một quy trình sản xuất ra thành phẩm. Trên thực tế đối với ngành công nghệ thông tin nói riêng, ngoài sản phẩm về phầm mềm và phần cứng ra, còn có sản phẩm nhúng. Sản phẩm nhúng dựa trên sự kết hợp của phần mềm và phần cứng, chúng được ứng dụng, phát triển ngày một nhiều do nhu cầu và sự phát triển của thế giới này nay. Và cũng giống như sản phẩm là phầm mềm và phần cứng, thì sản phẩm là hệ thống nhúng cũng có một quy trình thành phẩm như sau [19] : - Giai đoạn 1: Nghiên cứu – dựa vào các công cụ đánh giá có sẵn. - Giai đoạn 2: Xác thực khái niệm – phân tích bài toán. - Giai đoạn 3: Kiểm tra hệ thống phần mềm và phần cứng. - Giai đoạn 4: Tích hợp hệ thống – emulator. - Giai đoạn 5: Tạo mẫu. - Giai đoạn 6: Thành phẩm . Dựa trên quy trình đó, trong phạm vi của đề tài tôi xin trình bày những nội dung chính như sau: - Chương 1: Tổng quan về đề tài. - Chương 2: Tìm hiểu hệ điều hành Android. - Chương 3: Tích hợp Android với thiết bị phần cứng. - Chương 4: Phát triển phần mềm trên Android. Sau đây là nội dung trình bày chi tiết của Luận văn. 9 CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1.Nghiên cứu khảo sát bài toán Với sự phát triển mạnh mẽ của thị trường thế giới số nhất là các thiết bị di động máy tính thông minh, máy tính bảng trong thời gian gần đây, đã đem đến những trải nghiệm mới mẻ cho người sử dụng. Máy tính bảng với những ưu điểm về tính di động, có kết nối đa dạng, màn hình cảm ứng, giải trí tiện lợi, phong phú về ứng dụng. Các nhà sản xuất có tên tuổi cũng khuấy động phong trào bằng cách liên tục cho ra các sản phẩm để phục vụ người tiêu dùng. Đặc biệt là các nhà sản xuất đã đưa ra sự lựa chọn mà được coi là chiếm ưu thế nhất cho thị trường hiện nay là sử dụng hệ điều hành Android cho nó. Tuy nhiên những máy tính bảng này vẫn đang có nhược điểm cơ bản là quá đa dụng và chưa hướng tới đối tượng chuyên gia, học sinh, không phù hợp với đại đa số người học ở Việt Nam là giá thành của chúng còn tương đối cao (khoảng 500USD), chính vì vậy việc thiết kế, chọn lựa các chức năng cần thiết và cấu hình phù hợp, giá thành thấp để phục vụ cho đối tượng người học là một đề tài cấp thiết và có ý nghĩa khoa học, thực tiễn. Hệ điều hành Android là một hệ điều hành mã nguồn mở, miễn phí và khả năng tương thích cao. Là là một hệ điều hành mã nguồn mở di động kết hợp và xây dựng dựa trên các phần của nhiều dự án mã nguồn mở khác nhau được phát triển bởi Google và Open Hadset Alliance (Liên minh thiết bị cầm tay mã nguồn mở) [10]. Người sử dụng có thể tùy chỉnh Android theo mình và có thể phát triển các phần mềm ứng dụng dựa trên ngôn ngữ Java trên đó. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của 78 công ty liên minh phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai. Trong một số phiên bản của Android, máy tính bảng có thể sử dụng thay thế điện thoại di động, và tiếp tục giảm chi phí cho người dùng. Android 3.x là hệ điều hành do công ty Google phát triển cho các thiết bị cầm tay sẽ phù hợp với xu hướng phát triển các dịch vụ cung cấp dữ liệu và phần mềm qua Internet. Dựa vào lợi thế đó của hệ điều hành Android, mà thông qua đề tài “ Nghiên cứu phát triển phần mềm nhúng cho các thiết bị cầm tay trên nền tảng Android”. Tôi hướng tới việc người dùng cuối có thể làm chủ cả về công nghệ tích hợp hệ điều hành Android cho phần cứng của nhiều nhà cung cấp thiết bị, cũng như việc phát triển các phần mềm ứng dụng đáp ứng nhu cầu người sử dụng. Sở dĩ, phần mềm nhúng là phần mềm do nhà sản xuất thiết bị cài sẵn vào sản phẩm và chúng được sử dụng ngay cùng với đồ điện tử đó mà không cần có sự cài đặt của người thứ ba [19]. Tuy nhiên, phần mềm ứng dụng chạy trên thiết bị cầm tay có hệ điều hành Android cũng được coi là phần mềm nhúng. Vì trên thị trường hiện nay, cũng có khá nhiều bộ vi xử lý hỗ trợ 10 chạy trên hệ điều hành Android như bộ vi xử lý ARM, Qualcomm, telechip, nên phần mềm ứng dụng có thể thông qua hệ điều hành để chạy trên thiết bị phần cứng. 1.2. Phân tích bài toán Phần mềm ứng dụng nhúng hiện nay chủ yếu được thực hiện trên các dòng điện thoại thông minh, các máy tính bảng, không chỉ là các hệ thống điều khiển thay thế máy tính, mà nó còn là các ứng dụng mang tính chất hỗ trợ và giải trí cho người sử dụng. Vì vậy trong đề tài chủ yếu là nghiên cứu cách tích hợp ứng dụng Android cho thiết bị phần cứng và phát triển ứng dụng trên nền Android. Với tính năng nổi bật của mình cộng với các phiên bản mới, từ phiên bản 3.0 trở đi đã được phát triển cho các thiết bị cầm tay máy tính bảng sẽ phù hợp với xu hướng phát triển các phầm mềm qua Internet và dịch vụ cung cấp dữ liệu. Hiện nay sản phẩm nhúng rất đa dạng bởi nhiều công ty tham gia sản xuất và chế tạo, nhưng hiện nay chip được cung cấp phần lớn dựa trên bộ vi xử lý ARM. Các công ty sản xuất mua lõi vi xử lý của ARM sản xuất và phát triển để đưa vào tích hợp chipset, nên có nhiều công ty khác nhau có thể dùng chung một loại vi xử lý. Đối với ARM, do có đặc điểm tiết kiệm được năng lượng, tiêu tán công suất thấp nên nó được coi là sản phẩm chiếm ưu thế trong các sản phẩm điện thoại di động. Vì vậy, trong toàn bộ luận văn này, tôi sẽ trình bày nội dung nghiên cứu dựa trên vi xử lý ARM. Do phần mềm nhúng chạy trên nền tảng Android, sẽ chạy trên phần cứng thông qua hệ điều hành. Do vậy đề tài chủ yếu tập trung vào cơ chế tích hợp hệ điều hành Android với phần cứng đề xuất và cách phát triển phần mềm nhúng trên hệ điều hành Android. - Với nội dung tích hợp hệ điều hành Android: được đưa ra thông qua việc phân tích tìm hiểu và thiết lập cấu hình cho các bộ điều khiển phần cứng. - Với nội dung phát triển phần mềm nhúng trên hệ điều hành Android: đưa ra thông qua quy trình phát triển ứng dụng trên Android, phân tích thiết kế hệ thống ứng dụng, xây dựng code, demo ứng dụng tạo ghi chú minh họa. 1.3. Hệ điều hành di động 1.3.1. Đặc điểm của hệ điều hành di động Hệ điều hành là “một chương trình chạy trên máy tính, nó điều phối mọi hoạt động về phần cứng và phần mềm trong máy tính”. Hệ điều hành di động là “hệ điều hành chạy trên các thiết bị có tính di động cao”. Với một số các đặc điểm đặc thù mà các hệ điều hành chạy trên máy tính thường không có như: - Tối ưu về bộ nhớ: Trong thiết bị di động thì hệ điều hành được cài đặt sẽ ảnh hưởng nhiều đến dung lượng bộ nhớ, vì chúng thường có kích thước nhỏ gọn để có thể sử dụng thuận lợi và chạy nhanh hơn. 11 - - Tối ưu về điện năng: Với thiết bị di động thì việc tiêu thụ điện năng là điều cũng đáng nói, với mức độ sử dụng có thể đạt mức tối đa của người sử dụng, độ sáng tối của màn hình. Khi đó hệ điều hành cũng cần phải tối ưu hoạt động của mình để tiết kiệm năng lượng một cách tối đa. Tính tương thích cao: Với khả năng thích nghi tích hợp với nhiều thiết bị phần cứng của hệ điều hành không kén chọn, đó cũng là một trong những tiêu chuẩn mà các nhà sản xuất quan tâm. Ngoài ra, nó còn phải hỗ trợ các kết nối mạng tốt để đem lại năng suất cho người sử dụng. 1.3.2. So sánh hệ điều hành Android với các hệ điều hành iOS Hệ điều hành Android và hệ điều hành iOS đều là hai hệ điều hành di động, chiếm ưu thế sử dụng nhiều nhất trên thị trường điện thoại, smartphone, máy tính bảng hiện nay. Hệ điều hành Android được phát triển chủ yếu được sử dụng trong hãng Samsung, LG, còn hệ điều hành iOS được sử dụng chủ yếu trên các dòng điện thoại của Apple, Nokia. Do đặc thù của từng loại hệ điều hành mà mỗi hãng có thể lựa chọn để phù hợp với hãng sản suất của mình, dưới đây là bảng so sánh về một số đặc điểm tính năng của hai hệ điều hành này. Bảng 1.1: So sánh hệ điều hành Android với hệ điều hành iOS Tính năng Nhân của HĐH Kiến trúc phân tầng Android Linux 2.6 iOS iOS Bao gồm 4 tầng Bao gồm 4 tầng - Linux kernel - Core Services - Android Runtime and - Graphics & Media Libraries - Application Framework - Application Framework - User Experience - Applications Máy ảo Có Không Đa nhiệm Có khả năng chạy đa nhiệm nhiều ứng dụng một thời điểm không phân biệt loại ứng dụng Phiên bản mới nhất hỗ trợ chạy đa nhiệm nhưng hạn chế. Chỉ cho phép chạy một số loại ứng dụng Xử lý đồ họa và âm thanh Sử dụng Media Framework Sử dụng tầng Graphics & Media và OpenGL/ES nằm trong để tập trung các tác vụ xử lý tầng Libraries để xử lý 12 1.3.3. Mã nguồn mở Mã nguồn mở được biết tới dưới tên FOSS (Free and Open Source Software) là “những phần mềm mà người dùng có thể sửa đổi, cải tiến, phát triển và nâng cấp theo một số nguyên tắc chung đã được quy định từ trước” . Là thuật ngữ rất quen thuộc với những người trong ngành Công nghệ thông tin, nhưng vẫn còn xa lạ với những ai mới tìm hiểu về tin học. Với những người chú ý đến vần đề kinh phí thì phần mềm hay hệ điều hành mã nguồn mở thì rất được họ quan tâm. Ngoài ưu điểm về giá thành sản phẩm thì mã nguồn mở còn có rất nhiều điểm hấp dẫn khác nữa như: -Chất lượng: Chất lượng luôn là điều mà chúng ta quan tâm. Khi một sản phẩm phần mềm đưa ra nếu chỉ làm việc với một nhóm người sẽ không thể nào bằng một sản phẩm được đưa ra với sự góp sức của rất nhiều người với những đóng góp hoàn thiện về sản phẩm, sáng tạo về các tính năng nhiều hơn. Chính vì thế người phát triển phần mềm cũng chính là người sử dụng nó, nên những sai phạm rất hiếm khi gặp phải. - Bảo mật: Chính nhờ vào tính mở của nó mà với sản phẩm nguồn mở khi gặp vấn đề về bảo mật sẽ được nhiều người chung tay vào làm sẽ sớm được phát hiện và sửa chữa nhanh hơn. - Tính tùy biến: tùy biến nguồn dữ liệu trong mã nguồn mở rất đa dạng. Người sử dụng có thể tùy chỉnh lại các đoạn mã lại cho phù hợp với sản phẩm của riêng mình dựa trên các đoạn mã công khai. Như với hệ điều hành Android đã và đang sử dụng rất nhiều trên thiết bị cầm tay nhờ tính mở của hệ điều hành này mà người sử dụng, các doanh nghiệp có thể tinh chỉnh và biến nó thành sản phẩm của mình. - Chi phí: Ngoài chất lượng và bảo mật ra thì chi phí cũng được đặt lên hàng đầu. Người sử dụng có thể trả rất nhiều tiền để có một phần mềm tiện ích, nhưng nếu sử dụng một sản phẩm mã nguồn mở như vậy thì họ sẽ tiết kiệm được tiền nhiều hơn. Trên đây là một số các điểm hấp dẫn của mã nguồn mở đem tới khiến người sử dụng và các nhà sản xuất khó có thể từ chối các sản phẩm mã nguồn mở . Và tiếp theo chương 2 của luận văn là phần trình bày tổng quan về hệ điều hành sử dụng mã nguồn mở Android. 13 CHƯƠNG 2: TÌM HIỀU HỆ ĐIỀU HÀNH ANDROID Trước khi đi tìm hiểu về nội dung chính của luận văn về cách tích hợp hệ điều hành Android và triển khai một sản phẩm nhúng như thế nào, trong chương này đưa ra một số mô tả tổng quan hệ điều hành Android, lịch sử phát triển, các phiên bản, kiến trúc cũng như hệ thống file trên Android. 2.1.Tổng quan về Android 2.1.1. Android là gì? Android là một hệ điều hành mã nguồn mở di động kết hợp và xây dựng dựa trên các phần của nhiều dự án mã nguồn mở khác nhau được phát triển bởi Google và Open Hadset Alliance (Liên minh thiết bị cầm tay mã nguồn mở) [10] . Nền tảng chính của Android là Java, nó sử dụng thư viện Java và các ứng dụng được viết mã theo ngôn ngữ lập trình C, C++, Java. Nó là ứng dụng duy nhất có hơn 700.000 ứng dụng và có nhiều các ứng dụng hơn nữa được đưa ra hàng ngày, được sử dụng trong các thiết bị điện tử, điện thoại thông minh, máy tính bảng, ipad, đồng hồ, tivi, đầu kỹ thuật số … 2.1.2. Lịch sử phát triển Android Ban đầu, Android được phát triển bởi công ty liên hợp Android sau đó được Google mua lại vào tháng 7 năm 2005. Những thành viên của Android chuyển sang làm việc tại Google gồm có Andy Rubin, Rich Miner, Nick Sears và Chris White. Tại Google họ đã bắt đầu phát triển nền tảng thiết bị di động dựa trên hạt nhân Linux với hệ thống mềm dẻo, linh động và có khả năng nâng cấp mở rộng cao. Các nhà phát triển viết ứng dụng Android dựa trên ngôn ngữ Java. Vào ngày 5 tháng 11 năm 2007 sự ra mắt của Android gắn với thành lập của Open Hadset Alliance bao gồm 78 công ty phần cứng, phần mềm và viễn thông với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động [10, 27] . Ngày 9 tháng 12 năm 2008, thêm 14 thành viên mới tham gia vào 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. Đến tháng 10 năm 2008, Android đã bắt đầu lưu hành mã nguồn mở. Google đã công bố hầu hết các mã nguồn của Android theo bản cấp giấy phép của Apache. Các nhà cung cấp có thể mở rộng thương mại mà không cần chuyển thành mã nguồn mở. Điểm đặc biệt của ứng dụng Android chính là các phiên bản của nó, các phiên bản này được tạo ra theo thứ tự chữ cái và đều được đặt theo một món tráng miệng nào 14 đó. Mỗi phiên bản có phiên bản phụ và được phát hành định kỳ, các phiên bản phụ được phát hành theo các tháng khác nhau trong cùng một năm. Phiên bản đầu tiên được phát hành vào tháng 11 năm 2007 và sau đó có nhiều bản cập nhật đã được thực hiện từ hệ điều hành gốc của nó, từng lỗi sửa cập nhật và bổ sung các tính năng mới tới các phiên bản trước. 2.1.3. Các phiên bản Android Qua lịch sử phát triển với nhiều nấc phát triển khác nhau của Android, hệ điều hành này đã càng ngày càng đưa ra được các phiên bản mới phù hợp với thị trường tiêu dùng nhờ vào các tính năng nổi bật của nó. Bảng 2.1dưới đây sẽ mô tả cho chúng ta thấy được các cột mốc phát triển của hệ điều hành này, từ khi thành lập tới giờ [10]. Bảng 2.1. Các phiên bản của Android Phiên bản Beta Android 1.0 Android 1.1 Ngày tháng phát hành và các tính năng Ngày 12 tháng 11 năm 2007, phát hành gói phát triển phần mềm Android SDK. Ngày 23 tháng 9 năm 2003 phát hành phiên bản 1.0 dựa trên nhân Linux 2.6 với những tính năng:  Trình duyệt web cho phép xem các trang viết bằng ngôn ngữ HTML, XHTML, nhiều trang trình bày như các cửa sổ, hỗ trợ POP3, IMAP và SMTP  Cho phép tải về và cập nhật từ Android Market  Hỗ trợ đa nhiệm, nhắn tin tức thời, GPS, kết nối Wi-Fi và bluetooth.  Hỗ trợ Camera nhưng thiếu thay đổi độ phân giải của máy ảnh, chất lượng, cân bằng trắng ...  Thông báo cảnh báo trong thanh trạng thái option với nhạc chuông cảnh báo, hoặc bằng LED  Đồng bộ hóa Google thành nhiều ứng dụng  Hỗ trợ Google Maps với tính năng Latitude (Street View cũng như trong các hình ảnh vệ tinh), hướng dẫn lái xe sử dụng GPS  Voice Dialer cho phép quay số và đặt các cuộc gọi điện thoại mà không cần gõ tên hoặc số  Một số các ứng dụng khác bao gồm: Đồng hồ báo thức, Máy tính, màn hình chính, hình ảnh và các cài đặt tùy chọn Phát hành ngày 9 tháng 2 năm 2009, bản cập nhật này đã được phát đưa ra cho T-Mobile G1. Bản cập nhật giải quyết lỗi, thay đổi các API và bổ sung thêm một số tính năng khác: 15 Android 1.5 (Cupcake) Android 1.6 (Donut) Android 2.0 (Eclair)  Các chi tiết và đánh giá có sẵn khi người dùng tìm kiếm các công ty trên bản đồ.  Trong cuộc gọi màn hình chờ mặc định khi sử dụng loa ngoài, cộng với khả năng để hiện / ẩn bàn phím.  Hỗ trợ khả năng lưu các file đính kèm trong các tin nhắn. Phát hành bản cập nhật 1.5 (Cupcake- Bánh bông lan) dựa trên nhân Linux 2.6.27 vào ngày 30 tháng 4 năm 2009.  Hỗ trợ hộp tìm kiếm.  Có thể chuyển đổi giữa máy ảnh và chế độ video, ghi âm video và phát lại ở định dạng MPEG4 và định dạng 3GP  Máy ảnh khởi động và chụp ảnh, tích hợp thư viện ảnh nhanh hơn.  Thu nhận tín hiệu GPS nhanh  Hỗ trợ tải video trực tiếp lên youtube và Picassa Android 1.6 (Donut- bánh rán vòng) phát hành ngày 15 tháng 9 năm 2009 dựa trên nhân Linux 2.6.29  Hỗ trợ bàn phím ảo trên màn hình  Hỗ trợ tìm kiếm nhanh và tìm kiếm bằng giọng nói.  Hỗ trợ độ phân giải màn hình WVGA  Sao chép / Dán và tìm kiếm trong trình duyệt  Người sử dụng có thể chọn nhiều ảnh để xóa  Pin sử dụng chỉ số  Cập nhật công nghệ hỗ trợ cho CDMA / EVDO, 802.1x, VPN, và hỗ trợ chuyển văn bản thành lời thoại. Ngày 26 tháng 10 năm 2009 phiên bản Android 2.0 (Eclair – bánh kẹp kem) được phát hành với các cập nhật gồm  Nhiều tài khoản email và đồng bộ danh bạ  Camera được cải thiện bao gồm hỗ trợ đèn flash và zoom kỹ thuật số, cân bằng trắng, hiệu ứng màu sắc  Bàn phím cải tiến: thích ứng với từ điển  Hỗ trợ Bluetooth 2.1  Trình duyệt giao diện người dùng mới và hỗ trợ HTML5  Cải tiến bản đồ Google Maps 3.1.2.  Thêm lớp MotionEvent để theo dõi các sự kiện cảm ứng đa điểm Android 2.0.1 được đưa ra vào ngày 3 tháng 12 năm 2009 với 16  Thay đổi nhỏ về API  Sửa lỗi và thay đổi hành vi nền tảng Android 2.1 (Eclair) được phát hành vào 12 tháng 1 năm 2010 với việc tu chỉnh lại lỗi và API Android 2.2 (Froyo) Android 2.3 (Gingerbread) Ngày 20 tháng 5 năm 2010, android 2.2 (Froyo – Yaourt đông) được phát hành với các thay đổi gồm:  Nhiều tài khoản người dùng  Tối ưu hóa hệ điều hành về tốc độ, bộ nhớ, và hiệu năng  Android market tự động cập nhật và cài đặt các ứng dụng vào thẻ SD  Bổ sung mẹo sử dụng widget cho màn hình  Hỗ trợ cho dịch vụ Android Cloud to Device Messaging (C2DM)  Hỗ trợ đăng tải tập tin trong trình duyệt  Tăng cường hỗ trợ Microsoft Exchange  Hỗ trợ đầu nối USB và hỗ trợ Hotspot, quay số bằng giọng nói và chia sẻ liên lạc qua Bluetooth  Hỗ trợ Adobe Flash 10.1 Ngày 6 tháng 12 năm 2010, phiên bản 2.3 (Gingerbread- bánh gừng) được phát hành với các tính năng sửa đổi và cập nhật:  Hỗ trợ cảm biến nhiểu hơn  Giao diện người dùng được cải tiến cho đơn giản và tốc độ truy cập nhanh hơn  Bàn phím mới hỗ trợ nhập văn bản nhanh hơn  Cải thiện tính năng sao chép / dán  Near Field Communication (NFC), cải tiến quản lý điện năng  New Download Manager, Internet Calling  Hiệu ứng âm thanh được cân bằng…  Hỗ trợ cho phát lại video WebM/VP8, và mã hóa âm thanh AAC Tiếp đó là các phiên bản phụ được hỗ trợ cho Android 2.3 với các cập nhật: Android 2.3.3:  Bao gồm một số cải tiến và sửa lỗi API Android 2.3.4  Hỗ trợ cho chat bằng giọng nói hoặc video bằng cách 17 Android 3.0 (Honeycomb) Android 3.1 Android 3.2 sử dụng Google Talk Android 2.3.5  Cải thiện hiệu suất mạng cho Nexus S 4G  Cố định lỗi Bluetooth trên Samsung Galaxy S  Làm bóng hình ảnh động cho việc di chuyển danh sách  Phần mềm Camera cải tiến  Cải thiện pin hiệu quả Android 2.3.6  Cố định lỗi tìm kiếm bằng giọng nói Android 2.3.7  Giới thiệu Google Wallet hỗ trợ cho Nexus S 4G Ngày 22 tháng 2 năm 2011 Android 3.0 (Honeycomb- tổ ong) được phát hành dựa trên nhân Linux 2.6.36 dành cho tablet.Với các tính năng mới:  Cụ thể tối ưu hóa cho máy tính bảng và các thiết bị với kích thước màn hình lớn hơn  Phần cứng được tăng tốc  Hỗ trợ bộ vi xử lý đa lõi, khả năng mã hóa được tất cả dữ liệu người dùng  Tinh chế đa nhiệm, thông báo phong phú, màn hình chủ tùy biến và thiết kế lại bàn phím  Hỗ trợ video chat  Nhiều tab trình duyệt  Hỗ trợ giao thức vận chuyển Media / Picture  Khả năng xem album và các bộ sưu tập ở chế độ toàn màn hình khác  Giao diện người dùng cải tiến  Kết nối phụ kiện USB  Mở rộng danh sách Recent Apps  Thay đổi kích thước các widget màn hình  Hỗ trợ bàn phím ngoài và các thiết bị bên ngoài, gamepads, phát lại âm thanh FLAC Đây là bản cập nhật đầu tiên xuất hiện trên máy tính bảng vàongày 18 tháng 7 năm 2011 MediaPad của Huawei. Bao gồm các thay đổi:  Cải thiện hỗ trợ phần cứng  Tăng khả năng ứng dụng để truy cập các tập tin trên thẻ SD  Khả năng tương thích hiển thị chế độ cho các ứng dụng 18 Android 4.0 (Ice-dream Sandwich) Android 3.2.1  Có một vài sửa lỗi và an ninh  Tính ổn định và cải tiến Wi-Fi  Cập nhật Android Market với bản cập nhật tự động và sách Google  Hỗ trợ Adobe Flash và dự đoán chữ viết tay của Trung Quốc Android 3.2.2 Bao gồm sửa lỗi và cải tiến nhỏ khác cho Motorola Xoom 4G Android 4.0 được ra mắt vào ngày 19/10/2011 với chiếc Galaxy Nexus, với một số cập nhật:  Tăng tốc độ và hiệu suất  Android Beam sử dụng công nghệ kết nối trường gần NFC ( có thể chia sẻ thông tin khi 2 máy điện thoại áp sát vào nhau)  Hỗ trợ nút ảo (virtual) trong giao diện người dùng  Dễ dàng tạo thư mục với bằng cách kéo thả  Hỗ trợ chức năng Pinch-to-zoom trong lịch  Hỗ trợ tìm kiếm Offline  Khả năng xoay sang trái hoặc sang phải để chuyển giữa các cuộc hội thoại Gmail, tự động đồng bộ hóa trình duyệt với bookmark Chrome của người dùng  Tích hợp được vừa chụp ảnh, vừa chụp màn hình  Cải thiện sửa lỗi trên bàn phím  Khả năng truy cập các ứng dụng trực tiếp từ màn hình khóa  Sử dụng nhập liệu bằng giọng nói  Cải thiện chức năng sao chép và dán  Hỗ trợ tính năng mới cho phép người dùng để mở khóa điện thoại di động bằng cách sử dụng phần mềm nhận dạng khuôn mặt FaceUnlock  Trình duyệt web theo tab(thẻ) (cho phép lên đến 16 tab)  Hỗ trợ font chữ Roboto  Sử dụng các dữ liệu trong phần mềm cài đặt cho phép thiết lập cảnh báo người dùng khi họ tiếp cận một giới hạn sử dụng nhất định, và vô hiệu hóa dữ liệu sử dụng khi vượt quá giới hạn 19  Khả năng tắt các ứng dụng đang sử dụng bộ nhớ trong  Cải thiện ứng dụng camera với phần cài đặt thời gian, chế độ toàn cảnh, khả năng phóng to trong khi ghi âm, ghi âm video 1080p các thiết bị Android cơ bản  Bố trí thư viện mới, được tổ chức theo vị trí và con người Android 4.0.2  Cố định lỗi nhỏ trên Verizon Galaxy Nexus Android 4.1 (Jelly Bean) Android 4.0.3  Sửa lỗi và tối ưu hóa  Cải tiến đồ họa, cơ sở dữ liệu, kiểm tra chính tả, chức năng Bluetooth  Xem lịch được cải tiến, ứng dụng máy ảnh mới tăng cường video ổn định và độ phân giải QVGA  Khả năng tiếp cận cải tiến như truy cập nội dung cho trình đọc màn hình được cải thiện Được phát hành vào ngày 9 tháng 7 năm 2012 với các tính năng  Tính năng tìm kiếm Google Now (một loại dịch vụ thống nhất, chứa đựng tất cả những gì mà người dùng muốn biết với cái mà người dùng sử dụng rồi tổng hợp lại) mới  Ứng dụng camera mới sử dụng chức năng bằng cách lướt ngón tay  Thanh thông báo có nhiều tính năng mới.. Và trong thống kê của Google về số người sử dụng Android trong tháng 4/2013 vừa rồi thì thiết bị chạy Android Jelly Bean chiếm tới 26.1%, thiết bị chạy Android 4.0 Ice Cream Sandwich chiếm 27.5% và Android 2.3. Gingerbread là 38.4%. 2.2. Kiến trúc của hệ điều hành Android Để có được những phát triển vượt bậc trong từng phiên bản của mình, chính là nhờ Android có một nền tảng kiến trúc 4 tầng chính Linux Kernel, Libraries + Android Runtime, Application Framework, Applications với cách phân cấp chức năng rõ ràng rất giống với một kiến trúc máy tính nói chung. Tất cả các thành phần chính của nền tảng kiến trúc máy tính đều tồn tại trong Android. Sau đây hình 2.1 sẽ mô tả về các thành phần trong kiến trúc Android, mỗi phần được mô tả chi tiết hơn theo một phương pháp tiếp cận từ dưới lên, có nghĩa là nó sẽ bắt đầu với lớp thấp nhất trong ngăn xếp và làm việc lên đến những cấp độ cao hơn [3]. 20
- Xem thêm -