Tải bản đầy đủ (.docx) (76 trang)

đồ án tốt nghiệp tìm hiểu hệ điều hành ANDROID và xây dựng hệ thống điều khiển thiết bị qua BLUETOOTH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.14 MB, 76 trang )

-1-
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA ĐIỆN TỬ - VIỄN THÔNG
  
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG HỆ
THỐNG ĐIỀU KHIỂN THIẾT BỊ QUA BLUETOOTH
Sinh viên thực hiện
Nguyễn Văn Ngọc
Huế, tháng 5 năm 2014
-2-
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA ĐIỆN TỬ - VIỄN THÔNG
  
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG HỆ
THỐNG ĐIỀU KHIỂN THIẾT BỊ QUA BLUETOOTH
Ngành: Điện Tử Viễn Thông.
Chuyên ngành: Thông Tin Quang.
Giảng viên hướng dẫn: Sinh viên thực hiện :
Thạc sĩ: Lê Văn Thanh Vũ Nguyễn Văn Ngọc
Huế, tháng 5 năm 2014
-3-
-4-
LỜI CÁM ƠN
Em xin chân thành bày tỏ lòng biết ơn đến với các thầy cô trong trường Đại
Học Khoa Học, đặc biệt là các thầy cô trong Khoa Điện Tử - Viễn Thông đã tận tâm
dạy dỗ, truyền đạt những kiến thức quý báu trong những năm học qua tại trường.
Em xin gửi lời cám ơn chân thành nhất đến với Thầy Lê Văn Thanh Vũ,


giảng viên trường ĐH Khoa học đã tận tâm hướng dẫn, cung cấp tài liệu và tạo mọi
điều kiện thuận lợi để em hoàn thành tốt tập đồ án tốt nghiệp này.
Và cuối cùng gửi lời cám ơn đến tất cả những người thân, ba mẹ, bạn bè đã
quan tâm, giúp đỡ và động viên em trong quá trình học tập cũng như trong quá trình
thực hiện đồ án này.
Mặc dù đã cố gắng hết sức để thực hiện luận văn này nhưng chắc chắn sẽ
không tránh khỏi những thiếu sót. Em rất mong nhận được sự chỉ bảo tận tình từ các
Thầy cô và các bạn.
Huế, tháng 5 năm 2014
Sinh viên thực hiện
Nguyễn Văn Ngọc
-5-
MỤC LỤC
-6-
DANH MỤC HÌNH ẢNH
-7-
THUẬT NGỮ VIẾT TẮT
Từ viết tắt Tiếng Anh Tiếng Việt
ACL Asynchronous connectionless Kết nối không đồng bộ
ADT Android Developer Tools Công cụ phát triển Android
API
Application Programming Interface
Giao diện lập trình ứng dụng
BEC Backward Error Control Kiểm soát lỗi ngược
CRC Cyclic Redundancy Check Mã kiểm lỗi
DDMS Dalvik Debug Monitor Server Máy chủ thực thi gỡ lỗi
DSSS Direct Sequence Spread Spectrum Chuỗi lây lan phổ trực tiếp
EDR Enhanced Data Rate Tăng cường tốc độ dữ liệu.
FEC Forward Error Correction Sữa chữa lỗi về phía trước
FHSS Frequency Hopping Spread Spectrum Tần số nhảy lây lan phổ

IDE Integrated Development Environment Môi trường phát triển tích hợp
JDK
Java Developer Kit Bộ công cụ phát triển Java
JRE
Java Runtime Environment
Ứng dụng nền trên Java
JVM
Java Virtual Machine
Máy ảo thực thi
LMP Link Manament Protocol Liên kết quản lí giao thức
MAC Media Access Control Điều khiển truyền thông truy
cập
PMA Packed Member Address Đóng gói phần địa chỉ
SCO Synchronous connection-oriented Đồng bộ hướng kết nối
SDK Software Develoment Kit Phần mềm hỗ trợ phát triển
UART Universal Asynchronous
Receiver/Transmitter
Bộ truyền nhận nối tiếp đồng bộ
và không đồng bộ.
XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng
-8-
LỜI NÓI ĐẦU
Trong cuộc sống ngày càng hiện đại như ngày nay, các thiết bị di động cầm
tay đang dần trở thành những thứ không thể thiếu cho mỗi người. Trong đó
có các Smartphone, với những nền tảng hiện đại và tích hợp nhiều công
nghệ, nó không chỉ giúp giữ thông tin liên lạc với nhau mà những chiếc
Smartphone này trở nên thông minh và làm được rất nhiều việc đem lại sự
tiện lợi cho người dùng từ những công việc nhỏ nhất trong đời sống. Với
các nhu cầu đa dạng và phức tạp của mỗi ứng dụng, kỹ thuật không dây
đã đưa ra nhiều chuẩn với các đặc điểm kỹ thuật khác nhau để có thể phù

