1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

61 1,3K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 1,53 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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, đồ đ

Trang 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

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

HÀ NỘI, 2013

Trang 2

ĐẠ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: Công nghệ thông tin

Chuyên ngành: Công nghệ phần mềm

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

Trang 3

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

Trang 4

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

Trang 5

DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT

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

Trang 6

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 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ú

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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ợ

Trang 11

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

Trang 12

- 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

Nhân của HĐH Linux 2.6 iOS

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

và OpenGL/ES nằm trong tầng Libraries để xử lý

Sử dụng tầng Graphics & Media

để tập trung các tác vụ xử lý

Trang 13

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

Trang 14

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

Trang 15

đó 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 Ngày tháng phát hành và các tính năng

Beta Ngày 12 tháng 11 năm 2007, phát hành gói phát triển phần

 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

 Đồ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

Android 1.1

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:

Trang 16

 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

 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)

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

Android 2.0 (Eclair) 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

Trang 17

 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)

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ợ 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:

Trang 18

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

Android 3.0

(Honeycomb)

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

 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

Android 3.1

 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

Android 3.2

Đâ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:

Trang 19

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

 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

Trang 20

 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.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

 Ứ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]

Trang 21

Hình 2.1 Kiến trúc hệ điều hành Android

2.2.1 Tầng Linux Kernel

Android sử dụng nhân Linux 2.6 đã được sửa đổi để xử lý tất cả các chức năng như các nền tảng kết nối mạng, quản lý bộ nhớ và tiến trình, bảo mật,… cũng như các thiết bị phần cứng [3]

Tầng Linux Kernel là nhân của hệ điều hành Android, các xử lý của hệ thống đều phải thông qua nó Tầng này cung cấp các thiết bị phần cứng như hình 2.2: Display, Bluetooth, Cemera, USB, WiFi, Power Management, Audio, Keypad, …

Hình 2.2 Kiến trúc tầng Linux Kernel

2.2.2 Tầng Libraries + Android Runtime

2.2.2.1 Libraries

Hệ điều hành Android bao gồm một tập các thư viện C/C++ được sử dụng bởi nhiều thành phần khác nhau của hệ thống Android, những tính năng này cung cấp cho

Trang 22

các nhà lập trình thông qua bộ framework của Android Sau đây là một số thư viện cốt lõi trong Android [3]

Hình 2.3 Kiến trúc tầng Libraries + Android Runtime

+ LibC: một thể hiện được xây dựng từ BSD (Berkeley Software Distribution) của hệ thống thư viện C chuẩn, được điều chỉnh để tối ưu hóa cho các thiết bị chạy trên nền Linux

+ Media library: thư viện dựa trên mã nguồn mở PacketVideo, phổ biến hỗ trợ phát lại và ghi âm trên audio và định dạng video, cũng như các file ảnh tĩnh như MPEG4, H.264, MP3, AAC, AMR, JPG, PNG

+ Surface Manager: quản lý hiển thị truy cập tới các hệ thống con và kết hợp đồ họa 2D và 3D từ nhiều ứng dụng

+ Webkit engine: Cung cấp thư viện của trình duyệt web

+ SGL: thư viện đồ họa 2D cơ bản

+ 3D Libraries: được thực hiện dựa trên OpenGL ES 1.0 APIs; thư viện sử dụng các tăng tốc 3D bằng phần cứng và phần mềm để tối ưu hóa hiển thị 3D

+ FreeType: cung cấp các font chữ vector, phông chữ bitmap cho các ký tự và

hỗ trợ các hoạt động liên quan đến dựng hình font chữ khác

+ SQLite: Cơ sở dữ liệu nhỏ và mạnh có sẵn cho tất cả các ứng dụng

2.2.2.2 Android Runtime

Android Runtime bao gồm Dalvik Virtual Machine (Dalvik VM) và thư viện cốt lõi Java phát triển bởi Google, đây là những thành phần chính trong ngăn xếp phần mềm của Android

a Dalvik VM

Dalvik là máy ảo giúp các ứng dụng java có thể chạy được trên các thiết bị di động thuộc hệ điều hành Andoid, nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi Dalvik (dex)

