Để tận dụng được tính tính tiện lợi cũng như khả năng xử lý của các thiết bị di động trong việc học tập, các ứng dụng phục vụ cho nhu cầu này lần lượt ra đời, tiêu biểu là các ứng dụng h
Trang 1LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
Tìm hiểu và lập trình Trò Chơi Học Từ Vựng trên Android
MSSV:1111531
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CNTT & TT
BỘ MÔN TIN HỌC ỨNG DỤNG
Trang 2LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
Tìm Hiểu và lập trình Trò chơi Học Từ Vựng trên Android
MSSV:1111531
Cán bộ phản biện
Ts Nguyễn Hữu Hòa
Ks Đặng Mỹ Hạnh Ths Nguyễn Minh Trung
Luận văn được bảo vệ tại:Hội đồng chấm luận văn tốt nghiệp Bộ môn Tin học Ứng dụng, Khoa CNTT & TT, Trường Đại học Cần Thơ vào ngày 15 tháng 5 năm 2015
Trang 3MỤC LỤC
Trang
MỤC LỤC 3
DANH MỤC HÌNH 5
DANH MỤC BẢNG 6
LỜI CẢM ƠN 7
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT 8
TÓM TẮT 9
ABSTRACT 10
CHƯƠNG 1 TỔNG QUAN 11
1.1 ĐẶT VẤN ĐỀ 11
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 11
1.3 PHẠM VI ĐỀ TÀI 11
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 11
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 12
2.1 GIỚI THIỆU HĐH ANDROID 12
2.2 LỊCH SỬ PHÁT TRIỂN CỦA HĐH ANDROID 13
2.3 KIẾN TRÚC HĐH ANDROID 20
2.3.1 Phần cứng 20
2.3.2 Hệ điều hành Android 20
2.3.3 Kết nối mạng 22
2.3.4 Bảo mật 23
2.3.5 Các ứng dụng có sẵn trên nền tảng Android: 24
2.4 PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN TẢNG ANDROID 25
2.4.1 Những yêu cầu để phát triển ứng dụng trên nền tảng Android: 25
2.4.2 Công cụ và môi trường phát triển ứng dụng Android 25
2.5 SO SÁNH GIỮA CÁC HỆ ĐIỀU HÀNH DI ĐỘNG 25
Trang 42.7.1 Giới thiệu về CSDL SQLite 31
2.7.2 Chi tiết về các đặc tính của SQLite 31
2.8 KIẾN THỨC VỀ PHP,MYSQL VÀ JSON 33
2.8.1 PHP 33
2.8.2 MySQL 33
2.8.3 Json 33
CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 35
3.1 PHÂN TÍCH TRÒ CHƠI HỌC TỪ VỰNG 35
3.1.1 Giới thiệu 35
3.1.2 Luật chơi, cách chơi và cách tính điểm: 35
3.1.3 Lưu trữ thông tin người dùng 35
3.2 THIẾT KẾ TRÒ CHƠI 36
3.3 CÁC THUẬT TOÁN TRONG TRÒ CHƠI 45
3.3.1 Tạo câu hỏi trong trò chơi 45
3.3.2 Tiếp nhận câu trả lời 47
3.4 CÁC KĨ THUẬT DÙNG TRONG LẬP TRÌNH TRÒ CHƠI 50
3.4.1 Sử dụng CSDL SQLite 50
3.4.2 Đăng ký Broadcast Receiver 51
3.4.3 Xử lý đa tiến trình bằng AsyncTask 51
3.4.4 Tùy biến ListView trong Android 52
3.4.5 Kết nối với CSDL MySql 53
3.4.6 Sử dụng Shared Preferences trong Android 53
3.5 KẾT QUẢ ĐẠT ĐƯỢC 53
3.6 NHỮNG VẤN ĐỀ CÒN LẠI 54
KẾT LUẬN VÀ ĐỀ NGHỊ 55
PHỤ LỤC:CÁC PHẦN MỀM SỬ DỤNG TRONG ĐỀ TÀI 56
TÀI LIỆU THAM KHẢO 57
Trang 5DANH MỤC HÌNH
Hình 2.3.2.1 Các Tầng Của Hệ Điều Hành Android 22
Hình 2.3.4.1 Sơ đồ hoạt động trong thiết bị Android 24
Hình 2.6.1 Biểu đồ miêu tả Activity State 28
Hình 3.2.1 Sơ đồ use case của ứng dụng 36
Hình 3.2.2 Sơ đồ hoạt động trong trò chơi 37
Hình 3.2.3 Menu chính của trò chơi 38
Hình 3.2.4 Màn hình đăng nhập của trò chơi 39
Hình 3.2.5 Màn hình đăng ký tài khoản của ứng dụng 40
Hình 2.3.6 Giao diện chọn chủ đề của trò chơi 41
Hình 3.2.7 Giao diện chính của trò chơi 42
Hình 3.2.8 Giao diện bảng xếp hạng trong trò chơi 43
Hình 3.2.9 Giao diện nhập từ vựng tự học 44
Hình 3.3.1.1 Các nút sẽ được gán chứ cái 45
Hình 3.3.1.2 Từ khoá được tạo là HOUSE 46
Hình 3.3.1.3 Câu hỏi sau khi tạo xong 46
Hình 3.3.1.4 Sơ đồ thuật toán tạo câu hỏi 47
Hình 3.3.2.1 Khi người dùng chọn đúng chữ cái 48
Hình 3.3.2.2 Khi người dùng chọn sai chữ cái 49
Hình 3.3.2.3 Sơ đồ tiếp nhận câu trả lời từ người dùng 50
Hình 3.4.4.1 Tùy biến listview trong Android 52
Hình 3.5.1 Những hình ảnh trong trò chơi 54
Trang 6DANH MỤC BẢNG
Bảng 1 Danh mục ký tự và viết tắt 8
Bảng 2.5.1 So sánh giữa các HĐH di động 26
Bảng 2.6.2.1 Cấu trúc lưu trữ dự án Android 29
Bảng 2.6.2.2 Cấu trúc lưu trữ dự án Android 30
Bảng 2.6.2.3 Cấu trúc lưu trữ trong thư mục RES 30
Trang 7LỜI CẢM ƠN Lời đầu tiên em xin chân thành cảm ơn quý thầy cô trong khoa Công Nghệ Thông Tin
và Truyền Thông nói chung và Bộ Môn Tin Học Ứng Dụng nói riêng Cảm ơn quý
thầy cô đã tận tình chỉ bảo và giúp đỡ cho em trong suốt quá trình học tập tại trường
Em cũng xin gửi lời cảm ơn sâu sắc đến Th.s Nguyễn Minh Trung, người đã trực tiếp
hướng dẫn và tạo mọi điều kiện thuận lợi để giúp em hoàn thành tốt đề tài luận văn Mặc dù đã rất cố gắng tìm tòi và học hỏi nhưng kiến thức của em còn nhiều hạn chế, không thể tránh khỏi sai sót, em mong nhận được nhiều sự góp ý từ thầy cô và các bạn Sau cùng em xin kính chúc quý thầy cô sức khỏe dồi dào, thành công trong sự nghiệp
Em xin chân thành cảm ơn!
Cần Thơ, ngày 15 tháng 04 năm 2015
Sinh viên thực hiện
Phan Hoài Nam
Trang 8DANH MỤC KÝ HIỆU VÀ VIẾT TẮT
IEEE Institute of Electrical and Electronics Engineers
Bảng 1 Danh mục ký tự và viết tắt
Trang 9TÓM TẮT
Ngày nay với sự phát triển mạnh mẽ và tiến bộ vượt bật của công nghệ thông tin nhất là các công nghệ về di động đã làm cho cuộc sống con người dễ dàng hơn rất nhiều Kéo theo đó là sự ra đời của nhiều nền tảng di động tiêu biểu như IOS của Apple,Android của Google,hay Windows phone của Microsoft
Các hệ điều hành trên đều chạy trên các thiết bị di động,thứ mà mọi người có thể dễ dàng mang theo bên người,với sức mạnh xử lý không thua kém máy tính để bàn hay laptop, nhầm phục vụ cho nhu cầu học tập,làm việc,giải trí,thông tin liên lạc.v.v
Để tận dụng được tính tính tiện lợi cũng như khả năng xử lý của các thiết bị di động trong việc học tập, các ứng dụng phục vụ cho nhu cầu này lần lượt ra đời, tiêu biểu là các ứng dụng học tiếng Anh,nhưng đa phần các ứng dụng này đều không mang tính chất giải trí
Đề tài này được thực hiện nhầm giải quyết vấn đề trên Kết quả dự kiến của đề tài
là một ứng dụng trên di động kết hợp giữa việc học tập và giải trí lại với nhau trên nền tảng hệ điều hành Android
Từ Khóa:Từ vựng,Android,SmartPhone,Json,Sqlite,Php,Mysql
Trang 10ABSTRACT
Nowadays, The great development and advance of the information technology, mobile technology in particular have made the human’s life become more convenient as well as invention of typical mobile foundation such as IOS (Apple), Android (Google), or
Window phone (Microsoft) These Operating Systems are running on mobile devices, which people feel convenient to bring them follow The access power of these device, is not as less as desktop or laptop, serves learning, working, entertainment, communications demand, etc To take advantage of the convenience as well as processing capacity of the mobile devices in learning, applications serving these demands have been invented Especially, applications in learning English, but these are not entertainment This topic is carried out to solve those problems Predictive result of the topic is a mobile application combining study and entertainment together on Android Operating Systems
Keyword:Vocabulary,Android,Smarphone,Json,Sqlite,Php,Mysql
Trang 11CHƯƠNG 1 TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ
Trong thời đại ngày nay, các thiết bị di động thông minh ngày càng phổ biến, từ điện thoại thông minh,máy tính bảng cho đến các thiết bị đeo được như đồng hồ thông minh,vòng tay sức khỏe hay kính thực tế ảo Đa phần trong số chúng đều chạy các hệ điều hành phổ biến như IOS, Android, Windows phone,.v.v
Trong đó Android là hệ điều hành phổ biến nhất với những lợi thế mã nguồn mở,kho ứng dụng khổng lồ, số lượng thiết bị phong phú và đa dạng về kiểu dáng, giá thành và nhà sản xuất
Ngày nay tiếng Anh là một trong những ngôn ngữ phổ biến nhất thế giới, chính vì vậy nhu cầu học tiếng Anh cũng rất lớn và để học tốt tiếng Anh thì từ vựng là phần quan trọng không thể thiếu
Nhầm giúp người dùng di động có nhu cầu học từ vựng tiếng Anh ngay trên thiết bị Android của mình, đề tài này được đưa ra để giải quyết những vấn đề sau:
Tận dụng tính tiện lợi của các thiết bị di động Android trong việc phục vụ nhu cầu học tập
Cung cấp cho người dùng một phương pháp học từ vựng mới vừa mang tính học tập vừa mang tính giải trí,thư giãn
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Các ứng dụng phục vụ cho nhu cầu học tập từ lâu đã được phát triển trên nhiều nền tảng khác nhâu trong đó có Android.Một số ưng dụng tiêu biểu như:Học Từ Tiếng Anh Miễn Phí của LanguageCourse.Net với hơn 1 triệu lượt tải về,Học Tiếng Anh của App free với hơn 100.000 lượt tải về.v.v điều này cho thấy nhu cầu học tiếng Anh của ngừoi dùng Android là rất lớn
Các ứng dụng này cung cấp các giải pháp giúp người dùng học tốt tiếng Anh và đều
là những ứng dụng cho phép download miễn phí
1.3 PHẠM VI ĐỀ TÀI
Đề tài được nghiêng cứu và thực hiện trên nền tảng kiến thức ngôn ngữ lập trình Java dựa trên hệ điều hành Android.Ứng dụng được viết bằng phần mềm Android Studio kèm theo bộ Android SDK và được chạy thử trên một điện thoại Android
Do giới hạn về kiến thức và thời gian nên mục tiêu của đề tài là tạo ra một ứng dụng học từ vựng với phương pháp mới lạ và hiệu quả trên hệ điều hành Android.Ứng dụng sẽ
có khả năng sao lưu và phục hồi CSDL của người dùng thông qua một web service
1.4 PHƯƠNG PHÁP NGHIÊN CỨU
Đề tài được nghiên cứu và thực hiện tuần tự theo các bước sau:
Tìm hiểu hệ điều hành Android
Kiến trúc của hệ điều hành Android
Trang 12CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU HĐH ANDROID
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi tổng công ty Android, với sự hỗ trợ tài chính từ Google
và sau này được chính Google mua lại vào năm 2005 Android ra mắt vào năm 2007 cùng với tuyên bố thành lập liên minh thiết bị cầm tay mở, một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị
di động Chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10 năm 2008
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache Chính
mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, ước tính khoảng 25 tỷ lượt tải đến tháng 7 năm 2014 số ứng dụng đạt 1,3 triệu trong đó có hơn 1 triệu ứng dụng miễ phí và hơn 50 tỉ lượt tải về
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công ty công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu Kết quả là mặc dù được thiết
kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV, máy chơi trò chơi và các thiết bị điện tử khác Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê sử dụng mã nguồn mở để tạo ra những dự án
do cộng đồng quản lý Những dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi hoặc đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác Android chiếm 81% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 1 năm 2014, với tổng cộng hơn 900 triệu thiết bị đã được kích hoạt và 1,5 triệu lượt kích hoạt mỗi ngày Sự thành công của hệ điều hành cũng khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt vào cuộc chiến điện thoại thông minh giữa các công ty công nghệ
Trang 132.2 LỊCH SỬ PHÁT TRIỂN CỦA HĐH ANDROID
Google có thói quen đặt tên các phiên bản Android theo các món đồ ăn với chữ cái bắt đầu bằng đầu được xếp theo ký tự alphabet
Phiên bản đầu tiên của hệ điều hành Android bắt đầu với bản Android beta vào
tháng 11 2007
Android 1.0(23/9/2008)
o Thanh thông báo kéo từ trên xuống
o Chức năng Widget trên màn hình chính
o Tích hợp chặt chẽ với Gmail
o Thiết bị Android đầu tiên được sản xuất là G1 do HTC sản xuất
o Ứng dụng Android Market tải xuống và cập nhật thông qua ứng dụng Market
o Web browser hiển thị, phóng to và đầy đủ trang web HTML và XHTML – nhiều trang hiển thị dưới dạng cửa sổ (thẻ)
o Hỗ trợ máy ảnh – tuy nhiên, phiên bản này thiếu tùy chọn thay đổi độ phân giải trong máy ảnh, cân bằng trắng, chất lượng,
o Thư mục cho phép nhóm một số ứng dụng vào một thư mục trên màn hình chủ
o Truy cập vào máy chủ web email, hỗ trợ POP3, IMAP4, và SMTP
o Gmail đồng bộ với ứng dụng Gmail
o Google Contacts đồng bộ với ứng dụng People
o Google Calendar đồng bộ với ứng dụng Calendar
o Google Maps với Street View để xem bản đồ và hình ảnh vệ tinh, cũng như tìm các doanh nghiệp và hướng dẫn chỉ đường sử dụng GPS
o Google Sync, cho phép đồng bộ hóa dữ liệu trên không của Gmail, People, và Calendar
o Google Search, cho phép người dùng có thể tìm kiếm trên mạng và ứng dụng điện thoại, danh bạ, lịch,
o Google Talk tin nhắn tức thời
o Voice Dialer cho phép quay số và thay thế điện thoại không cần bấm tên hoặc số
o Wallpaper cho phép người dùng thiết lập hình nền hoặc hình nằm sau màn hình chính và widgets
o YouTube video player
o Các ứng dụng khác bao gồm: báo thức, máy tính, quay số (điện thoại), màn hình
Trang 14 Android 1.1 (9/2/2009)
o Cho phép cập nhật cho thiết bị di động qua phương pháp OTA
o Có sẵn chi tiết và đánh giá khi người dùng tìm kiếm doanh nghiệp trên bản đồ
o Màn hình thời gian chờ dài hơn trong cuộc gọi khi sử dụng loa, cộng với khả năng hiển thị/ẩn bàn phím quay số
o Khả năng lưu tập tin đính kèm trong các tin nhắn
o Hỗ trợ thêm vùng lựa chọn trong bố trí hệ thống
Android 1.5 Cupcake (30/4/2009)
o Nâng cấp giao diện người dùng
o Mở rộng khả năng cho widget
o Cải tiến clipboard
o Hỗ trợ bàn phím ảo thứ ba với đoán văn bản và từ điển từ các tùy chỉnh
o Hỗ trợ widget – thu nhỏ ứng dụng có thể nhúng vào một số ứng dụng khác (như màn hình chính) và được cập nhật định kỳ
o Quay video và phát định dạng MPEG-4 và 3GP
o Tự động kết nối và hỗ trợ stereo cho bluetooth (cấu hình A2DP và AVRCP)
o Tính năng sao chép và dán trong trình duyệt web
o Hình ảnh người dùng cho mục ưa thích trong danh bạ
o Ngày/giờ hiện cụ thể cho sự kiện trong nhật ký cuộc gọi, và một chạm truy cập vào danh bạ từ nhật ký cuộc gọi
o Hiệu ứng chuyển đổi màn hình
o Tự động xoay
o Màn hình khỏi động mới
o Khả năng tải video lên Youtube
o Khả năng tải ảnh lên Picasa
o Tính năng Quick Search Box (Universal Search)
o Nâng cấp giao diện cho Android Market
o Giao diện camera mới,tích hợp trình xem ảnh tốt hơn
o Tìm kiếm bằng giọng nói và nhập văn bản tăng cường bao gồm lịch sử đánh dấu, địa chỉ liên lạc, và các trang web
o Khả năng cho phép nhà phát triển bao gồm các nội dung của họ trong kết quả
o Công cụ tổng hợp giọng nói đa ngôn ngữ cho phép một số ứng dụng Android nói chuỗi văn bản
o Dễ dàng tìm kiếm và khả năng xem chụp màn hình ứng dụng trên Android Market
o Hình ảnh, máy ảnh và máy quay tích hợp đầy đủ hơn, với cho phép truy cập máy ảnh nhanh
o Cho phép người dùng có thể chọn nhiều ảnh để xóa
Trang 15o Cập nhật công nghệ hỗ trợ cho CDMA/EVDO, IEEE 802.1X, VPNs, và công cụ text-to-speech
o Hỗ trợ cho màn hình độ phân giải WVGA
o Cải thiện tốc độ trong việc tìm kiếm và ứng dụng máy ảnh
o Mở rộng cử chỉ và thanh công cụ phát triển mới GestureBuilder
Android 2.0 và Android 2.1 Eclair (26/10/2009)
o Hỗ trợ nhiều tài khoản người dùng
o Cải tiến bàn phím ảo
o Giao diện mới đẹp hơn, sang trọng và gọn gàng hơn
o Khả năng chọn ảnh danh bạ và chọn để gọi, SMS, hoặc email
o Khả năng tìm kiếm tất cả tin nhắn SMS và MMS đã lưu trữ, với xóa tin nhắn cũ nhất trong hội thoại, tự động xóa khi đến giới hạn quy định
o Nhiều tính năng mới cho máy ảnh, bao gồm hỗ trợ flash, zoom kỹ thuật số, chế độ cảnh, cân bằng trắng, hiệu ứng màu và canh nét
o Cải thiện tốc độ đánh máy trên bàn phím ảo, với từ điển thông minh hơn học từ việc
sử dụng từ và bao gồm tên liên lạc như đề xuất
o Làm mới trình duyệt UI với thu nhỏ đánh dấu, nhấp 2 lần để zoom và hỗ trợ cho HTML5
o Tăng cường xem lịch trình, hiển thị tình trạng tham dự cho mỗi khách mời, và khả năng mời khách mới đến các sự kiện
o Tối ưu hóa tốc độ phần cứng và cải thiện UI
o Hỗ trợ màn hình và độ phân giải lớn hơn, với tỷ lệ tương phản tốt hơn
o Cải thiện Google Maps 3.1.2
o Lớp MotionEvent tăng cường theo dõi cảm ứng đa điểm
o Bổ sung live wallpapers, cho phép hình động của màn hình chính chuyển động
Trang 16 Android 2.2 Froyo (20/5/2010)
o Thay đổi giao diện màn hình chính
o Trình xem ảnh với khả năng hiển thị ảnh 3D cùng nhiều hiệu ứng chuyển động đẹp mắt
o Trình duyệt web hỗ trợ Flash
o Khả năng di chuyển ứng dụng sang thẻ nhớ
o Tốc độ, bộ nhớ, và tối ưu hóa hiệu suất
o Cải thiện tốc độ ứng dụng bổ sung, thực hiện thông qua JIT compilation
o Tích hợp V8 JavaScript engine của Chrome vào ứng dụng trình duyệt
o Hỗ trợ cho dịch vụ Android Cloud to Device Messaging (C2DM), cho phép thông báo push
o Cải thiện hỗ trợ Microsoft Exchange, bao gồm chính sách bảo mật, tự động phát hiện, đồng bộ lịch và xóa từ xa
o Cải thiện khởi động ứng dụng với phím tắt đến điện thoại và ứng dụng trình duyệt
o Chức năng USB tethering và Wi-Fi hotspot
o Tùy chọn vô hiệu hóa truy cập dữ liệu qua mạng di động
o Cập nhật ứng dụng Market, tính năng tự động cập nhật
o Chuyển đổi nhanh bàn phím đa ngôn ngữ và từ điển
o Hỗ trợ cho Bluetooth-trên xe hơi và dock
o Hỗ trợ password số và chữ
o Hỗ trợ tập tin tải lên trong ứng dụng trình duyệt
o Trình duyệt có thể xem tất cá khung của ảnh động thay vì chỉ khung đầu tiên
o Hỗ trợ cài đặt ứng dụng từ thẻ nhớ mở rộng
o Hỗ trợ Adobe Flash
o Hỗ trợ màn hình PPI cao (lên đến 320 ppi), như màn hình 4" 720p
o Hình ảnh cho phép người dùng xem ngăn sách hình ảnh bằng cách zoom cử chỉ
Android 2.3 Gingerbread (6/12/2010)
o Cung cấp cho lập trình viên quyền truy cập thấp nhất nhờ đó nhiều Trò chơi/ứng dụng native ra đời với tốc độ nhanh hơn,hình ảnh,âm thanh phong phú,chân thực và đẹp hơn
o Cập nhật thiết kế giao diện người dùng, tăng độ đơn giản và tốc độ
o Hỗ trợ cho màn hình có kích thước lớn và độ phân giải (WXGA và cao hơn)
o Hỗ trợ cho thoại internet SIP VoIP
o Nhanh hơn, nhập văn bản trực quan hơn trong bàn phím ảo, cải thiện độ chính xác, nội dung đề xuất tốt hơn và chế độ nhập liệu bằng giọng nói
o Tăng cường tính năng copy/paste, cho phép người dùng chọn từ bằng cách nhấn giữ, sao chép, và dán
o Hỗ trợ cho giao tiếp gần (NFC), cho phép người dùng có thể đọc thẻ NFC nhúng trong một poster, nhãn dán, hoặc quảng cáo
o Hiệu ứng âm thanh mới như tiếng vang, cân bằng, ảo hoá tai nghe, và tăng độ bass
o Quản lý tải xuống mới, cho phép người dùng dễ dàng truy cập vào bất kì tập tin tải xuống nào từ trình duyệt, email, hoặc ứng dụng khác
o Hỗ trợ cho nhiều máy ảnh trên thiết bị, bao gồm máy ảnh trước nếu có
Trang 17o Hỗ trợ cho phát video WebM/VP8, và mã hoá âm thanh AAC
o Cải thiện năng lực quản lý với thêm một vài tính năng quản lý ứng cho phép giữ thiết bị luôn thức trong thời gian dài
o Tăng cường hỗ trợ phát triển mã nguồn gốc
o Âm thanh, đồ hoạ, và đầu vào cải tiến cho nhà phát triển trò chơi
o Đồng thời thu gom rác để tăng hiệu suất
o Hỗ trợ cho các cảm biến nhiều hơn (như con quay và áp kế)
Adnroid 3.x Honeycomb dành riêng cho máy tính bảng (10/5/2011)
o Tối ưu hóa hỗ trợ máy tính bảng với giao diện người dùng ba chiều mới
o Thêm thanh hệ thống, tính năng truy cập nhanh đến thông báo, tình trạng, và nút điều hướng, có sẵn ở dưới cùng của màn hình
o Thêm thanh Action, cho phép truy cập các tùy chọn theo ngữ cảnh, điều hướng, widget, hoặc các loại nội dung ở phía trên cùng của màn hình
o Đa nhiệm đơn giản – khai thác các ứng dụng gần đây trên thanh hệ thống cho phép người dùng thấy những hình ảnh đa nhiệm đang được tiến hành và nhảy nhanh từ một ứng dụng này sang ứng dụng khác
o Thiết kế lại bàn phím, nhập nhanh hơn, hiệu quả và chính xác hơn trong màn hình lớn
o Đơn giản, trực quan hơn giao diện sao chép/dán
o Nhiều tab trình duyệt thay thế bằng cửa sổ trình duyệt, cộng với tự động điền và chế
độ ẩn danh mới cho phép trình duyệt ẩn danh
o Truy cập nhanh vào máy tính, lấy nét, flash, zoom, máy ảnh trước, đếm giờ, và những tính năng khác của máy ảnh
o Khả năng xem album và bộ sưu tập khác trong chế độ đầy màn hình trong hình ảnh, với dễ dàng truy cập vào hình ảnh nhỏ khác
o Danh bạ UI mới và di chuyển nhanh cho phép người dùng tổ chức và định vị danh
bạ
o Email UI mới cho phép xem và tổ chức tin nhắn hiệu quả hơn, cho phép người dùng chọn một hoặc nhiều tin nhắn
o Tăng tốc phần cứng
o Hỗ trợ cho đa nhân xử lý
o Khả năng mã hóa tất cả dữ liệu người dung
o HTTPS stack cải thiện với tên máy chủ chỉ định (SNI)
o Ứng dụng ghi vào dữ liệu thứ cấp (thẻ nhớ trên thiết bị với bộ nhớ lưu trữ nội bộ)
bị vô hiệu hoá bên ngoài thiết kế, ứng dụng thư mục cụ thể, trong khi truy cập vào các lưu trữ chính nội bộ vẫn được cho phép thông qua một ứng dụng cho phép cấp riêng biệt
Trang 18 Android 4.0 Ice Cream Sandwich (16/12/2011)
o Hỗ trợ bộ font roboto tối ưu trên màn hình độ phân giải cao
o Thanh thông báo được làm mới, đẹp và tiện dụng hơn
o Tính năng trượt để xoá thông báo, recent app và các tab của trình duyệt
o Bàn phím được làm mới với tính năng tự động sửa lỗi,việc sao chép, cắt dán văn bản cũng tốt hơn
o Tương thích với smartphone và máy tính bảng
o Trình duyệt web nhanh hơn
o Tối ưu hoá hiệu suất hoạt động
o Kéo dài thời thời lượng pin
Android 4.1 Jelly Bean (9/7/2012)
o Tính năng Google Now
o Project Butter mang lại tốc độ mượt mà chưa từng có
o Khả năng thay đổi kích thước widget
o Thay đổi tính năng hoàn tất tác vụ
o Thanh thông báo mới
o Trình chụp ảnh mới với tính năng chỉnh sửa và chia sẻ ảnh ngay lập tức
o Tính năng Face Unlock bằng cách chớp mắt
o Tính năng trứng phục sinh vui nhộn
o Ứng dụng đọc tin RSS Google Current
o Nhập liệu bằng giọng nói không cần vào mạng
o Hỗ trợ chữ Braille cho người khiếm thị
o Hàng loạt hình nền mới đẹp mắt
o Google Maps bản mới nhất với khả năng lưu bản đồ offline
Android 4.2 Jelly Bean (13/11/2012)
o Widget ngoài lockscreen
o Thanh Quick Setting mới
o Giao diện camera mới
o Bàn phím swipe với khả năng vuốt để tạo văn bản
Android 4.3 Jelly Bean (25/7/2013)
o Hỗ trợ nhiều người dùng trên cùng một thiết bị
o Bluetooth Smart
o Hỗ trợ đồ hoạ OpenGL ES 3.0
o Tính năng quay số và bàn phím biểu tượng Emoji
Android 4.4 Kitkat (10/2013)
o Lệnh gọi nhanh Google Now
o Tối ưu hoá bộ nhớ RAM và nâng cao khả năng chạy đa nhiệm với Project Svelte
o Cho phép ứng dụng chạy toàn màn hình
o Thanh trạng thái và phím cảm ứng trong suốt
o Ứng dụng gọi điện thông minh hơn
o Ứng dụng nhắn tin Google Hangouts
o Hỗ trợ in ấn tốt hơn với Google Cloud Print
o Hỗ trợ đầu phát hồng ngoại
Trang 19o Khả năng quay video màn hình
o Quản lý ứng dụng với Process Stats
o Cho phép tắt hiệu ứng để tăng tốc độ xử lý
o Trình chọn tập tin mới
Android 5.0 Lollipop(15/10/2014):
o Ngôn ngữ thiết kế Material Design
o Kéo hai lần để hiện khu vực Quick Settings
o Đèn flash được tích hợp sẵn
o Tinh chỉnh thông báo của ứng dụng một cách dễ dàng
o Ẩn thông báo nhạy cảm khỏi màn hình khóa
o Tính năng Tap & Go
o Tìm kiếm nhanh trong trình cài đặt
o Khóa một ứng dụng trên màn hình
o Ứng dụng đồng hồ tự đổi màu theo thời gian trong ngày
o Cuộc gọi sẽ không chen ngang vào ứng dụng đang mở
Android 5.1 Lollipop (2/2015):
o Chế độ im lặng (Silent) quay trở lại
o Cải thiện quản lý RAM
o Khắc phục lỗi đóng ứng dụng bất ngờ
o Cải thiện quản lý pin
o Khắc phục lỗi tiêu thụ dung lượng cao bất ngờ khi sử dụng wifi
o Khắc phục vấn đề với các kết nối không dây
o Sửa lỗi OK Google
o Sửa lỗi thông báo
o Một số vấn đề về âm thanh trên vài thiết bị đã được khắc phục
o Một số thay đổi trong cách chọn màu cho Material Design
o Nhiều thay đổi khác sẽ được nói đến trong thời gian tới
Ngoài ra Android còn có 2 phiên bản khác là Android TV cho Smart TV và Android Wear dành cho Smart Watch Hiện tại phiên bản Android mới nhất là Android L đã được phát hành cho các nhà phát triển vào tháng 7/2014 và dự kiến phát hành chính thức vào tháng 10/2014
Trang 202.3 KIẾN TRÚC HĐH ANDROID
2.3.1 Phần cứng
Android không phải là một phần của phần cứng, mà nó là một phần mềm hoàn chỉnh.Android có thể được điều chỉnh để làm việc trên bất kì thiết bị phần cứng nào.Có một số ràng buộc về phần cứng đối với thiết bị có thể chạy được hệ điều hành Android như sau:
Phần Cứng Những yêu cầu tối thiểu
Ổ cứng Mini hoặc Micro SD
Màn hình chính QVGA TFT LCD hoặc lớn hơn,16 bit color hoặc tốt hơn
Navigation Key 2MP CMOS
USB Standard mini-B USB interface
Bluetooth 1.2 hoặc hơn
Bảng 2.3.1.1 Những yêu cầu về phần cứng của hđh Android Những yêu cầu về phần cứng có thể khác nhau tuỳ theo phiên bản Android
2.3.2 Hệ điều hành Android
Có 5 tầng phân biệt trong hệ thống android
Tầng lõi ARM Linux (Linux Kernel):
Là tầng thấp nhất được xây dựng từ hai thành phần chính là Linux Kernel và bộ vi xử
lý ARM (Acorn RISC Machine).Bộ vi xử lý ARM hoạt động với hiệu suất cao nhưng tiêu thụ năng lượng rất ít
Android dựa trên Linux phiên bản 2.6,từ Android 4.0 trở về sau là phiên bản 3.x Linux kernel phiên bản 2.6 là phiên bản có tính ổn định cao.Sự kết hợp giữa hai thành phần này nhằm giải quyết phần nào giới hạn nguồn năng lượng sử dụng và tối ưu việc
sử dụng các tài nguyên trong thiết bị
Nền tảng Linux Kernel 2.6 chứa những drivers để điều khiển phần cững như keypad, wifi, camera, audio, màn hình,v.v Đây là trung tâm điều khiển của Android.Các giải thuật quản lý tài nguyên, chuyển đổi qua lại giữa các tác vụ phân chia quyền, giải quyết tranh chấp được cài đặt trong kernel.Tuy nhiên lập trình viên sẽ không lập trình trực tiếp trên tầng này
Tầng thư viện (Libraries):
Chứa mã nguồn mở cấp thấp cho những chức năng cơ bản như: mã hoá và giải mã âm thanh, hình ảnh kĩ thuật số,trình bày các giao diện đồ hoạ, bảo mật lưu lượng TCP/IP cũng như các thành phần cho trình duyệt web, hỗ trợ truy xuất cơ sở dữ liệu (SQLite),v.v
Đây là tầng chứa các thư viện C/C++ được gọi thông qua giao diện java.Tầng này gồm thư viện surface (tạo các cửa sổ giao diện),OpenGL (hỗ trợ xây dựng ứng dụng 2D và 3D),Media Framework (hỗ trợ xây dựng các ứng dụng về âm thanh hình ảnh),SSL (cung cấp các chức năng bảo mật thiết bị), SQLite (cơ sở dữ liệu mã nguồn mở được nhúng trong thiết bị), webkit (hỗ trợ hiển thị nội dung website),v.v
Trang 21 Tầng máy ảo Android (Android Runtime):
Đây là một phần mềm dùng để chạy các ứng dụng trên thiết bị Android, bao gồm một tập các thư viện lõi(core libraries) cung cấp hầu hết các chức năng trong thư viện lõi của ngôn ngữ lập trình Java và máy ảo Dalvik.Mỗi ứng dụng android sẽ chạy trên một tiến trình dành riêng cho nó,với một máy ảo Dalvik riêng cũng được thiết lập dành riêng cho mỗi ứng dụng Dalvik được viết để một thiết bị có thể chạy nhiều máy ảo cùng lúc hiệu quả.Máy ảo Dalvik thực thi các tập tin dex,là loại tập tin được đóng gói từ các file class giúp tối ưu bộ nhớ, quản lý tiến trình và quản lý bộ nhớ hiệu quả, máy ảo này cũng sử dụng các chức năng do Linux kernel cung cấp
Tầng khung ứng dụng Android (Android Application Framework):
Tầng này định nghĩa Android API, cung cấp bộ công cụ ở mức cao để các lập trình viên nhanh chóng xây dựng ứng dụng
Chứa các thư viện java hỗ trợ người dùng giao tiếp với tầng thư viện và tầng máy ảo.Một phần của tầng này do Google cung cấp sẵn,một phần do lập trình viên tạo ra.Trong tầng này thì thành phần quan trọng nhất là Activity Manager vì nó quản lý chu
kì sống của Activity
Activity Manager:quản lý chu trình sống của các Activity trong ứng dụng
Android
Telephony Manager:cung cấp thu viện để truy xuất đến các dịch vụ điện thoại
cũng như là thông tin thuê bao
View System:xử lý giao diện trong ứng dụng android
Location Manager:cung cấp thư viện hỗ trợ người dùng định vị vị trí của thiết
bị
Tầng ứng dụng lõi Android (Applications):
Đây là tầng cao nhất và ứng dụng của lập trình viên sẽ nằm ở tần này Google đã viết sẵn một số thư viện tiện ích trong tầng này để việc truy xuất thông tin ở các tầng dưới thuận tiện,linh hoạt và hiệu quả nhất
Bao gồm các những ứng dụng cơ bản hỗ trợ thêm cho người lập trình như:Webkit browser, Google Calendar, Gmail, Map Application, SMS Messenger, Email Client ,v.v
Trang 22Hình 2.3.2.1 Các Tầng Của Hệ Điều Hành Android
2.3.3 Kết nối mạng
Android hỗ trợ giao tiếp không dây bằng cách sử dụng:
Mạng wifi 802.11:Là hệ thống mạng không dây sử dụng sóng vô tuyến giống như điện thoại di động,truyền hình và radio với băng tầng 2,4 3,6 và 5 Ghz
Công nghệ GSM (The Global System Mobile Communication): là hệ thống mạng
tế bào sử dụng kỹ thuật TDMA (Time Division Multi Access) – đa truy cập theo thời gian Mỗi cuộc gọi được phát triển trên tầng số chung nhưng theo các khoảng thời gian khác nhau Khoảng thời gian này đủ bé để người sử dụng không nhận thấy sự rời rạc khi nghe người khác nói.Công nghệ dành cho mạng 2G và hoạt động ở băng tầng 900MHz hay 1800MHz
APPLICATIONS
APPLICATION FRAMEWORK
Activity
Manager
Windows Manager
Content Providers
View System Telephony
Manager
Package Manager
Resoure Manager Location Manager Notification Manager
LIBRARIES
Surface
Manager
Media Framework
SQLite
ANDROID RUNTIME
Core Libraries
Dalvik Virtual Machine
Driver
Management
Trang 23 EDGE (Enhanced Data Ratesn for GSM Evolution): Còn được gọi là EGPGS,là một công nghệ được phát triển từ GPRS,cho phếp truyền dữ liệu với tốc độ 384 kbit/s cho người dùng cố định hoặc di chuyển chậm và 144 kbit/s cho người dùng di chuyển với tốc độ cao EDGE được biết đến như một công nghệ 2,75G
3G:là công nghệ truyền thông thứ ba, cho phép truyền dữ liệu thoại và dữ liệu ngoài thoại (tải dữ liệu,gửi email,tin nhắn nhanh,hình ảnh).Công nghệ này tăng băng thông
và hỗ trợ đa dạng ứng dụng hơn trong đó có dịch vụ video call
4G LTE:Là công nghệ thứ tư của công nghệ không dây.4G được thiết kế nhằm tăng tốc độ cho người dùng điện thoại thông minh và máy tính bảng với 100Mbps dowload
và 50Mbps upload Hầu hết điện thoại thông minh hỗ trợ 4G đều chạy hệ điều hành Android
2.3.4 Bảo mật
Android là một hệ thống đa tiến trình, trong đó mỗi ứng dụng chạy riêng biệt trong một tiến trình riêng biệt dành cho nó Bảo mật giữa ứng dụng và hệ thống được thực thi ở mức tiến trình thông qua những tiêu chuẩn của Linux Mỗi ứng dụng trong Android được gán một ID và mặc định khi ứng dụng chạy sẽ không có bất cứ tiến trình hay hệ thống khác can thiệp vào nó
Việc cho phép trao đổi thông tin và tương tác qua lại giữa các tiến trình phải được định nghĩa trước trong ứng dụng đó để khi cài đặt, hệ điều hành sẽ nhận diện được thông tin này
Trang 24Hình 2.3.4.1 Sơ đồ hoạt động trong thiết bị Android
2.3.5 Các ứng dụng có sẵn trên nền tảng Android:
Một chương trình kiểm tra email tương thích với Gmail
Chương trình quản lý tin nhắn SMS
Phiên bản thu nhỏ của Google Map dành cho điện thoại
Trình duyệt web sử dụng webkit
Chương trình tán gẫu (chat)
Trình đa phương tiện (chơi nhạc, video, xem ảnh)
Android Market cho phép người dùng tải và cài đặt ứng dụng từ market
Nền tảng Android
Hệ điều hành Linux
2.6 Bảo Mật
Ngăn xếp mạng
Nhập Xuất
Quản
lý nguồn năng lượng
Bluetooth, Camera, Audio, Telephony, Flash, cảm ứng, v.v
Ứng Dụng Android B
Người dùng Linux B
Máy ảo DALVIK
Ứng Dụng Android C
Người dùng Linux C
Phần cứng vật lý
Trang 252.4 PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN TẢNG ANDROID
2.4.1 Những yêu cầu để phát triển ứng dụng trên nền tảng Android:
Kiến thức lập trình ngôn ngữ Java
Kiến thức về XML
Một máy tính chạy hệ điều hành x86 như Windows, Linux hay MAC có cài đặt môi trường phát triển java (JDK)
Ngoài ra còn cần phải có một thiết bị chạy hệ điều hành Android để chạy thử ứng dụng
2.4.2 Công cụ và môi trường phát triển ứng dụng Android
JDK (Java Development Kit):là môi trường để viết các ứng dụng java
Eclipse: phần mềm miễn phí dùng để viết ứng dụng java
Android SDK (Software Developer Kit): là bộ công cụ dùng để phát triển ứng dụng cho hệ điều hành Android
ADT Plugin (Android Development Tools): là một phần mở rộng của Eclipse chứa những thành phần trong Android SDK
Google còn phát hành một bộ công cụ lập trình Android Studio giúp các lập trình viên
dễ dàng thiết kế và xây dựng ứng dụng
Ngoài ra phiên bản 2015 của Visual Studio cũng hỗ trợ bộ công cụ lập trình Android
2.5 SO SÁNH GIỮA CÁC HỆ ĐIỀU HÀNH DI ĐỘNG
Hiện nay có 3 hệ điều hành di động phổ biến nhất chiếm đến 96,9% là Android, IOS
và Windows Phone.Mỗi hệ điều hành đều có những ưu và nhược điểm khác nhau
Giống nhau:
o Đều là những phần mềm điều hành, quản lý các tài nguyên phần cứng cũng như phần mềm của thiết bị
o Đều là môi trường giao tiếp giữa người dùng và phần cứng của thiết bị
o Đều bị hạn chế về phần cứng của thiết bị như: màn hình, thời lượng pin, vi xử lý,
bộ nhớ,v.v
Trang 26 Khác nhau:
các vấn đề về bảo mật Tuỳ biến màn hình và cập nhật thời gian
thực
Tách rời hệ điều hành và phần cứng
Hệ thống thông báo nhanh Việc cập nhật cho các thiết
bị không đồng đều dẫn đến tình trạng phân mảnh Khả năng đa nhiệm tốt
Chia sẻ mạnh với các thiết bị khác Tích hợp nhiều dịch vụ của Google Tích hợp với mạng xã hội rất tốt Tìm kiếm bằng giọng nói
Phù hợp với nhiều API trên nhiều nền tảng Kho ứng dụng với phong phú
IOS Tích hợp liền mạch phần mềm và phần
cứng
Màn hình chủ khá lỗi thời, không sinh động, lỗi tương tác thời gian thực
Thống nhất về giao diện người dùng Không hỗ trợ Flash Đồng bộ với máy tính Là mã nguồn đóng nên chỉ
cho phép chạy trên các thiết
bị của Apple Tích hợp với mạng xã hội
Phù hơp với nhiều API trên nhiều nền tảng Kho ứng dụng phong phú và có chất lượng Khả năng đa nhiệm rất tốt
Giao diện người dùng kém trực quan
Phù hợp với giao diện đồ hoạ người dùng Tích hợp mạng xã hội
không được tốt Phù hợp với nhiều API trên nhiều nền tảng
Hiệu suất điện năng tốt Khả năng chạy đa nhiệm rất tốt
Bảng 2.5.1 So sánh giữa các HĐH di động
Trang 272.6 CẤU TRÚC CỦA MỘT ỨNG DỤNG ANDROID
2.6.1 Các thành phần của một ứng dụng android
Các thành phần tạo nên ứng dụng Android được chia làm 6 loại bao gồm:
Activity: là nền của 1 ứng dụng Khi khởi động một ứng dụng Android nào đó thì
bao giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác
Service: thành phần chạy ẩn trong Android Service sử dụng để update dữ liệu, đưa
ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy
Content Provider: kho dữ liệu chia sẻ Content Provider được sử dụng để quản lý
và chia sẻ dữ liệu giữa các ứng dụng
Intent: nền tảng để truyền tải các thông báo Intent được sử dụng để gửi các thông
báo đi nhằm khởi tạo một Activity hay Service để thực hiện công việc mong muốn
Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới
Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt
động
Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần
chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest Actitvity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng dụng Android Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng
Activity bao gồm 4 state:
- active (running): Activity đang hiển thị trên màn hình (foreground)
- paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus)
- stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop
- killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu
tiên
Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó
Trang 28Hình 2.6.1 Biểu đồ miêu tả Activity State Vòng đời của Activity:
- Entire lifetime: Từ phương thức onCreate() cho tới onDestroy()
- Visible liftetime: Từ phương thức onVisible() cho tới onInvisible()
- Foreground lifetime: Từ phương thức onBegin() cho tới onPause()
Khi xây dựng Actitvity cho ứng dụng cần phải viết lại phương thức onCreate( ) để thực hiện quá trình khởi tạo Các phương thức khác có cần viết lại hay không tùy vào yêu cầu lập trình
Android có cơ chế quản lý các process theo chế độ ưu tiên Các process có priority thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài nguyên