hợp với từng nhu cầu, mục đích và khả năng của người sử dụng như
IrDA, WLAN với chuẩn 802.11, ZigBee, OpenAir, Bluetooth, NFC… Mỗi
chuẩn kỹ thuật đều có những ưu, khuyết điểm riêng của nó và trong đó
Bluetooth đang dần nổi lên là kỹ thuật không dây tầm ngắn có nhiều ưu
điểm, rất thuận lợi cho những thiết bị di động. Bluetooth đang dần lan rộng
ra khắp thế giới, xâm nhập vào mọi lĩnh vực của thiết bị điện tử, đặc biệt
là các thiết bị cầm tay.
Từ những lý do trên, Em đã chọn đề tài “Tìm hiểu Hệ điều
hành Android và xây dựng hệ thống điều khiển thiết bị qua
Bluetooth”. Trong đề tài này, em tìm hiểu về Hệ điều hành Android và
xây dựng một hệ thống điều khiển thiết bị thông qua Bluetooth. Với những
kiến thức về điện tử và vi điều khiển đã được học tập tại trường, cùng với
việc tìm hiều để xây dựng ứng dụng trên hệ điều hành Android, em đã hoàn
thành tốt đồ án của mình.
Em xin gửi lời cám ơn chân thành đến với thầy giáo hướng dẫn Lê
Văn Thanh Vũ cùng với các thầy cô giáo trong Khoa đã nhiệt tình giúp đỡ
em trong quá trình thực hiện đồ án. Do có sự hạn chế về thời gian cũng
như kiến thức và kinh nghiệm nên khó tránh khỏi những sai sót. Em rất
mong được sự đóng góp ý kiến của các Thầy Cô trong Khoa và các bạn về
đồ án này. Em xin chân thành cảm ơn.
-9-
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1 Đặt vấn đề:
Trong vài năm trở lại, hệ điều hành Android đã xuất hiện như một điểm sáng
rồi dẫn trở thành vầng sao lớn trong lĩnh vực hệ điều hành cho thiết bị cầm tay
thông minh khi chiếm đến 78,1% thị phần (Theo IDC, Q4/2013) so với iOS
và Windows Phone. Nó đem lại cho người dùng các tiện ích thông minh và sự
tiện dụng cùng với một kho ứng dụng đồ sộ cho các thiết bị cầm tay. Nhờ đặc điểm
mã nguồn mở của Linux tối ưu cho hoạt động của thiết bị cầm tay thông minh,
Android cho phép người dùng và các nhà phát triển phát triển các ứng dụng linh

hoạt hướng đến sự tiện lợi đa dạng trong nhiều lĩnh vực khác nhau. Google còn
cung cấp các nền tảng phát triển cho phép bên thứ 3 tham gia phát triển các ứng
dụng mới và tùy biến hệ điều hành một cách linh hoạt. Chính điều này đã cho phép
các bên thứ 3 phát triển rất nhiều ứng dụng theo nhiều định hướng để góp phần làm
phong phú hơn các kho ứng dụng của Android.
Ngoài ra, hiện nay giao tiếp không dây của các thiết bị thông minh ngày
càng đa dạng và tiện dụng hơn, nếu trước đây các điện thoại chỉ có thể kế nối thông
qua cáp với giao diện riêng của nhà sản xuất thì ngày này có rất nhiều chuẩn giao
tiếp rất tiện lợi như: giao tiếp USB, giao tiếp NFC, Wifi …Và đặc biệt giao tiếp
không dây phổ biến và linh hoạt như Bluetooth cho phép các thiết bị dễ dàng kết
nối trao đổi dữ liệu trong khoảng cách ngắn một cách đơn giản nhất. Nó cho phép
việc kết nối không dây với các thiết bị điện, điện tử trở nên tiện dụng và hiệu quả
hơn.
Kết hợp hai yếu tố trên, việc xây dựng một hệ thống điều khiển các thiết bị
gia dụng bằng Smartphone Android thông qua giao tiếp Bluetooth là trọng tâm của
đề tài nghiên cứu này để hướng đến một cuộc sống tiện nghi, hiện đại trong các
ngôi nhà thông minh.
1.2 Ý tưởng và yêu cầu đặt ra:
1.2.1 Ý tưởng thiết kế:
* Về phía phần mềm điều khiển trên Android: Việc xây dựng ứng
dụng trên hệ điều hành Android tương đối thuận lợi, dễ dàng bởi Android là
một hệ điều hành mở, có một cộng đồng phát triển đông đảo, nơi để mọi
người học hỏi, tham khảo và chia sẻ kinh nghiệm với nhau. Và một ưu
điểm nữa là hầu như các thiết bị Android là đều được tích hợp công
-10-
nghệ Bluetooth, vì thế người dùng có thể dễ dàng kết nối được với
mạch để điều khiển. Việc điều khiển trở lên thuận tiện và tiết kiệm chi
phí so với làm bộ điều khiển. Nhờ vào tính mở của hệ điều hành
Android chúng ta có thể phát triển ứng dụng một cách tối ưu, phù hợp
cho bộ điều khiển.