Dalvik Virtual Machine được thiết kế để chạy trên phần cứng, tại đó nó cho phép thể hiện về tuổi thọ pin, CPU, bộ nhớ và lưu trữ dữ liệu Dalvik VM là một máy

Trang 23

ảo dựa trên thanh ghi (so với Java VM được dựa trên ngăn xếp) nên nó cần một số các chỉ thị nhỏ để biểu diễn các mã cao cấp

Dalvik VM chạy các file dex được tạo ra từ các file class hoặc jar bằng cách

sử dụng một công cụ có tên dx Khi chuyển đổi từ file class (hoặc jar) sang file dex, công cụ dx nhúng các file class vào một file dex duy nhất, bản sao các chuỗi và các

hằng số khác được gộp vào và được tham chiếu toàn cục để tiết kiệm không gian và bytecode của Java được chuyển đổi thành một tập lệnh thay thế

Hơn thế nữa, khi một ứng dụng được cài đặt trên thiết bị, việc tối ưu hóa được thực hiện như thứ tự byte trao đổi liên kết tĩnh, inline các phương thức có nguồn gốc đặc biệt, xóa bỏ các phương thức rỗng và rút ngắn gọn các đối tượng class Ngoài ra, Dalvik VM được thiết kế cho nhiều trường hợp đang chạy trên cùng một thiết bị tại cùng một thời điểm một cách hiệu quả

b Core Libraries

Các thư viện Java cốt lõi cung cấp các cấu trúc dữ liệu phổ biến và các thuật toán tìm thấy trong tiện ích thư viện Chúng bao gồm các chức năng I/O, các tiện ích, các container, …

2.2.3 Tầng Application Framework

Application Framework (hình 2.4) là một tập hợp các thư viện Java cung cấp các khối lệnh cho các ứng dụng nhanh chóng và dễ dàng phát triển trên nền tảng Android Các nhà phát triển có thể tận dụng các thiết bị phần cứng, các dịch vụ, các điểm truy cập, chỉ bằng cách gọi API có sẵn mà Google đã viết để sử dụng các tính năng của phần cứng mà không cần hiểu cấu trúc bên dưới Bất kỳ một ứng dụng nào

đó đều công khai các tính năng của nó và đặc biệt chúng có thể tái sử dụng các tính năng của nhau[3]

Hình 2.4 Kiến trúc tầng Application Framework

Tầng Application Framework cung cấp một loạt các dịch vụ như:

a Activity Manager: Quản lý vòng đời của ứng dụng cũng như cung cấp công cụ điều khiển Activity Bên trong hệ thống các Activity được quản lý như một Activity stack Khi một Activity được bắt đầu, nó được đặt ở đỉnh của stack và trở thành Activity đang chạy, Activity trước sẽ ở bên dưới activity mới và sẽ không thấy trong suốt quá trình activity mới tồn tại

Trang 24

b Package Manager: dùng để nạp các file ứng dụng đuôi apk

c Window Manager: quản lý việc xây dựng và hiển thị các giao diện người dùng,

tổ chức quản lý giao diện giữa các ứng dụng

d Content Manager: Cho phép các ứng dụng có thể truy cập dữ liệu từ các ứng dụng khác hoặc để chia sẻ dữ liệu của riêng ứng dụng

e Resource: dùng để xử lý tài nguyên media như các asset, graphic, image, music, video…

f View System: Cung cấp các đối tượng layout, view, widget cho ứng dụng

g Telephony Manager: Cung cấp công cụ để thực hiện liên lạc như gọi điện thoại

h Location Manager: Cho phép xác định vị trí dựa vào hệ thống định vị toàn cầu GPS và Google Maps

i Sensor Manager: Quản lý đến cảm biến của thiết bị

j Notification Manager: Quản lý hiển thị các thông báo như tin nhắn, có email mới, …

2.2.4 Tầng Application

Tầng Appplication (hình 2.5) trên cùng sẽ là môi trường tương tác giữa người dùng và thiết bị Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản, tất cả các ứng dụng này chạy trên hệ điều hành Android đều được viết bằng Java sau đó biên

dịch và chuyển thành dex Các ứng dụng mặc định thường gồm:

- Home: màn hình chính

- Contacts: ứng dụng danh bạ điện thoại

- Browser: trình duyệt web

