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,
Trang 1TRƯỜ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
Trang 2LỜ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
Trang 3LỜ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
Trang 4MỤ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
Trang 51.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
Trang 6KẾT LUẬN 39 TÀI LIỆU THAM KHẢO 40 PHỤ LỤC 41
Trang 7DANH 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
Markup Language)
Siêu ngôn ngữ có khả năng sinh ngôn ngữ khác
W3C( World Wide Web
Consortium)
Tổ chức độc lập định ra tiêu chuẩn cho trình duyệt Web, máy chủ và ngôn ngữ
Trang 8DANH 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
Trang 9Hì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
Trang 10hệ đ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
Trang 112
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
Trang 123
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:
Trang 134
- 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
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
Trang 145
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
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
Trang 156
- 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
Trang 167
- 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
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
Trang 178
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:
Trang 189
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
Trang 1910
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
- 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 ô
Trang 20Android 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
Trang 2112
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
Trang 2213
- 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
Trang 2314
- 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
Trang 24có 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
Trang 25Ứ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
Hình 2.1 Biểu đồ phân cấp chức năng
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
Ứng dụng
câu hỏi
Hướng dẫn thi thực hành
Thông tin
về ứng dụng
Làm bài
Kết quả
Trang 2617
Người dùng trả lời lần lượt từng câu hỏi một bằng hình thức thức tick chọn vào đáp án, có thể next để bỏ qua câu hỏi
Xem được đáp áp trả lời đúng nếu chưa tìm được câu trả lời cho câu hỏi
ôn tập khái niệm đó
Thống kê các câu trả lời đúng/ sai sau mỗi lượt trả lời
Hình 2.3 Sơ đồ chức năng ôn thi mức 1
Trang 2718
Chức năng 2: Đối chiếu
Hình 2.5 Sơ đồ chức năng đối chiếu mức 2
Chức năng 3: Đưa ra câu hỏi
Hình 2.6 Sơ đồ chức năng đưa ra câu hỏi mức 2 2.3.3 Chức năng Thi thử
Chức năng này cung cấp cho người dùng thi thử 1 trong 10 bộ đề (từ bộ
đề 1 đến bộ đề 10) 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
Người dùng trả lời lần lượt từng câu hỏi một bằng hình thức tick chọn vào đáp án, có thể next để bỏ qua câu hỏi
Xem được đáp áp trả lời đúng nếu chưa tìm được câu trả lời cho câu hỏi
ôn tập khái niệm đó
Thống kê các câu trả lời đúng/ sai sau mỗi lượt trả lời và thông báo kết quả rằng thí sinh có đạt điểm để qua vòng thi lý thuyết hay không