Từ những thuận lợi đó,việc tạo một ứng dụng trên chiếc Mobile
Android thật sự dễ dàng, ứng dụng này sẽ có chức năng chính là truyền ,
nhận dữ liệu qua Bluetooth để điều khiển bảng thiết bị. Và việc này được
thực hiện trên những chiếc điện thoại sử dụng hệ điều hành Android mà mọi
người thường dùng hằng ngày.
* Về phía thiết bị ngoại vi: Sử dụng 1 Module Bluetooth để truyền nhận
dữ liệu với Smartphone Android và việc truyền nhận này được điều khiển bởi một
vi điều khiển. Vi điều khiển này có 2 nhiệm vụ chính: xử lý dữ liệu và điều khiển
đóng tắt các Rơle để điều khiển dòng điện 220VAC cung cấp cho các thiết bị điện.
Mục tiêu đạt ra là kết nối các thiết bị điện gia dụng thông qua khối xử lý
trung tâm có sự điều khiển từ xa bởi thiết bị sử dụng hệ điều hành Android và có
giao tiếp không dây Bluetooth cơ bản. Mô hình tổng thể hệ thống được trình bày
như dưới đây (Hình 1.).
Hình 1. Mô hình tổng quan của hệ thống.
-11-
-12-
1.2.2 Các yêu cầu đặt ra:
- Hệ thống mạch điện phải có độ ổn định cao, sử dụng được trong
nhiều điều kiện khác nhau, và trong thời gian dài.
- Phần mềm điều khiển trên điện thoại Android phải linh hoạt, kết nối
nhanh với mạch điều khiển, chính xác và an toàn tuyệt đối.
- Đơn giản với nhiều người sử dụng, cài đặt phần mềm và lắp đặt
phần cứng đơn giản nhất.
- Hạn chế tối đa các can nhiễu khi sử dụng với các thiết bị điện khác
nhau, đặc biệt là các thiết bị có nhiễu từ trường cao.
- Khoảng cách điều khiển giữa điện thoại Android và mạch điều khiển
đảm bảo hợp lý trong khoảng cách dưới 100m.
- Giá thành phải phù hợp với một hệ thống ổn định và có tính ứng
dụng thực tiễn cao.
-13-

CHƯƠNG 2: TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID VÀ CÁC
GIAO TIẾP NGOẠI VI
2.1 Hệ điều hành Android:
2.1.1 Khái niệm:
Android là một hệ điều hành mã nguồn mở dành cho thiết bị di động như
Smartphone, Tablet hay Netbook (thường gọi chung là thiết bị cầm tay thông minh).
Android do Google phát triển dựa trên nền tảng Linux kernel phiên bản 2.6 và các
phần mềm mã nguồn mở. Bất kỳ một hãng sản xuất phần cứng nào cũng đều
có thể tự do sử dụng hệ điều hành Android cho thiết bị của mình, miễn là
các thiết bị ấy đáp ứng được các tiêu chuẩn cơ bản do Google đặt ra ( như
có cảm ứng chạm đa điểm, GPS, 3G,…). Nhờ tính mở miễn phí và những
ưu điểm của hệ điều hành này, ngày nay các thiết bị cầm tay sử dụng hệ
điều hành này càng nhiều và phổ biến.
2.1.2 Lịch sử phát triển:
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên
lõi Linux
do
công ty Android Inc (California, Mỹ) thiết kế. Công ty này sau
đó được Google
mua
lại vào năm 2005 và bắt đầu xây dựng Android
Platform. Các thành viên chủ chốt
tại
ở Android Inc. gồm có: Andy
Rubin
,
Rich
Miner
, Nick Sears, and Chris
White

. Quá trình phát triển ban đầu
được minh họa trong .
Hình 2. Dòng thời gian phát triển của android.
-14-
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm
tay Mã
Nguồn
mở (Open Handset Alliance) gồm các thành viên nổi bật
trong ngành viễn thông