- Camera: ứng dụng chụp ảnh

- Alarm: ứng dụng báo thức

- Email: ứng dụng thư điện tử

- Album photo: Ứng dụng bộ sưu tập hình ảnh

- Ứng dụng SMS/MMS

- Map: ứng dụng bản đồ

Hình 2.5 Kiến trúc tầng Applications

Trang 25

2.3 Hệ thống tập tin trên Android

Hệ điều hành Android được phát triển từ nhân Linux nên hệ thống các file trong Android giống hệ thống file trên Linux cả về cách tổ chức và quyền hạn của người sử dụng lên file… Trong hệ điều hành Android, các file được tổ chức theo mô hình phân cấp thành các thư mục Câu lệnh thao tác file cho phép dịch chuyển và sao chép toàn

bộ thư mục cùng với các thư mục con chứa trong nó Nên một file thường được viết bằng tên và đường dẫn chứa nó [10]

Đối với hệ điều hành Android thì việc quản lý và chuyển đổi dữ liệu môt cách

dễ dàng nhờ vào việc tất cả các file trong nó đều có cấu trúc vật lý chung là byte stream Cho phép Android áp dụng khái niệm file cho mọi thành phần dữ liệu trong hệ thống, thư mục cũng như các thiết bị đều được xem như file Một thư mục chứa các thông tin về thư mục được tổ chức theo một định dạng đặc biệt

Chính từ việc Android coi thư mục cũng là file không giống như hệ điều hành Window, nên nó được coi là một loại file đặc biệt Ngoài ra còn có các thành phần khác cũng được xem như file, chúng được phân biệt dựa trên kiểu file có thể liệt kê theo bảng 2.2 sau:

Bảng 2.2: Các kiểu file trên HĐH Android

d Directory (thư mục)

b Block-type special file (File kiểu khối)

c Character-type special file (File kiểu ký tự)

l Symbolic link (liên kết tượng trưng)

p Pipe (File đường ống)

s Socket

- Regular file (File bình thường )

Để tổ chức quyền hạn trên file trong Android cần quan tâm đến sự liên kết của chúng với người sự dụng, đó là một tập hợp các quyền hạn như quyền cho phép đọc

(read – viết tắt r), quyền cho phép ghi (write – viết tắt w) và quyền cho phép thực thi (execute – viết tắt x)

Một file sẽ có những quyền hạn tương ứng với 9 ký tự theo bảng 2.3 sau:

Bảng 2.3: Quyền hạn trên file

Quyền của chủ sở hữu file

(Owner)

Quyền của nhóm tài khoản

sở hữu file (Owner group)

Quyền của những người không thuộc nhóm sở hữu

file (Other)

r/- w/- x/- r/- w/- x/- r/- w/- x/-

Trang 26

3 ký tự đầu là quyền hạn chủ sở hữu file, 3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu file, 3 ký tự cuối là quyền của những người không thuộc nhóm sở hữu file Để xem được các quyền hạn này trên Android có thể sử dụng câu lệnh 1s-1

2.4 Quá trình khởi tạo Android

Android là hệ điều hành mã nguồn mở dựa trên Linux, x86 ( x86 là một loạt các kiến trúc bộ vi xử lý máy tính dựa trên CPU Intel 8086) là hệ thống mà hạt nhân linux được triển khai nhiều nhất tuy nhiên các thiết bị Android đang chạy trên tiến trình ARM (thường được gọi là Advanced RISC Machine, trước đây gọi là Acorn RISC Machine) trừ thiết bị Xolo của Intel Xolo đi kèm với bộ vi xử lý Atom 1.6GHz x86 Quá trình khởi tạo Android có thể nói là thiết bị nhúng hoặc ARM dựa trên linux có sự khác biệt nhỏ so với phiên bản máy tính để bàn [8]

Quá trình khởi tạo của hệ điều hành Android gồm thành 6 bước khác nhau, đây chính là việc tối ưu hóa quá trình khởi tạo một hệ thống nhúng Thiết bị Android sẽ được thực hiện theo các bước hình 2.6 dưới đây sau khi nhấn khởi động [8]

Bước 1: Boot Rom

