TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN
======
KHÚC MINH PHƯƠNG
ỨNG DỤNG THI THỬ LÝ THUYẾT
A2 TRÊN ANDROID
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Sư phạm Tin học
Người hướng dẫn khoa học
PGS.TS. TRỊNH ĐÌNH THẮNG
HÀ NỘI - 2017
LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn sâu sắc tới PGS.TS.Trịnh Đình Thắng đã tận
tình chỉ bảo và giúp đỡ em trong suốt quá trình nghiên cứu và thực hiện khóa
luận tốt nghiệp.
Em xin gửi lời cảm ơn đến quý thầy cô khoa Công nghệ thông tin trường
Đai học sư phạm Hà Nội 2 đã tạo điều kiện, quan tâm, giúp đỡ em trong thời
gian hoàn thiện đề tài.
Đây là lần đầu tiên em quen với công việc nghiên cứu, nội dung của cuốn
khóa luận này không tránh khỏi những thiếu sót. Em rất mong nhận được sự
đóng góp quý báu của các thầy giáo, cô giáo và các bạn sinh viên.
Sinh viên thực hiện
Khúc Minh Phương
LỜI CAM ĐOAN
Em xin cam đoan đề tài: “Ứng dụng thi thử lý thuyết xe máy trên
Android” là kết quả mà em đã trực tiếp nghiên cứu. Trong quá trình nghiên cứu
em đã sử dụng tài liệu của một số tác giả. Tuy nhiên đó chỉ là cơ sở để em rút ra
được những vấn đề cần tìm hiểu ở đề tài của mình. Đây là kết quả của cá nhân
em, hoàn toàn không trùng với kết quả của các tác giả khác.
Nếu sai em xin hoàn toàn chịu trách nhiệm.
Sinh viên
Khúc Minh Phương
MỤC LỤC
LỜI CẢM ƠN
LỜI CAM ĐOAN
MỤC LỤC
DANH MỤC CÁC TỪ TIẾNG ANH, TỪ VIẾT TẮT
DANH MỤC HÌNH VẼ
MỞ ĐẦU .............................................................................................................. 1
CHƯƠNG I: CƠ SỞ LÝ THUYẾT ................................................................... 3
1.1. Một số hệ điều hành trên điện thoại ....................................................... 3
1.1.1. Hệ điều hành Android ....................................................................... 3
1.1.2. Hệ điều hành IOS............................................................................... 4
1.1.3. Hệ điều hành Windows Phone .......................................................... 5
1.2. Kiến trúc của Android ............................................................................. 6
1.2.1. Applications ........................................................................................ 6
1.2.2. Application framework ..................................................................... 6
1.2.3. Library ................................................................................................ 6
1.2.4. Android Runtime ............................................................................... 7
1.2.5. Linux kernel ....................................................................................... 7
1.3. Android emulator..................................................................................... 7
1.4. Các thành phần cơ bản trong một ứng dụng Android ......................... 8
1.4.1. Activity ................................................................................................ 8
1.4.3. Service ................................................................................................. 9
1.4.4. Content provider và uri .................................................................... 9
1.4.5. View ................................................................................................... 10
1.4.6. Lưu trữ dữ liệu ................................................................................. 11
1.5. XML ......................................................................................................... 11
1.5.1. Tổng quan về XML ......................................................................... 11
1.5.2. Cấu trúc tài liệu XML ..................................................................... 13
1.6. RSS ........................................................................................................... 14
1.7. Các lớp, giao diện phân tích XML trong Android .............................. 14
CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN ............................. 15
2.1. Nhu cầu thực tế ....................................................................................... 15
2.2. Nội dung bài toán.................................................................................... 15
2.3. Thiết kế hệ thống .................................................................................... 16
2.3.1. Giới thiệu .......................................................................................... 16
2.3.2. Chức năng Ôn thi............................................................................. 16
2.3.4. Chức năng Tìm kiếm câu hỏi.......................................................... 20
2.3.5. Chức năng hướng dẫn thi thực hành ............................................. 22
2.3.6. Thông tin về ứng dụng .................................................................... 22
CHƯƠNG III: CHƯƠNG TRÌNH ỨNG DỤNG TRÊN HỆ ĐIỀU HÀNH
ANDROID .......................................................................................................... 23
3.1. Giới thiệu về các giao diện của chương trình ...................................... 23
3.1.1. Giao diện danh mục hệ thống ......................................................... 23
3.1.2. Giao diện chức năng ôn thi ............................................................. 24
3.1.3. Giao diện chức năng thi thử ........................................................... 30
3.1.4. Giao diện chức năng tìm kiếm câu hỏi .......................................... 35
3.1.5. Giao diện chức năng hướng dẫn thi thực hành ............................ 36
3.1.6. Giao diện chức năng thông tin ứng dụng ...................................... 38
KẾT LUẬN ........................................................................................................ 39
TÀI LIỆU THAM KHẢO ................................................................................ 40
PHỤ LỤC ........................................................................................................... 41
DANH MỤC CÁC TỪ TIẾNG ANH, TỪ VIẾT TẮT
Trong khóa luận tốt nghiệp này dùng các từ tiếng anh và các chữ cái viết tắt sau:
Từ Tiếng Anh, từ viết tắt
Ý nghĩa
Open Handset Alliance
Liên minh Thiết bị Cầm tay Mã Nguồn
mở
SGML (Standard Generalized
Siêu ngôn ngữ có khả năng sinh ngôn ngữ
Markup Language)
khác
ISO
International Organization for Standards
W3C( World Wide Web
Tổ chức độc lập định ra tiêu chuẩn cho
Consortium)
trình duyệt Web, máy chủ và ngôn ngữ
TEI
Text Encoding Initiative
DTD
Document Type Definition
XML4J
XML for Java
JAXP
Java API for XML Processing
SAX
Simple API for XML
DOM
Document Object Model
DANH MỤC HÌNH VẼ
Hình 1.1: Cấu trúc stack hệ thống Android.......................................................... 6
Hình 1.2: Vòng đời của một Activity .................................................................... 9
Hình 2.1. Biểu đồ phân cấp chức năng ............................................................... 16
Hình 2.2. Biểu đồ ngữ cảnh của ứng dụng .......................................................... 16
Hình 2.3. Sơ đồ chức năng ôn thi mức 1............................................................. 17
Hình 2.4. Sơ đồ chức năng chọn đáp án mức 2 .................................................. 17
Hình 2.5. Sơ đồ chức năng đối chiếu mức 2 ....................................................... 18
Hình 2.6. Sơ đồ chức năng đưa ra câu hỏi mức 2 ............................................... 18
Hình 2.7. Sơ đồ chức năng thi thử mức 1 ........................................................... 19
Hình 2.8. Sơ đồ chức năng chọn đáp án mức 2 .................................................. 19
Hình 2.9. Sơ đồ chức năng đối chiếu mức 2 ....................................................... 20
Hình 2.10. Sơ đồ chức năng chọn câu hỏi mức 2 ............................................... 20
Hình 2.11. Sơ đồ chức năng thống kê mức 2 ...................................................... 20
Hình 2.12. Sơ đồ chức năng tìm kiếm câu hỏi mức 1 ......................................... 21
Hình 2.13. Sơ đồ chức năng nhập đối tượng mức 2 ........................................... 21
Hình 2.14. Sơ đồ chức năng chọn câu hỏi mức 2 ............................................... 22
Hình 2.15. Sơ đồ chức năng hướng dẫn thi thực hành mức 1............................. 22
Hình 2.16. Sơ đồ chức năng thông tin về ứng dụng mức 1 ................................ 22
Hình 3.1. Giao diện màn hình ứng dụng ............................................................. 23
Hình 3.2. Giao diện danh mục hệ thống ............................................................. 24
Hình 3.3. Giao diện chức năng ôn thi ................................................................. 25
Hình 3.4. Câu hỏi khái niệm ............................................................................... 26
Hình 3.5. Câu hỏi quy tắc.................................................................................... 27
Hình 3.6. Câu hỏi tốc độ ..................................................................................... 28
Hình 3.7. Câu hỏi biển báo.................................................................................. 29
Hình 3.8. Câu hỏi sa hình .................................................................................... 30
Hình 3.9. Giao diện chức năng thi thử ................................................................ 31
Hình 3.10. Các câu hỏi thi thử ............................................................................ 32
Hình 3.11. Hết giờ làm bài thi thử ...................................................................... 33
Hình 3.12. Thoát bài thi thử ................................................................................ 34
Hình 3.13. Kết quả bài thi thử ............................................................................. 35
Hình 3.14. Giao diện chức năng tìm kiếm câu hỏi ............................................. 36
Hình 3.15. Giao diện chức năng hướng dẫn thi thực hành ................................. 37
Hình 3.16. Giao diện chức năng thông tin ứng dụng .......................................... 38
MỞ ĐẦU
1. Lý do chọn đề tài
Chúng ta đang sống trong thời đại của công nghệ thông tin, cùng với sự ra
đời của hệ thống điện thoại, máy tính bảng. Chúng đáp ứng nhu cầu trao đổi
thông tin, liên lạc, giải trí của người sử dụng. Trong đó hệ điều hành Android là
hệ điều hành trên điện thoại di động cho phép phát triển và tạo ra các ứng dụng
di động hấp dẫn. Android cung cấp truy cập đến một loạt các thư viện công cụ
hữu ích và có thể được sử dụng để xây dựng các ứng dụng phong phú. Em chọn
đề tài: “Ứng dụng thi thử lý thuyết xe máy trên Android” cho khóa luận của
mình nhằm mục đích tìm hiểu về hệ điều hành Android và cung cấp cho người
dùng một ứng dụng tiện ích, dễ dàng sử dụng.
2. Mục đích nghiên cứu
Tìm hiểu khái quát về hệ điều hành Android, sau đó xây dựng ứng dụng
thi thử lý thuyết xe máy trên nền tảng Android: gồm các bộ đề, sau khi thi thử lý
thuyết sẽ xem được kết quả, thống kê số câu trả lời đúng/sai và xem được đáp án
trả lời đúng. Ứng dụng cung cấp được các nội dung ôn tập và thi bằng các bài
học, khái niệm, hình ảnh minh họa,... Cung cấp chức năng tìm kiếm câu hỏi,
hướng dẫn thi thực hành.
3. Nhiệm vụ nghiên cứu
Nghiên cứu lý thuyết về hệ điều hành Android và xây dựng được ứng
dụng thi thử lý thuyết xe máy trên Android.
4. Đối tượng và phạm vi nghiên cứu
-
Đối tượng nghiên cứu: hệ điều hành Android và người muốn thi thử lý
thuyết xe máy trên nền tảng Mobile.
-
Phạm vi nghiên cứu: phần mềm chạy trên hệ điều hành Android.
5. Ý nghĩa khoa học và thực tiễn của đề tài
-
Ý nghĩa khoa học: Ứng dụng thi thử lý thuyết xe máy trên Android như
một cuốn cẩm nang luyện thi ngay trên điện thoại di động. Phát triễn ứng dụng
1
giúp em học thêm được công nghệ mới, tạo nên ứng dụng mang tính chất thực
tiễn, tạo tiền đề để phát triễn, hoàn thiện ứng dụng vào thực tế.
-
Ý nghĩa thực tiễn: Ứng dụng thi thử lý thuyết xe máy trên Android xây
dựng thành công sẽ giúp cho người dùng có một ứng dụng tiện lợi, dễ dàng sử
dụng để thi thử lý thuyết xe máy.
6. Phương pháp nghiên cứu
-
Phương pháp nghiên cứu lý luận: Nghiên cứu qua việc đọc sách báo và
các tài liệu liên quan đến hệ điều hành Android, ứng dụng thi thử lý thuyết xe
máy nhằm xây dựng cơ sở lý thuyết của đề tài và các biện pháp cần thiết để giải
quyết các vấn đề của đề tài.
-
Phương pháp lấy ý kiến chuyên gia: tham khảo ý kiến của chuyên gia về
hệ điều hành Android và ứng dựng thi thử lý thuyết xe máy trên Android để thiết
kế ứng dụng phù hợp với yêu cầu thực tiễn.
7. Cấu trúc khóa luận
Ngoài phần mở đầu, đánh giá và kết luận, nội dụng khóa luận gồm:
Chương I: Cở sơ lý thuyết
Chương II: Phân tích và thiết kế bài toán
Chương III: Chương trình ứng dụng trên hệ điều hành Android
2
CHƯƠNG I: CƠ SỞ LÝ THUYẾT
Trong chương này em đã sử dụng các tài liệu tham khảo [2], [3], [4], [5],
[6], [7].
1.1. Một số hệ điều hành trên điện thoại
1.1.1. Hệ điều hành Android
Android được thành lập vào năm 2003 bởi Andy Rubin, Rick Miner, Nick
Sears và Chris White. Vào năm 2005 công ty này được Google mua lại. Vào
cuối năm 2007, Android thuộc về Open Handset Alliance gồm các công ty
viễn thông, phần mềm và phần cứng: Texas Intruments, Google, HTC, Intel,
LG, Marvell Technology Group, Motorala, Nvidia, Qualcomm, Samsung
Electronics,
Sprint
Nextel,
T-Mobile,
ARM
Holdings,
Atheros
Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony
Ericsson, Toshiba Corp,… Mục tiêu là đổi mới để đáp ứng nhu cầu người
dùng và tạo ra một chuẩn mở cho điện thoại trong tương lai.
Vào năm 2008, Android 1.0 – phiên bản thương mại đầu tiên được phát
hành với nhiều tính năng vẫn chưa lỗi thời được kể đến như: trình duyệt web,
Google Maps và đồng bộ các ứng dụng Gmail.
Những bức tượng mô phỏng món ăn tráng miệng dựng trên bãi cỏ ở trụ sở
chính của Google tại Mountain View, California đã tạo nguồn cảm hứng cho
Android 1.5 Cupcake ra đời vào tháng 4 năm 2009. Tích hợp camera cho phép
người dùng chụp và xem ảnh một cách nhanh chóng, đơn giản được tìm thấy ở
Android 1.6 Donut (15/09/2009). Càng về sau càng có nhiều phiên bản Android
được cải tiến để phù hợp với nhu cầu người dùng; có thể nhắc tới như: Android
2.0 Éclair (26/2010), Android 2.2 Froyo (05/2010), Android 2.3 Gingerbread
(12/2010), Android 3.0 Honeycomb (02/2011), Android 4.0 Ice Cream
Sandwich (10/2011), Android 4.1 Jelly Bean (07/2012), Android 4.4 KitKat
(10/2013), Android Wear (03/2014), Android 5.0 Lollipop (06/2014).
Các tính năng nổi bật của Android:
3
-
Tích hợp dịch vụ của Google một cách hoàn hảo: Những ứng dụng của
Google như gmail, google maps, google voice, gtalk đều là những thành phần
mặc định của Android nên trải nghiệm chúng sẽ có cảm giác tuyệt nhất.
-
Flash: với flash trên Android, bạn có thể trải nghiệm đầy đủ nội dung
flash trên di động từ xem phim ảnh cho đến chơi game flash.
-
ROM đa dạng, phong phú
-
Cài đặt ứng dụng không cần dây nối
-
Pin và bộ nhớ có thể thay thế
-
Widget
-
Nhiều Launcher thay thế
-
Tự động hóa
-
Bàn phím thay thế
1.1.2. Hệ điều hành IOS
IOS là hệ điều hành trên điện thoại di động được phát triển bởi Apple.
Ban đầu IOS chỉ dùng cho iPhone, nhưng sau đó được mở rộng để hỗ trợ các
thiết bị khác như iPod Touch (tháng 9 năm 2007), iPad (tháng 1 năm 2010), iPad
Mini (tháng 11 năm 2012). 31/5/2011, App Store của Apple chứa khoảng
500000 ứng dụng và được tải về tổng cộng khoảng 15 tỷ lần. Giao diện của
người dùng IOS dựa trên cơ sở thao tác bằng tay. Các phiên bản hệ điều hành
trên di động: iPhone OS 1 (2007), iPhone OS 2 (2008), iPhone OS 3 (2009),
iPhone OS 4 (2010), iPhone OS 5 (2011), iPhone OS 6 (2012), iPhone OS 7
(2013), iPhone OS 8 (2014).
Phiên bản năm 2007 có chức năng tương đối hạn chế: không hỗ trợ 3G,
chưa có chức năng copy, paste,... Phiên bản năm 2008 nổi bật với cửa hàng ứng
dụng Apple Store và một bộ phát triển phần mềm mở ra cánh cửa cho các nhà
phát triển ứng dụng bên thứ 3; hỗ trợ đầy đủ Microsoft Exchange, Google Street
View. Phiên bản năm 2009 bổ sung các tính năng như copy, paste, dịch vụ đa
phương tiện. Phiên bản năm 2010 với nhiều tính năng nổi bật như chạy đa
nhiệm, ứng dụng định vị vị trí, iBook, cải thiện camera trùng ảnh. Phiên bản
4
năm 2011 có chứa hơn 200 tính năng mới. Phiên bản 2012 bổ sung các tính năng
như các lời khuyến nghị nhà hàng, ra lệnh twitter hay cập nhật trạng thái
facebook và đánh giá film. Các tính năng nổi bật của iOS 7 gồm ứng dụng nhạc,
AriPlay, khóa, camera, bluetooth, chế độ đừng làm phiền. Tính năng mới khác
cảu iOS 8 gồm tin nhắn âm thanh và video bằng cách giữ nút ghi âm trong khi
bên trong các ứng dụng tin nhắn, tính năng gõ văn bản QuickType và dịch vụ
lưu trữ mới iCloud Drive.
1.1.3. Hệ điều hành Windows Phone
Windown Phone là hệ điều hành của Microsoft dành cho smartphone;
được bán vào tháng 10 năm 2010 và đầu năm 2011 tại châu Á. Tên mã của dự
án Windown Phone là “Photon”. Microsoft chính thức thông báo tên gọi phiên
bản đầu tiên là Windown Phone 7 vào 22/4/2010. Windows Phone 7 được ra
mắt ở Mobile World Congress tại Barcelona, Tây Ban Nha (15/2/2010) và chính
thức bán ra tại Mỹ vào 8/11/2010. Microsoft giới thiệu Windows Phone 8 vào
ngày 20/6/2012 và bắt đầu bán phiên bản này vào ngày 29/10/2012. Windows
Phone 8.1 được công bố chính thức vào ngày 2/4/2014 và bản Preview dành cho
nhà phát triển được phát hành vào 10/4/2014. Một sự kiện đánh dấu một mốc
quan trọng trong cuộc chiến với Android và IOS là Windows Phone công bố trở
thành đối tác của Nokia vào 11/2/2011 đồng nghĩa với việc Windows Phone trở
thành hệ điều hành chính của Nokia.
Các tính năng nổi bật của Windows Phone 8.1 như:
-
Hệ thống thông báo Action Center: với tính năng này, người dùng có thể
kiểm soát tốt những thông báo hệ thống, điều chỉnh độ sáng màn hình.
-
Trợ lí ảo Cortana
-
Màn hình Start tùy biến hơn
-
Màn hình khóa đa dạng
-
Tùy chỉnh 3 hàng Live Tiles
-
Hỗ trợ nút điều hướng trên màn hình cảm ứng
-
Wordflow: Swype của Windows Phone 8.1
5
-
Trình duyệt IE 11 mạnh mẽ
1.2. Kiến trúc của Android
Sơ đồ dưới đây cho thấy các thành phần của hệ điều hành Android. Mỗi
một phần sẽ được đặc tả một cách chi tiết dưới đây.
Hình 1.1: Cấu trúc stack hệ thống Android
1.2.1. Applications
Các ứng dụng sẽ được cài đặt ở tầng này; một số ứng dụng được tích hợp
sẵn như: home, contact, phone.
1.2.2. Application framework
Các khung ứng dụng cung cấp các lớp sử dụng để tạo ra các ứng dụng
Android. Nó cũng cung cấp một trừu tượng chung chung để truy cập phần cứng
và quản lý các giao diện người dùng và tài nguyên ứng dụng.
1.2.3. Library
Chạy trên đầu trang của Kernel, Android bao gồm nhiều thư viện C/C++
cốt lõi như libc và SSL như:
- Một thư viện phương tiện truyền thông để phát lại âm thanh và video.
6
- Surface Manager: Quản lý việc truy xuất vào hệ thống con hiển thị.
- Thư viện đồ họa bao gồm SGL và OpenGL cho 2D và 3D đồ họa.
- SQLite cho bản hỗ trợ cơ sở dữ liệu.
- SSL và WebKit cho trình duyệt web tích hợp và bảo mật Internet.
1.2.4. Android Runtime
Bao gồm các thư viện lõi và máy ảo Dalvik, thời gian chạy Android là
động cơ quyền hạn các ứng dụng và cùng với các thư viện, tạo cơ sở cho các
khung ứng dụng.
1.2.5. Linux kernel
Đây là nhân của hệ điều hành Android (bao gồm trình điều khiển phần
cứng, quá trình và quản lý bộ nhớ, bảo mật, mạng và quản lý năng lượng) được
xử lý bởi Linux 2.6 Kernel. Kernel hoạt động như một lớp trừu tượng giữa phần
cứng và phần mềm còn lại của hệ thống.
1.3. Android emulator
Trong khi các thử nghiệm tốt nhất của một ứng dụng đang chạy trên các
phần cứng mà nó được thiết kế, giả lập thường làm cho công việc của các nhà
phát triển dễ dàng hơn nhiều. Làm việc trong một môi trường mô phỏng cho
phép biên dịch, chạy và gỡ lỗi chu kỳ lặp đi lặp lại nhanh hơn thường có sẵn
khi thử nghiệm trên một thiết bị phần cứng. Dành thời gian để đồng bộ hoặc sao
chép, một ứng dụng cho một thiết bị thật thường mất nhiều thời gian hơn so với
việc bắt đầu một phiên giả lập. Ngoài ra, nó là dễ dàng hơn để làm sạch hệ
thống tập tin giả lập hơn là thực hiện các hoạt động bảo trì trên cùng một thiết
bị thực. Khi bạn thêm vào khả năng chép mã lệnh to/from các giả lập, nó sẽ trở
thành một lựa chọn đáng để xem xét.
Ngoài việc là một công cụ nhanh hơn là làm việc với một thiết bị thực,
các công cụ giả lập phải xem xét các đặc tính vật lý của thiết bị, chủ yếu là các
kích thước màn hình, các thiết bị đầu vào và kết nối mạng.
7
1.4. Các thành phần cơ bản trong một ứng dụng Android
1.4.1. Activity
Là thành phần quan trọng của bất kỳ một ứng dụng Android nào. Activity
là một thành phần ứng dụng cung cấp giao diện người dùng, tóm lại activity
thực hiện các hành động trên màn hình.
Có 2 phương thức mà gần như mọi lớp con của Activity đều phải thực
hiện:
-
Phương thức: onCreate()
+ Nơi khởi tạo Ativity
+ Ở đây bạn làm tất cả các cài đặt tạo các view, kết nối dữ liệu đến list.
- Phương thức: onPause()
+ Nơi giải quyết sự kiện người dùng rời khỏi Activity.
+ Mọi dữ liệu được người dùng tạo ra tới thời điểm này cần phải được lưu vào
ContentProvider.
Vòng đời của một Activity:
8
Hình 1.2: Vòng đời của một Activity
Một Activity chủ yếu có 3 chu kỳ chính sau:
-
Running: Khi Activity đượ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 được tạm dừng khi mất trọng tâm 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ớ.
-
Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác. Nó vẫn còn trạng
thái và 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.
1.4.2. Intent
Intent được tạo thành từ một số thông tin mô tả hành động hoặc dịch vụ
mong muốn. Phần này xem xét các hành động được yêu cầu, khái quát các dữ
liệu đi kèm với hành động được yêu cầu. Thuộc tính action của một Intent
thường là một động từ, ví dụ: VIEW, PICK, hoặc EDIT. Một số action xây
dựng trong Intent được định nghĩa là các thành viên của lớp Intent. Các nhà
phát triển ứng dụng có thể tạo ra những action mới là tốt. Để xem một mẩu
thông tin, ứng dụng sẽ sử dụng các action Intent sau đây:
android.content.Intent.ACTION_VIEW
1.4.3. Service
Là một thành phần của ứng dụng, thể hiện mong muốn ứng dụng thực
hiện các hành động trong khi không tương tác với người dùng hoặc cung cấp
chức năng cho các ứng dụng khác sử dụng. Mỗi class Server phải chứa thẻ
<service> được khai báo trong file AndroidManifext.xml.
1.4.4. Content provider và uri
Phần lớn các tài nguyên như contact, SMS đều được lưu vào cơ sở dữ liệu
SQLite trong hệ thống Android. Cũng giống như một cơ sở dữ liệu MSSQL, cơ
sở dữ liệu mà Android dùng để sắp xếp thông tin và truy vấn dữ liệu. Không
9
những thế, Android còn cho phép người lập trình có thể dễ dàng truy xuất dữ
liệu bằng API. Đó gọi là Content Provider. Một đối tượng con trỏ được Content
Provider phân phối khi cung cấp một đường dẫn chính xác đến dữ liệu đó sẽ dễ
dàng lấy được bất cứ dữ liệu lưu trữ nào. Đường dẫn này còn được gọi là Uri.
1.4.5. View
View là thành phần cơ bản để xây dựng giao diện người dùng cho một ứng
dụng Android. View là một lớp căn bản của widgets. Lớp con ViewGroup là lớp
căn bản của layouts, có thể coi như một hộp vô hình chứa nhiều Views hay
ViewGroups khác và xác định các thuộc tính layout.
Sử dụng Views:
-
Trong một cửa sổ màn hình, mọi Views đều được sắp xếp theo thứ tự một
cây trong 1 hay nhiều file XML nằm trong res/layout.
-
Khi tạo một cây chứa các views, người lập trình cần xác định: các thuộc
tính, mức độ tập trung.
Một số Views thường dùng:
-
TextView: cho phép hiển thị văn bản, định dạng nội dung bằng thẻ
HTML.
-
ImageView: cho phép hiển thị 1 hình ảnh xác định từ file tài nguyên hay
qua 1 contentProvider.
-
Button: hiển thị 1 nút nhấn.
-
Checkbox: hiển thị 1 nút nhấn với 2 trạng thái khác nhau.
-
KeyboardView: hiển thị bàn phím ảo để nhập liệu.
-
WebView: hiển thị các trạng thái web bằng Webkit.
Một số ViewGroup thường dùng:
-
LinearLayout: các View được xếp theo 1 hàng hay 1 cột duy nhất.
-
AbsoluteLayout: cho phép xác định chính xác vị trí của từng view.
-
TableLayout: sắp xếp các view theo các cột và hàng. Mỗi hàng có thể có
nhiều view mà mỗi view sẽ tạo nên 1 ô.
10
-
RelativeLayout: cho phép xác định vị trí các view theo mối quan hệ giữa
chúng.
-
FrameLayout: cho phép đặt lên đó 1 view duy nhất. View đặt lên
FrameLayout luôn được căn lề trên bên trái.
-
ScrollView: là 1 FrameLayout đặc biệt cho phép trượt 1 danh sách dài
hơn kích thước mà hình.
1.4.6. Lưu trữ dữ liệu
Android có nhiều cách để lưu trữ dữ liệu. Sử dụng hệ thống quyền ưu tiên
là cách đơn giản nhất. Android cho phép các activity và ứng dụng lưu trữ quyền
ưu tiên theo cặp từ khóa và giá trị, nằm giữa các lần gọi một activity. Quyền ưu
tiên có thể dùng cho activity độc lập hay được chia sẻ giữa các activity của một
ứng dụng. Android cung cấp 2 mô hình để truy cập tập tin để lưu trữ dữ liệu:
-
Một cho các tập tin được đóng gói sẵn cho ứng dụng.
-
Một dành cho tập tin được tạo trên thiết bị thực thi ứng dụng đó.
1.5. XML
1.5.1. Tổng quan về XML
Ngôn ngữ định dạng: XML là ngôn ngữ xây dựng cấu trúc tài liệu văn
bản, dựa theo chuẩn SGML. SGML được phát triển cho việc định cấu trúc và
nội dung tài liệu điện tử, do tổ chức ISO chuẩn hóa năm 1986. SGML do IBM
đưa ra, song không thể không kể đến những đóng góp của các công ty khác.
XML được W3C phát triển, nhưng đặc tả XML lại do Netscape, Microsoft và
các thành viên của dự án Text Encoding Initiative (TEI) xây dựng. Tổ chức
W3C XML Special Interest Group có đại diện từ hơn 100 công ty cùng nhiều
chuyên gia được mời khác. Lý do ra đời của XML vì SGML rất rắc rối khó sử
dụng và HTML có nhiều giới hạn nên năm 1996 tổ chức W3C thiết kế XML.
XML version 1.0 được định nghĩa trong hồ sơ February 1998 W3C
Recommendation. Điểm quan trọng của kỹ thuật XML là nó là một sản phẩm
mà trí tuệ của nó thuộc về cả thế giới, là một tiêu chuẩn được mọi người công
nhận vì được soạn ra bởi W3C. Bản thân của XML rất đơn giản, nhưng các công
11
cụ chuẩn được định ra để làm việc với XML như Document Object Model DOM, XPath, XSL,... thì lại rất hữu hiệu, và chính các chuẩn này được phát
triển không ngừng.
Tài liệu XML hợp khuôn dạng: Tài liệu XML được gọi là hợp khuôn
dạng (Well-formed) thì cần phải tuân theo cú pháp thiết lập cho XML bởi tổ
chức W3C. Các quy tắc này được nêu trong đặc tả XML 1.0 (những quy định
các luật về thẻ, phần tử, thuộc tính, giá trị,…). Nói cách khác, tài liệu XML hợp
khuôn dạng phải là tài liệu XML có cấu trúc đúng.
Để hợp khuôn dạng, tài liệu XML phải tuân theo các luật sau:
-
Có một phần tử gốc duy nhất, chứa tất cả phần tử khác.
-
Mỗi thẻ mở phải có một thẻ đóng giống như nó.
-
Mỗi phần tử con nằm trọn trong phần tử cha của nó.
-
Giá trị thuộc tính trong XML phải được đặt giữa một cặp ngoặc kép hay
một cặp ngoặc đơn.
-
Các khai báo phải được đặt tại dòng đầu tiên của tài liệu.
-
Chỉ có một thành phần gốc (root).
Tài liệu XML hợp lệ: Tài liệu XML được gọi là hợp lệ khi nó là tài liệu
được kết hợp với định nghĩa kiểu dữ liệu (DTD – Document Type Definition) và
tuân theo các chuẩn của DTD. Hầu hết các trình duyệt kiểm tra tính hợp khuôn
dạng trước. Tiếp theo một vài trình duyệt có thể kiểm tra thêm tính hợp lệ của
tài liệu XML. Các định nghĩa DTD nhằm xác định cú pháp đúng đắn cho tài
liệu. DTD có thể được chứa trong một tập tin riêng biệt hoặc chứa ngay trong
chính tài liệu, DTD sử dụng phần tử hay thẻ < !DOCTYPE>.
Bộ phân tích XML: Là các gói phần mềm được sử dụng chung như một
phần kèm theo của ứng dụng. XML for Java (XML4J) – phân tích tài liệu XML
được phát triển bởi IBM AlphaWorks - Đây là thư viện nổi tiếng và được dùng
rộng rãi trong hầu hết các ví dụ của W3C.
12
-
Microsoft XML Parser: trình phân tích sử dụng trình duyệt Internet
Explorer cài đặt thông qua kiến trúc COM của hệ điều hành Windows. Nếu
chúng ta sử dụng IE từ version 5.0 trở lên ta đã có sẵn trình phân tích này hoặc
dùng Java Standard Extenstion for XML – Đây là gói thư viện dành cho Java
được xây dựng bởi SUN. Gói này dùng chung với các ứng dụng của Java.
-
Python XML Parser: Trình phân tích tài liệu XML dựa vào ngôn ngữ
Python cho hệ điều hành Linux và Unix. Gói này được dùng chung với các ứng
dụng của Java.
1.5.2. Cấu trúc tài liệu XML
Cấu trúc XML gồm có 02 phần:
-
Khai báo XML, DTD, comment, processing intructions,…
-
Root Element – phần tử gốc : là phần tử quan trọng trong cấu trúc XML.
Khi phân tích nội dung tài liệu XML ta phải bắt đầu từ phần tử gốc, sau đó tiếp
tục lần ra các phần tử khác.
Định nghĩa các thành phần trong cấu trúc XML
Phần khởi đầu của tài liệu XML được viết từ những dòng đầu tiên của tài
liệu XML. Phần mở đầu chứa các khai báo phiên bản sử dụng của XML,
comment, processing intructions, spaces và khai báo kiểu tư liệu DTD.
Một tài liệu XML nên bắt đầu bằng một khai báo, cho biết tài liệu được
viết theo định dạng và đặc tả XML. Khai báo XML phải được đặt ở dòng đầu
tiên của tài liệu. Đây chính là chỉ thị xử lý, chỉ thị xử lý được đặt trong cặp thẻ.
Trong phần tử khai báo chúng ta có thể sử dụng 3 kiểu khai báo thuộc tính:
-
Khai báo phiên bản (version): Khai báo này cho biết phiên bản đặc tả
XML mà tài liệu đang sử dụng.
-
Khai báo mã hóa (encoding): Bộ mã mà chúng ta sử dụng trong tài liệu
XML. Mặc định là UTF-8 hoặc có thể Unicode, UCS-2 hoặc UCS-4… thuộc
tính này là tùy chọn.
13
-
Khai báo thực thể độc lập (standalone): Đặt thuộc tính này là “yes” nếu tài
liệu không tham chiếu đến các thực thể khác bên ngoài (external entity); nếu
không đặt thuộc tính này mặc định là “no”. Thuộc tính này cũng là tùy chọn.
Để tập tin XML trở nên dễ hiểu và dễ chỉnh sửa sau này thì các dòng chú
thích là không thể thiếu, các dòng chú thích đuợc đặt trong cặp thẻ. Chú thích
không được đặt trước các khai báo.
Phần thân của tài liệu XML có không gian tên, các thẻ: thẻ đóng, thẻ mở,
thẻ rỗng; phần tử gốc và các thuộc tính.
1.6. RSS
Để tìm kiếm thông tin một cách nhanh chóng, ngắn gọn và giúp người
dùng dễ dàng sử dụng ta dùng RSS. Nó là một dạng file XML, cho phép người
dùng có thể thấy những tin tức, nội dung hay tóm tắt để sử dụng file hữu ích.
1.7. Các lớp, giao diện phân tích XML trong Android
Một trong các API cho lập trình Java XML là JAXP. Nó cung cấp khả
năng kiểm nghiệm, chứng minh và phân tích các tài liệu XML. Để duyệt XML
có 2 kỹ thuật:
-
SAX (Simple API for XML): quét tài liệu, tốn ít bộ nhớ, chạy nhanh.
-
DOM (Document Object Model): đọc tất cả nội dung tập tin XML vào bộ
nhớ nên tốn bộ nhớ làm chậm chương trình, viết đơn giản hơn SAX.
SAX và DOM có sẵn trên Android. Android được phân tích cú pháp API
thông qua SAX và DOM.
14
CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN
2.1. Nhu cầu thực tế
Ngày nay, xe máy là 1 phương tiện giao thông rất phổ biến. Vì vậy nhu
cầu ôn tập và đăng kí thi giấy phép lái xe của người dân tăng cao; và không phải
lúc nào người dân cũng có thời gian đi đến các trung tâm luyện thi hay ai cũng
có máy tính để sử dụng các phần mềm ôn thi.
Mà hệ điều hành Android trên điện thoại được người dân chọn và sử dụng
là chủ yếu do nó có giá thành rẻ và phù hợp với túi tiền.
Chính vì vậy việc phát triển một ứng dụng thi thử lý thuyết xe máy trên hệ
điều hành Android đang rất cần thiết, giúp người dùng có thể tranh thủ thời gian
rảnh để ôn thi mà đơn giản, không mất quá nhiều thời gian và có thể dùng ở bất
cứ đâu.
Thực tế, để thi giấy phép lái xe người điều khiển phương tiện cần qua 2
phần thi: thi lý thuyết và thi thực hành lái xe. Phần thi lý thuyết: phải trả lời 20
câu hỏi trong thời gian 15 phút. Phần thi thực hành: thực hiện phần thi chạy theo
hình số 8, đi vào đường hẹp số 2, chạy đường quanh co, đi đường gồ ghề.
2.2. Nội dung bài toán
Xây dựng ứng dụng để thi thử lý thuyết và hướng dẫn thi thực hành lấy
bằng xe máy trên hệ điều hành Android. Ứng dụng có 5 chức năng là ôn thi, thi
thử, tìm kiếm câu hỏi, hướng dẫn thi thực hành và thông tin ứng dụng. Chức
năng Ôn thi cung cấp cho người dùng việc học các khái niệm, quy tắc, tốc độ,
văn hóa – đạo đức khi tham gia giao thông, biển báo, sa hình thông qua các bộ
câu hỏi có sẵn. Chức năng Thi thử cung cấp cho người dùng thi thử 1 trong 10
bộ đề thông qua các bộ câu hỏi có sẵn trong một khoảng thời gian nhất định
được đếm ngược đến 0. Chức năng Tìm kiếm câu hỏi cung cấp cho người dùng
tìm kiếm các câu hỏi ôn thi trong các bộ đề, trong các phần ôn tập lý thuyết.
Ứng dụng Hướng dẫn thi thực hành sẽ cung cấp cho người dùng tóm tắt về luật
thi, cách chấm điểm và kinh nghiệm thi. Thông tin về ứng dụng cho biết tên ứng
dụng, tên tác giả và phiên bản ứng dụng.
15
2.3. Thiết kế hệ thống
2.3.1. Giới thiệu
Ứng dụng thi thử lý thuyết xe máy trên Android cung cấp giáo cụ trực
quan tương tác giữ người dùng và phần mềm; giúp người dùng vừa có thể thi
thử lý thuyết xe máy vừa có thể chủ động ôn tập qua các bài học.
Ứng dụng gồm 5 chức năng đó là: Ôn thi, thi thử, tìm kiếm câu hỏi,
hướng dẫn thi thực hành và thông tin về ứng dụng.
Ứng dụng
Ôn thi
Thi thử
Tìm kiếm
Hướng dẫn
Thông tin
câu hỏi
thi thực
về ứng
hành
dụng
Hình 2.1. Biểu đồ phân cấp chức năng
Làm bài
Người dùng
Ứng dụng
Kết quả
Hình 2.2. Biểu đồ ngữ cảnh của ứng dụng
2.3.2. Chức năng Ôn thi
Chức năng này cung cấp cho người dùng việc học các khái niệm, quy tắc,
tốc độ, văn hóa – đạo đức khi tham gia giao thông, biển báo, sa hình thông qua
các bộ câu hỏi có sẵn.
16