thiết bị cầm tay
như:
Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG,
Marvell
Technology Group, Motorola, Nvidia,Qualcomm, Samsung
Electronics,
Sprint
Nextel, T-Mobile, ARM Holdings, Atheros
Communications, Asustek Computer
Inc,
Garmin Ltd, Softbank, Sony
Ericsson, Toshiba Corp, and Vodafone
Group,…
Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng
tốt hơn cho
nhu
cầu người tiêu dùng và kết quả đầu tiên của nó chính
là nền tảng Android.
Android
được thiết kế để phục vụ nhu cầu của các

nhà sản xuất thiết, các nhà khai thác và
các
lập trình viên thiết bị cầm
tay.
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007,
hãng
T-Mobile
cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc
T-Mobile G1,
chiếc
smartphone đầu tiên dựa trên nền tảng Android. Một
vài ngày sau đó, Google lại
tiếp
tục công bố sự ra mắt phiên bản Android
SDK release Candidate 1.0. Trong tháng
10
năm 2008, Google được cấp
giấy phép mã nguồn mở cho Android
Platform.
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm
tay được gọi

Android Dev Phone 1 có thể chạy được các ứng dụng
Android mà không bị ràng
buộc
vào các nhà cung cấp mạng điện thoại di
động. Mục tiêu của thiết bị này là cho
phép
các nhà phát triển thực hiện
các cuộc thí nghiệm trên một thiết bị thực có thể chạy

hệ
điều hành
Android mà không phải ký một bản hợp đồng nào.
-15-
Hình 2. Sự phân chia các hệ điều hành trên Smartphone.(Nguồn TechZ).
Hiện nay, hệ điều hành này trở nên phát triển và hội nhập hơn bao giờ hết,
được các hãng sản xuất thiết bị sử dụng và được người dùng ngày càng yêu thích.
Hình 2.2 biểu thị sự phân khúc thị trường của các hệ điều hành hiện nay, trong đó ta
cũng thấy rằng hệ điều hành Android chiếm vị trí cao nhất với 81% so với các hệ
điều hành khác.
Với các nhà phát triển ứng dụng (Developers), việc hệ điều hành
android được sử dụng phổ biến đồng nghĩa với việc họ có thể thoải mái
phát triển ứng dụng trên nền android với sự tin tưởng là ứng dụng đó sẽ có
thể chạy được ngay trên nhiều dòng điện thoại của các hãng khác nhau. Họ
ít phải quan tâm là đang phát triển cho điện thoại nào, phiên bản bao nhiêu
vì nền tảng android là chung cho nhiều dòng máy, máy ảo Java đã chịu
trách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện thoại mà
nó đang chạy. Tất cả các chương trình ứng dụng được viết bằng ngôn ngữ
Java kết hợp với XML nên có khả năng khả chuyển cao.
2.1.3
Các phiên bản của hệ điều hành:
Hệ điều hành android là một hệ điều hành rất mạnh, có bảo mật cao,
hỗ trợ được nhiều công nghệ tiên tiến như 3G, 4G, GPS, EDGE, Wifi
tương thích với nhiều phần cứng, và hỗ trợ được với nhiều loại thiết bị
khác nhau. Qua từng giai đoạn phát triển đã có rất nhiều phiên bản ra mắt
để sửa lỗi hoàn thiện hơn và thêm các tính năng mới.
- Android 1.0: Ra mắt ngày 23-11-2008, Android 1.0 rất nguyên sơ,
tích hợp sẵn khả năng đồng bộ dữ liệu với các dịch vụ trực tuyến của
-16-
Google như Gmail, Google Calendar và Contacts, một trình phát media, hỗ