Khi bắt đầu bấm vào nút khởi động thực thi một thiết bị Android là thực hiện một đoạn mã chương trình chứa trong Rom Chương trình có nhiệm vụ tìm phân vùng

đầu tiên của Boot Loader và tải vào trong Ram và thực hiện mã lệnh

Bước 2: Boot Loader

BootLoader là chương trình nhỏ chạy trước khi chạy chương trình Android BootLoader là chương trình đầu tiên chạy trên bo mạch và bộ vi xử lý Nhà sản xuất thiết bị sử dụng các bộ nạp khởi động phổ biến như bộ nạp khởi động redboot, uboot,

qi hoặc họ phát triển các bộ nạp khởi động riêng

BootLoader thực thi theo 2 giai đoạn, giai đoạn đầu tiên có nhiệm vụ nhận biết RAM bên ngoài và tải chương trình giúp giai đoạn thứ hai Giai đoạn thứ 2 bootloader khởi tạo và thiết lập mạng, bộ nhớ, trong đó có yêu cầu để chạy kernel, bootloader

có thể cung cấp các thông số cấu hình hoặc các đầu vào kernel cho mục đích cụ thể và tải kernel lên RAM

Bước 3: Kernel

Tương tự như máy tính để bàn sau khi kernel được tải lên RAM, các điều khiển trong kernel được thực thi để khởi tạo các điều khiển ngắt, các điều khiển khởi tạo bộ nhớ, khởi tạo bộ nhớ đệm và scheduling (lập kế hoạch) Sau cùng trình điều khiển kernel sẽ tìm tiến trình init trong file hệ thống và thực thi nó

Bước 4: Init process

Tiến trình Init là tiến trình đầu tiên được thực thi, chúng ta có thể nói rằng nó là tiến trình gốc của tất cả các tiến trình Tiến trình Init có hai trách nhiệm, một là gắn kết

Trang 27

các thư mục như /sys, /dev, / proc và hai là chạy kịch bản init.rc thực chất là đoạn script mô tả các dịch vụ hệ thống, file hệ thống … được viết theo ngôn ngữ riêng

-Tiến trình init có thể tìm thấy tại : <android source>/system/core/init

Hình 2.6: Quá trình khởi tạo Android từ nhân Linux

Bước 5: Zygote and Dalvik

Trong Java, chúng ta được biết trong mỗi trường hợp máy ảo riêng sẽ được sử dụng trong bộ nhớ cho mỗi ứng dụng riêng biệt Còn trong ứng dụng của Android thì các ứng dụng cần được khởi động càng nhanh càng tốt, nhưng nếu HĐH Android khởi động theo các trường hợp khác nhau của máy ảo Dalvik cho các ứng dụng như Java thì

nó sẽ tiêu thụ rất nhiều bộ nhớ và thời gian Vì thế, để khắc phục được vấn đề này hệ điều hành Android đưa ra một hệ thống có tên là Zygote (hợp tử) Zygote có thể được chia sẻ mã trên máy ảo Dalvik, bộ nhớ thấp hơn và thời gian khởi động tối thiểu Zygote là một tiến trình máy ảo bắt đầu lúc khởi động hệ thống như ở bước 5, sau đó

Trang 28

tải trước và khởi tạo các lớp thư viện lõi Thông thường các lớp thư viện lõi là only và một phần của nền các tảng cốt lõi hoặc Android SDK

read- Bước 6: System Server and Services

Sau khi hoàn thành các bước trên, thời gian chạy yêu cầu Zyote khởi động hệ thống các máy chủ Các System Server có thể xem như một tiến trình Hệ thống máy chủ giống nhau có sẵn được coi như là các System Service trong Android SDK Hệ thống máy chủ chứa tất cả các dịch vụ hệ thống

Zygote chia ra nhiều nhánh tiến trình mới để khởi động dịch vụ hệ thống Ta có thể tìm mã nguồn trong lớp ZygoteInit và phương thức startSystemServer Sau khi quá trình tải các dịch vụ Android hoàn tất Thông báo ACTION_BOOT_COMPLETED sẽ được phát ra, người sử dụng có thể thấy thông báo này để tải các dịch vụ của người sử dụng từ các ứng dụng

2.5 Khả năng hỗ trợ phát triển ứng dụng

Như các hệ điều hành khác, để phát triển ứng dụng chạy trên hệ điều hành Android thì trước hết cần phải hiểu về môi trường phát triển, cấu trúc và các thành phần cơ bản tạo lên ứng dụng Điều này giúp cho các nhà lập trình tạo ra các ứng dụng linh hoạt và có thể tận dụng chiếc điện thoại của mình một cách triệt để

2.5.1 Yêu cầu về phần cứng

Với bất kỳ một hệ điều hành nào khi chạy trên máy tính, điện thoại hoặc thiết bị cầm tay nào khác đều cần phải có những yêu cầu về phần cứng, nhằm thúc đẩy sản phẩm chạy một cách có hiệu quả [28][26] Để tương thích với các cấu hình phần cứng của laptop cũng như máy tính để bàn hay thiết bị cầm tay, thì Android cũng cần có các

hệ điều hành hỗ trợ:

- Windows XP (32-bit), Vista(32 hoặc 64 bit), hoặc Windows 7( 32 hoặc 64 bit)

- Mac OS X 10.5.8 hoặc các phiên bản mới hơn (chỉ x86)

- Linux (đã được kiểm tra trên Ubuntu Linux, Lucid Lynx)

+ Yêu cầu thư viện GNU C (glibc) 2.7 hoặc những phiên bản mới hơn + Phiên bản 8.04 trên Ubuntu Linux hoặc mới hơn

+ Với các phiên bản 64 bit phải có khả năng chạy các ứng dụng 32 bit

2.5.2 Android SDK

Android SDK cung cấp các thư viện API và các công cụ phát triển cần thiết để xây dựng, kiểm tra và gỡ lỗi ứng dụng cho Android [26] Có thể chọn và tải về file nén hợp với hệ điều hành tại địa chỉ http://developer.android.com/sdk/index.html

Trang 29

Mac OS X android-sdk_r21.1-macosx.zip 66077080

bytes 49903cf79e1f8e3fde54a95bd3666385

Linux android-sdk_r21.1-linux.tgz 91617112

bytes 3369a439240cf3dbe165d6b4173900a8Android SDK bao gồm các dự án mẫu với mã nguồn mở, công cụ phát triển, emulator, và các thư viện để yêu cầu xây dựng ứng dụng Android Các ứng dụng của Android được viết bằng ngôn ngữ Java và chạy trên máy ảo Dalvik để nhúng các ứng dụng chạy phía trên của Linux Kernel Bằng cách cung cấp các gói thư viện API như bảng 2.5 sau [26] :

Bảng 2.5: Các gói thư viện SDK

android

Chứa các lớp nguồn được sử dụng bởi ứng dụng trong platform và định nghĩa quyền ứng dụng cho các tính năng hệ thống

android.accessibilityservice Để phát triển các dịch vụ miễn phí cung cấp thông tin

phản hồi cho người sử dụng

android.app Truy cập mô hình ứng dụng Android

android.bluetooth

Quản lý chức năng Bluetooth, như quét các thiết bị, kết nối với các thiết bị, và quản lý dữ liệu chuyển đổi giữa các thiết bị

android.content Truy cập và phổ biến dữ liệu trên Android

android.database Khám phá dữ liệu trả về thông qua một nhà cung cấp android.graphics Cung cấp các công cụ đồ họa mức thấp như canvas, bộ

android.provider Các lớp liên quan đến ContentProvider

android.net Các lớp trợ giúp truy cập mạng dựa trên java.net.*

APIs

android.test Một nền tảng cho phép viết các trường hợp kiểm tra

Trang 30

Android

android.text Cung cấp các trường hợp sử dụng bố trí văn bản

android.util Tạo các phương thức tiện ích và tiện ích XML

android.view Cung cấp các lớp giao diện người sử dụng cơ bản android.webkit Cung cấp các công cụ cho trình duyệt web

android.widget Thêm các yếu tố giao diện người sử dụng

2.5.3 Java Development Kit (JDK)

Android SDK cung cấp các công cụ và các API cần thiết để bắt đầu phát triển ứng dụng trên Android Platform dùng ngôn ngữ lập trình Java Ta cần chuẩn bị thiết lập môi trường cho Java bằng cách tải gói tin tại địa chỉ