trợ Wi-Fi và Bluetooth, thanh trạng thái hiển thị các thông báo ứng dụng và
một ứng dụng chụp ảnh (camera) tuy chưa cho phép thay đổi độ phân giải
và chất lượng ảnh.
- Android 1.1: Ra mắt ngày 9-2-2009, bên cạnh con số, Google rục
rịch đưa hệ thống tên gọi (tên mã) vào các phiên bản Android. Tuy chưa
chính thức áp dụng nhưng Android 1.1 đã có tên Petit Four. Không bao gồm
nhiều tính năng, phiên bản này bổ sung một số chức năng mới cho Google
Maps hiển thị chi tiết hơn, bàn phím ảo gọi điện thoại đã có thể hiển thị
hoặc ẩn khi gọi, chương trình SMS cho phép người dùng lưu tập tin đính
kèm. Android 1.1 sửa một số lỗi trong Android 1.0.
- Android 1.5 Cupcake: Ra mắt ngày 30-4-2009, Cupcake, tên
mã đầu tiên áp dụng cho phiên bản Android. Cupcake mang nhiều tính năng
mới như bàn phím ảo có khả năng dự đoán từ đang gõ, từ điển từ ngữ do
người dùng đặt ra, hỗ trợ widget trên giao diện chủ, quay phim và phát lại
video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo
hướng sử dụng (screen rotation). Trình duyệt web trong Cupcake có thêm
khả năng sao chép/ dán (copy/paste).
- Android 1.6 Donut: Ra mắt ngày 30-9-2009, Donut khắc phục các
chức năng "lỏng lẻo" trong Cupcake, mở rộng chức năng tìm kiếm bằng
giọng nói và ký tự đến bookmark và danh bạ. Android Market trở thành "chợ
đầu mối" để người dùng tìm kiếm và xem các ứng dụng Android. Ứng dụng
chụp ảnh và quay phim trong Donut nhanh hơn. Hệ điều hành hỗ trợ màn
hình có độ phân giải lớn hơn, hướng đến các thế hệ smartphone màn hình
lớn.
- Android 2.0/2.1 Eclair: phiên bản chính 2.0 ra mắt vào tháng 11
năm 2009, triển khai để hỗ trợ tốt hơn cho điện thoại di động. Sau đó, phiên
bản 2.1 với một vài tính năng nhỏ được nâng cấp xuất hiện vào tháng 1
năm 2010. Phiên bản này nổi bật với các tính năng mới cho người dùng và
các nhà phát triển, cũng như nâng cấp giao diện người dùng đồng thời hỗ
trợ HTML5 và Exchange ActiveSync 2.5.

- Android 2.2 Froyo: Ra mắt ngày 20-5-2010, từ phiên bản 2.0 trở đi,
Android dần hoàn thiện hơn. Phiên bản 2.2 (Froyo) mang Adobe Flash đến
Android, kéo theo hàng loạt ứng dụng và game trên nền Flash. Người dùng
cũng có thể xem video clip nền Flash như YouTube và "ra lệnh" thực hiện
cuộc gọi qua Bluetooth.
-17-
+ Một chức năng mới trong Froyo được nhóm người dùng lưu động
yêu thích là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android
thành thiết bị phát sóng Wi-Fi từ kết nối 3G. Tính năng này được sử dụng
rất phổ biến đến ngày nay.
+ Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ
SD thay vì mặc định cài ngay vào bộ nhớ trong của thiết bị. Điểm "đầu tiên"
nữa trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số. Thiết bị đầu tiên
mang nhãn Froyo ra mắt thị trường là HTC Nexus One.
- Android 2.3 Gingerbread: ra ngày 06/12/2010, Gingerbread đưa
vào hệ thống một công cụ quản lý tải tập tin, cho phép theo dõi và truy xuất
đến các tập tin đã tải về máy. Hệ thống này hỗ trợ nhiều camera cho các
thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả hơn, tiết
kiệm thời lượng pin. Phiên bản này khắc phục khá nhiều lỗi từ Froyo, kèm
theo một số điều chỉnh trong giao diện người dùng (UI).
- Android 3.0/3.1 Honeycomb: Ra mắt ngày 22-2-2011.Đây không
chỉ là một phiên bản, mà có thể xem là một thế hệ Android đầu tiên dành
riêng cho máy tính bảng (tablet), ra mắt cùng tablet Motorola XOOM
+ Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến
giao diện phù hợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện
hơn, hỗ trợ xử lý đa tác vụ (multi-tasking), cho phép chuyển đổi qua lại các
ứng dụng đang cùng chạy. Không chỉ có bề mặt được trau chuốt, phần lõi
hệ thống có các cải tiến tương thích với phần cứng như hỗ trợ chip xử lý
(CPU) đa lõi, tăng tốc phần cứng
+ Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp

nhất, khắc phục sự phân mảng của Android (có các phiên bản riêng dành
cho smartphone và tablet)
- Android 4.0: Ice Cream Sandwich :Ra mắt ngày 19-10-2011."Bánh
kem sandwich" (ICS) là thế hệ Android được mong đợi nhất đến nay, ra đời
cùng dòng smartphone "bom tấn" Samsung Galaxy Nexus, thế hệ
smartphone đầu tiên trang bị ICS. Android 4.0 đưa chức năng truy xuất
nhanh các ứng dụng thường dùng vào phần bên dưới giao diện chủ, tùy
biến widget, dễ sắp xếp và duyệt danh sách ứng dụng hơn. Các ứng dụng
đã có thể truy xuất nhanh từ màn hình khóa thiết bị (Lock screen), hiện các
hãng sản xuất thiết bị chỉ mới cho phép Camera có thể chọn nhanh từ Lock
screen.Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn.
-18-
- Android 4.1: Jelly Bean: Ra mắt 9-7-2012. Khả năng sắp xếp giao
diện chủ và widget trong Jelly Bean rất tùy biến và linh hoạt. Hệ thống hỗ
trợ dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt web mặc định trong
Android được thay thế bởi đại diện tên tuổi: Chrome, với khả năng đồng bộ
dữ liệu theo tài khoản với bản Chrome trên máy tính.
Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ
dành cho Android, một phụ tá ảo đắc lực cho công việc sắp xếp lịch trình,
tìm kiếm thông tin, xác định vị trí Rất đa năng và được xem như lời đáp
trả của Google với "phụ tá ảo" Apple Siri trong iOS.
- Android 4.2: vẫn là Jelly Bean: Ra mắt tháng 11-2012, chỉ sau gần
năm tháng ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng cho
Android với phiên bản 4.2 và vẫn mang tên mã Jelly Bean.
Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng
chụp ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now,
đưa tính năng lướt chọn từ rất hay trong bàn phím ảo. Chức năng "bom
tấn" hỗ trợ nhiều tài khoản người dùng (multi-user profile) lần đầu tiên
được áp dụng trong Android 4.2 nhưng chỉ có người dùng máy tính bảng
thừa hưởng chức năng này.

- Android 4.3 Jelly Bean : Ra mắt tháng 7 - 2013, Đây là phiên bản
Android mới nhất đi kèm những tính năng mới như hỗ trợ kết nối Bluetooth
Smart, bộ API OpenGL ES 3.0, cho phép gán hồ sơ cho từng người dùng
trong hệ thống, bổ sung tính năng sử dụng Wi-Fi để định vị ngay cả khi
người dùng tắt kết nối này đi cùng nhiều thay đổi lớn nhỏ khác.
- Android 4.4 KitKat: Ra mắt tháng 11 - 2013, Mục tiêu của Google
đó là đem Android 4.4 lên mọi thiết bị, kể cả những dòng máy có cấu hình
rất thấp đi chăng nữa, đây cũng là dịp họ muốn rũ bỏ cái danh “hệ điều
hành ngốn cấu hình” hàng đầu thế giới. Bổ xung nhiều tính năng và các
hàm API mới cho việc phát triển các ứng dụng hiện đại.
2.1.4 Kiến trúc hệ điều hành Android:
Kiến trúc hệ điều hành Android gồm 4 tầng, từ dưới lên trên là
tầng hạt nhân Linux (v2.6), tầng Tầng Libraries & Android Runtime ,
Tầng Application Framework và trên cùng là tầng Application. Mô hình
tổng thể của các thành phần bên trong hệ thống sử dụng Android
được mình họa trong (Hình 2.).
-19-
Hình 2. Kiến trúc của hệ điều hành Android.
2.1.4.1 Tầng hạt nhân Linux (Linux Kernel layer):
Hệ điều hành Android được phát trển dựa trên hạt nhân Linux Kernel,
cụ thể là hạt nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới
cùng này. Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều
được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ
(memory management), giao tiếp với phần cứng (driver model), thực hiện
bảo mật (security), quản lý tiến trình (process). Tuy được phát triển dựa vào
nhân Linux nhưng thực ra nhân Linux đã được nâng cấp và sửa đổi rất
nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế về
bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu kết nối mạng
không dây
Tầng này có các thành phần chủ yếu:

- Display Driver : Điều khiển việc hiển thị lên màn hình cũng như
thu nhận những điều khiển của người dùng lên màn hình (di chuyển,
cảm ứng ).
- Camera Driver : Điều kiển hoạt động của camera, nhận luồng
dữ liệu từ camera trả về.
-20-
- Bluetooth Driver : Điều khiển thiết bị phát và thu sóng
Bluetooth.
- USB driver : Quản lý hoạt động của các cổng giao tiếp USB
- Keypad driver : Điều khiển bàn phím.
- Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi.
- Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các
tính hiệu dạng audio thành tín hiệu số và ngược lại.
- Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc
với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những
chức năng truyền thông được thực hiện.
- M-System Driver : Quản lý việc đọc ghi lên các thiết bị nhớ
như thẻ SD, flash.
- Power Madagement : Giám sát việc tiêu thụ điện năng.
2.1.4.2 Tầng Library và Android runtime:
Tầng này có 2 thành phần là Library và Android runtime.
Phần Library:
Phần này có nhiều thư viện được viết bằng C/C++ để các phần
mềm có thể sử dụng, các thư viện đó được tập hợp thành một số
nhóm như :
- Thư viện hệ thống (System C library) : thư viện dựa trên chuẩn
C, được sử dụng chỉ bởi hệ điều hành.
- Thư viện Media (Media libraries): có nhiều codec để hổ trợ việc
phát và ghi lại các loại định dạng âm thanh, hình ảnh video
thông dụng.

- Thư viện Web (LibWebCore): đây là thành phần để xem nội
dung trên web, được sử dụng để xây dựng phần mềm duyệt
web (Android browse) cũng như các ứng dụng khác có thể
nhúng vào. Nó cực kỳ mạnh, hỗ trợ nhiều công nghệ mạnh mẽ
như HTML5, JavaScript, CSS, DOM, AJAX…
- Thư viện SQLite: hệ cơ sở dữ liệu cho các ứng dụng.
Phần Android runtime:
Phần này chứa các thư viện mà một chương trình viết bằng ngôn
ngữ Java có thể hoạt động. Phần này có 2 bộ phận tương tự như mô hình
-21-
chạy Java trên máy tính thường. Thứ nhất là các thư viện lõi (Core
Library) , chứa các lớp như JAVA IO, Collections, File Access. Thứ hai là
một máy ảo java (Dalvik Virtual Machine). Mặc dù cũng được viết từ ngôn
ngữ Java nhưng một ứng dụng Java của hệ điều hành android không được
chạy bằng JRE (Java Runtime Environment) của Sun (nay là Oracle)
(JVM - Java Virtual Machine) mà là chạy bằng máy ảo Dalvik do
Google phát triển.
2.1.4.3 Tầng Application Framework:
Tầng này xây dựng bộ công cụ: các phần tử ở mức cao để các lập
trình viên có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng java
có khả năng sử dụng chung để tiết kiệm tài nguyên.
Đây là một nền tảng mở, điều đó có hai cái lợi:
- Với các hãng sản xuất điện thoại: Có thể tùy biến để phù hợp với
cấu hình điện thoại mà họ sản xuất cũng như để có nhiều mẫu mà phù hợp
với thị hiếu người tiêu dùng. Vì thế nên dù là dùng chung hệ điều hành
Android sáng điện thoại của các hãng Motorla, HTC, Samsung,… có thể
hoàn toàn khác nhau.
- Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API
(Application Programming Interface ) ở tầng trên mà không cần phải hiểu
rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng tạo bởi vì

chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc. Một tập hợp API
rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền,
liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao
Các thành phần của tầng này:
- Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng
như cung cấp công cụ điều khiển các Activity.
- Telephony Manager : Cung cấp công cụ để thực hiện việc liên lạc
như gọi điện thoại.
- XMPP Service : Cung cấp công cụ để liên lạc trong thời gian thực.
- Location Manager : Cho phép xác định vị trí của điện thoại thoại
dựa vào hệ thống định vị toàn cầu GPS và Google Maps.
- Window Manager : Quản lý việc xây dựng và hiển thị các giao diện
người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng.
- Notication Manager : Quản lý việc hiển thị các thông báo (như báo
có tin nhắn, có e-mail mới ).
-22-
- Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao
gồm các file hình ảnh, âm thanh, layout, string. (Những thành phần không
được viết bởi ngôn ngữ lập trình).
2.1.4.4 Tầng Application:
Đây là tầng gồm các ứng dụng giao tiếp với người dùng như:
Các ứng dụng cơ bản được cài đặt đi liền với hệ điều hành như gọi
điện (phone), quản lý danh bạ (Contacts), trình duyệt web (web browser),
nhắn tin (SMS), lịch (Calendar), đọc E-mail (Email – client), bản đồ (Map),
…. Các ứng dụng được người dùng cài thêm: Stock, games, dictionary…
Các chương trình có đặc điểm là:
- Viết bằng java, có phần mở rộng là apk.
- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine
được dựng lên để phục vụ cho nó. Nó có thể là một Active Program:
Chương trình có giao diện với người sử dụng hoặc là một background:

chương trình chạy nền hay là dịch vụ.
- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một
thời điểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với
mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy mà
thôi. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống
hoạt động tốt hơn.
- Các ứng dụng được gán số ID của người sử dụng nhằn phân định
quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống.
- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành
di động khác, android cho phép một ứng dụng của bên thứ ba được phép
chạy nền. Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được
phép sử dung quá 5~10% công suất CPU, điều đó nhằn để tránh độc
quyền trong việc sử dụng CPU.
- Ứng dụng không có điểm vào cố định, không có phương thức main
để bắt đầu.
2.1.5
Chu kỳ ứng dụng trên Android:
Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứng
dụng
khi codes cần được run và sẽ còn chạy cho đến
khi:
- Nó không phụ
thuộc.
- Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng
khác
. Một sự khác thường và đặc tính cơ bản của Android là thời gian sống
-23-
của tiến
trình
ứng dụng không được điều khiển trực tiếp bới chính nó.

Thay vào đó, nó được
xác
định bởi hệ thống qua một kết hợp
của:
- Những phần của ứng dụng mà hệ thống biết đang
chạy
- Những phần quan trọng như thế nào đối với người
dùng
- Bao nhiêu vùng nhớ chiếm lĩnh trong hệ
thống.
2.1.5.1
Chu kỳ sống thành phần:
Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành
phần từ lúc bắt
đầu
khởi tạo và đến thời điểm kết thúc. Giữa đó, đôi
lúc chúng có thể là active
hoặc
inactive, hoặc là trong trường hợp
activies nó có thể visible hoặc
invisible.
2.1.5.2
Activity Stack:
Bên trong hệ thống các activity được quản lý như một activity
stack. Khi
một
Activity mới được start, 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.
Nếu người dùng nhấn nút Back thì activity kết tiếp của stack sẽ
di duyển lên và
trở
thành
active (Hình 2.4).
Hình 2. Activity stack
-24-
2.1.5.3
Các trạng thái của chu kỳ sống:
Các trạng thái của chu kỳ sống được mô tả như hình bên dưới (Hình 2.):
Hình 2. Chu kỳ sống của Activity.
Một Activity chủ yếu có 3 chu kỳ chính
sau:
- Active hoặc running: Khi Activity là được chạy trên màn hình.
Activity này
tập
trung vào những thao tác của người dùng trên ứng
dụng.
- Paused: Activity là được tạm dừng (paused) khi mất focus
nhưng người
dùng
vẫn trông thấy. Có nghĩa là một Activity mới ở trên nó
nhưng không bao
phủ
đầy màn hình. Một Activity tạm dừng là còn sống
nhưng có thể bị kết thúc

bởi
hệ thống trong trường hợp thiếu vùng
nhớ.
-25-
- Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác. Nó vẫn còn
trạng thái

thông tin thành viên trong nó. Người dùng không thấy nó và
thường bị loại bỏ
trong
trường hợp hệ thống cần vùng nhớ cho tác vụ
khác.
2.1.5.4
Chu kỳ sống của ứng dụng:
Trong một ứng dụng Android có chứa nhiều thành phần và mỗi
thành phần đều

một chu trình sống riêng. Và ứng dụng chỉ được
gọi là kết thúc khi tất cả các
thành
phần trong ứng dụng kết thúc.
Activity là một thành phần cho phép người dùng
giao
tiếp với ứng
dụng. Tuy nhiên, khi tất cả các Activity kết thúc và người dùng
không
còn giao tiếp được với ứng dụng nữa nhưng không có nghĩa là ứng
dụng đã kết
thúc.
Bởi vì ngoài Activity là thành phần có khả năng

tương tác người dùng thì còn có
các
thành phần không có khả năng
tương tác với người dùng như là Service,
Broadcast
receiver. Có
nghĩa là những thành phần không tương tác người dùng có thể
chạy
background dưới sự giám sát của hệ điều hành cho đến khi người
dùng tự tắt
chúng.
2.1.5.5
Các sự kiện trong chu kỳ sống của ứng dụng:
Nếu một Activity được tạm dừng hoặc dừng hẳn, hệ thống có
thể bỏ thông tin
khác
của nó từ vùng nhớ bởi việc finish() (gọi hàm
finish() của nó), hoặc đơn giản giết
tiến
trình của nó. Khi nó được
hiển thị lần nữa với người dùng, nó phải được hoàn
toàn
restart và
phục hồi lại trạng thái trước. Khi một Activity chuyển qua chuyển lại
giữa các
trạng thái, nó phải báo việc chuyển của nó bằng việc gọi
hàm
transition. Các phương thức của ứng dụng được nêu ra ở Hình
2
Hình 2.

Các sự kiện trong 1 chu kỳ ứng dụng.
Tất cả các phương thức là những móc nối mà bạn có thể
override để làm
tương
thích công việc trong ứng dụng khi thay đổi
trạng thái. Tất cả các Activity bắt
buộc
phải có onCreate() để khởi tạo

×