http://www.orcale.com/technetwork/java/javase/downloads/ để cài đặt Sau đó tạo biến môi trường

Bảng 2.6 dưới đây cung cấp các ước tính gần đúng yêu cầu không gian đĩa để cài đặt Java Development Kit (JDK)

Bảng 2.6 JDK yêu cầu không gian đĩa

Các công cụ phát triển  132MB Bắt buộc có

Demonstrations  24MB Không bắt buộc

Mã nguồn  27MB/1platform Không bắt buộc

Môi trường thời gian thực Java  72MB/1 Add-on Bắt buộc có

Ngôn ngữ hỗ trợ  20MB Không bắt buộc

Phông chữ và truyền thông hỗ trợ  6MB/1platform Không bắt buộc

2.5.4 Eclipse IDE

Sau khi cài đặt xong Java Development Kit, môi trường để hỗ trợ phát triển Java Tiếp theo ta cài đặt Eclipse IDE cho các nhà phát triển Java Để cài đặt hoặc cập nhật Eclipse , tải về các gói thích hợp từ trang web http://www.eclipse.org/downloads/

Một số loại gói của Eclipse có sẵn cho mỗi lền tảng

Hiện tại với các phiên bản mới nhất của Android thì Eclipse 3.6.2 hoặc phiên bản mới hơn mới có thể hỗ trợ

2.5.5 Android Emulator

Android Emulator là một thiết bị giả lập điện thoại di động – một thiết bị di động ảo chạy trên máy tính Giả lập này cho phép các nhà phát triển thử nghiệm và phát triển các ứng dụng Android mà không cần sử dụng một thiết bị vật lý

Ngày đăng: 25/03/2015, 10:01

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Kiến trúc hệ điều hành Android  2.2.1. Tầng Linux Kernel - 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
Hình 2.1. Kiến trúc hệ điều hành Android 2.2.1. Tầng Linux Kernel (Trang 21)
Hình 2.3. Kiến trúc tầng Libraries + Android Runtime - 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
Hình 2.3. Kiến trúc tầng Libraries + Android Runtime (Trang 22)
Bảng 2.2: Các kiểu file trên HĐH Android - 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
Bảng 2.2 Các kiểu file trên HĐH Android (Trang 25)
Hình 2.6: Quá trình khởi tạo Android từ nhân Linux - 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
Hình 2.6 Quá trình khởi tạo Android từ nhân Linux (Trang 27)
Bảng 2.4: Android SDK - 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
Bảng 2.4 Android SDK (Trang 29)
Hình 2.8: Giao diện Android Emulator - 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
Hình 2.8 Giao diện Android Emulator (Trang 31)
Hình  2.7: Cửa sổ thiết lập máy ảo - 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
nh 2.7: Cửa sổ thiết lập máy ảo (Trang 31)
Hình 3.3. Hệ thống bộ vi xử lý dựa trên chip của ARM - 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
Hình 3.3. Hệ thống bộ vi xử lý dựa trên chip của ARM (Trang 37)
Sơ đồ hình 3.3  với các thành phần chính: - 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ơ đồ h ình 3.3 với các thành phần chính: (Trang 40)
Hình 4.1: Vòng đời của một ứng dụng  4.1.2. Service - 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
Hình 4.1 Vòng đời của một ứng dụng 4.1.2. Service (Trang 48)
Hình 4.2 : Hai cách gọi Service  4.1.3. Content Provider - 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
Hình 4.2 Hai cách gọi Service 4.1.3. Content Provider (Trang 49)
Hình 4.3: Mô hình usecase - 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
Hình 4.3 Mô hình usecase (Trang 51)
Hình 4.4: Biểu đồ tuần tự của hệ thống - 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
Hình 4.4 Biểu đồ tuần tự của hệ thống (Trang 52)
Hình 4.5. Giao diện phần mềm NotesEX - 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
Hình 4.5. Giao diện phần mềm NotesEX (Trang 53)
Hình 4.6. Giao diện phần mềm NotesEX  khi tạo ghi chú  4.2.4. Tính năng hỗ trợ tương tác - 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
Hình 4.6. Giao diện phần mềm NotesEX khi tạo ghi chú 4.2.4. Tính năng hỗ trợ tương tác (Trang 54)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm