Giúp chúng em cóthêm kinh nghiệm, hiểu biết rõ về cách xây dựng một ứng dụng android Hiện nay tiếng Anh được xem là ngôn ngữ quốc tế số một trên thế giới, mọingười đều cần đến tiếng Anh
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT - HÀN
ĐỒ ÁN CHUYÊN NGÀNH
ĐỀ TÀI: Ứng dụng “App ôn thi trắc nghiệm
tiếng anh”
HOÀNG ĐĂNG KHÁNH – 17IT150
Trang 2Đà nẵng, tháng 12 năm 2020
Trang 3ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT - HÀN
ĐỒ ÁN CHUYÊN NGÀNH Ứng dụng “App ôn thi trắc nghiệm tiếng anh”
Đà Nẵng, tháng 12 năm 2020
Trang 4MỞ ĐẦU
2
Theo xu hướng phát triển của xã hội ngày nay, ngành công nghệ thôngtin là một trong những ngành không thể thiếu, mạng lưới thông tin trên thếgiới ngày càng phát triển, mọi người ai cũng muốn lưu trữ thông tin một cáchnhanh nhất và chính xác nhất Dựa vào những nhu cầu thực tiễn đó, vì vậynhóm chúng em xây dựng nên một ứng dụng trả lời câu hỏi trắc nghiệm tiếnganh
Việc ứng dụng công nghệ thông tin vào các xí nghiệp, cơ quan, trườnghọc là một trong những yếu tố rất quan trọng để đưa nước ta sánh vai cùngcác cường quốc năm châu Đất nước ngày càng phát triển cùng với nhiều sựchuyển biến trên thế giới nên tin học với con người là xu thế tất yếu để hộinhập với nền công nghiệp mới Để đảm bảo nguồn thông tin luôn sẵn sàng vàđáp ứng kiệp thời cho nhu cầu truy xuất Vì vậy ta phải lưu lại trực tiếp thôngtin một cách khoa học và thống nhất giúp con người dễ dàng trao đổi truyxuất thông tin
Nhóm chúng em quyết định chọn đồ án
Xây dựng ứng dụng “App ôn thi trắc nghiệm tiếng Anh”
Bởi vì đồ án rất thực tế, phù hợp với tình hình hiện nay Giúp chúng em cóthêm kinh nghiệm, hiểu biết rõ về cách xây dựng một ứng dụng android
Hiện nay tiếng Anh được xem là ngôn ngữ quốc tế số một trên thế giới, mọingười đều cần đến tiếng Anh dù ít hay nhiều, nhưng hầu như chúng ta đaphần đều chưa thật sự am hiểu đến tính quan trọng của tiếng Anh nên trình độcòn chưa tốt Nên em muốn xây dựng 1 app trắc nghiệm tiếng Anh đa nềntảng để mọi người có thể rèn luyện và cải thiện trình độ của mình trên đấy cóthể vào những thời gian rảnh ở bất kì đâu Ứng dụng phù hợp với tất cả mọingười, khi đã quen dần với các câu trả lời level thấp thì mọi người có thể nângcao khả năng của mình qua những level cao hơn Đó là lí do chúng em chọn
đề tài “Câu Hỏi Trắc Nghiệm Tiếng Anh” dành cho Android
- Phục vụ tốt hơn nhu cầu của người sử dụng
- Người dùng chỉ cần các thao tác đơn giản trên điện thoại di động (hoặcwebsite) là có thể trả lời các câu hỏi ôn tập khác nhau với đa dạng đề tài
Trang 5LỜI CẢM ƠN
Để hoàn thành đề tài đồ án và kết thúc học phần, với tình cảm chân thành, tôi xin bày
tỏ lòng biết ơn sâu sắc tới Khoa CNTT và Truyền Thông đã tạo điều kiện cho tôi cómôi trường học tập tốt trong suốt thời gian tôi học tập, nghiên cứu tại trường
Nhóm xin gửi lời cảm ơn tới TS Huỳnh Ngọc Thọ đã giúp đỡ nhóm trong suốt quátrình nghiên cứu và trực tiếp hướng dẫn tôi hoàn thành đề tài đồ án này Đồng thời,nhóm xin bày tỏ lòng cảm ơn tới tới các thầy cô trong Khoa đã giúp đỡ nhiệt tìnhchúng em trong quá trình học các học phần để có đầy đủ kiến thức thực hiện đồ án này.Nhóm chúng em xin chân thành cảm ơn!
Trang 6NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
4
Trang 7MỤC LỤC
Trang
Chương 1 Giới thiệu 9
1.1 Tổng quan 9
1.2 Phương pháp, kết quả 9
1.3 Cấu trúc đồ án 10
Chương 2 Cơ sở lý thuyết 11
2.1 Lịch sử android: 11
2.2 Application framework 12
2.3 Library 12
2.4 ANDROID EMULATOR 13
2.5 Hệ quản trị SQLite 13
2.6 Service 14
Chương 3 Phân tích thiết kế hệ thống 15
3.1 Biểu đồ use case 15
3.2 Đặc tả use case sử dụng 15
3.3 Biểu đồ hoạt động 17
Chương 4 Xây dựng và triển khai chương trình 18
4.1 Các module chính của chương trình 18
4.2 Kết quả 22
Chương 5 KẾT LUẬN 23
5.1 Kết quả đạt được 23
5.2 Hạn chế 23
5.3 Hướng phát triển 23
Trang 8DANH MỤC CÁC BẢNG
Trang
Bảng 1 Làm bài 15
Bảng 2 Xem kết quả 16
Bảng 3 Xem đáp án chính xác 16
Bảng 4 Làm lại bài kiểm tra 16
6
Trang 9DANH MỤC HÌNH
Trang
Hình 1 Biểu đồ Use case 15
Hình 2 Biểu đồ hoạt động làm bài thi 17
Hình 3 Giao diện chính 18
Hình 4 Làm bài kiểm tra 18
Hình 5 Xem điểm 19
Hình 6 Thời gian làm bài 19
Hình 7 Hoàn tất câu trả lời 20
Hình 8 Level 20
Hình 9 Đề tài 21
Hình 10 Resposive 21
Hình 11 Database 22
Trang 10DANH MỤC CỤM TỪ VIẾT TẮT
1 Android Deverloper Tool ADT
3 Interprocess Communication IPC 4
Trang 11Chương 1 Giới thiệu
1.1 Tổng quan
Hiện nay tiếng Anh được xem là ngôn ngữ quốc tế số một trên thế giới, mọi người đều cần đến tiếng Anh dù ít hay nhiều, nhưng hầu như chúng ta đa phần đều chưa thật sự am hiểu đến tính quan trọng của tiếng Anh nên trình độcòn chưa tốt Nên em muốn xây dựng 1 app trắc nghiệm tiếng Anh đa nền tảng để mọi người có thể rèn luyện và cải thiện trình độ của mình trên đấy có thể vào những thời gian rảnh ở bất kì đâu Ứng dụng phù hợp với tất cả mọi người, khi đã quen dần với các câu trả lời level thấp thì mọi người có thể nâng cao khả năng của mình qua những level cao hơn Đó là lí do chúng em chọn đề tài “Câu Hỏi Trắc Nghiệm Tiếng Anh” dành cho Android
Phục vụ tốt hơn nhu cầu của người sử dụng
Khách hàng chỉ cần các thao tác đơn giản trên điện thoại di động là cóthể trả lời các câu hỏi ôn tập của các môn học khác nhau
Vấn đề cần giải quyết: Xác định nhu cầu sử dụng
Xác định công cụ hỗ trợ
Xây dựng ý tưởng giao diện
Đề xuất nội dung thực hiện:
Tìm hiểu cách thức xây dựng một ứng dụng trên android
Xây dựng thành công ứng “Câu Hỏi Trắc Nghiệm Tiếng Anh” trênandroid
Tìm hiểu bộ Android Development Tool (Android Studio)
hệ thống
Sau khi hoàn thành phần ứng dụng chạy trên điện thoại, em sẽnghiên cứu đến việc lấy dữ liệu vừa ghi để lưu vào SevedRecording
Sau đây là danh sách các công nghệ sử dụng để xây dựng ứng dụng:
Android SDK
RecordSevice
RecycleView
Trang 12 Fragment
Java
SQLITE
Kết quả:
Ứng dụng “Câu Hỏi Trắc Nghiệm Tiếng Anh” hoàn thiện
Các câu hỏi gần gũi
Ứng dụng dễ dàng sử dụng
Sau khi hoàn thành bài kiểm tra biết được kết quả đúng hay sai
Giao diện đơn giản, dễ sử dụng
1.3 Cấu trúc đồ án
Chương 2: Cơ sở lí thuyết
Tập trung tìm hiểu các cơ sở lý thuyết liên quan đến đề tài
Tìm hiểu các công cụ hỗ trợ đề tài
Chương 3: Phân tích và thiết kế hệ thống
Giới thiệu ứng dụng
Giới thiệu các chức năng chính của ứng dụng
Phân tích thiết kế hệ thống
Thiết kế cơ sở dữ liệu
Chương 4: Xây dựng và triển khai
Tập trung chủ yếu vào các modul chính của chương trình
Trang 13Chương 2 Cơ sở lý thuyết
2.1 Lịch sử android:
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux
do công ty Android Inc (California, Mỹ) thiết kế Công ty này sau đó được Googlemua lại vào năm 2005 và bắt đầu xây dựng Android Platform Các thành viên chủchốt ở Android Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay MãNguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễnthông và thiết bị cầm tay như: Texas Instruments, Broadcom Corporation, Google,HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm,Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings, AtherosCommunications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson,Toshiba Corp, and Vodafone Group…
Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn chonhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android.Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà khaithác và các lập trình viên thiết bị cầm tay Phiên bản SDK lần đầu tiên phát hành vàotháng 11 năm 2007, hãng TMobile cũng công bố chiếc điện thoại Android đầu tiên
đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android Mộtvài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDKrelease Candidate 1.0 Trong tháng 10 năm 2008, Google được cấp giấy phép mãnguồn mở cho Android Platform Khi Android được phát hành thì một trong số cácmục tiêu trong kiến trúc của nó là cho phép các ứng dụng có thể tương tác được vớinhau và có thể sử dụng lại các thành phần từ những ứng dụng khác Việc tái sử dụngkhông chỉ được áp dụng cho các dịch vụ mà nó còn được áp dụng cho cả các thànhphần dữ liệu và giao diện người dùng Vào cuối năm 2008, Google cho phát hànhmột thiết bị cầm tay được gọi là Android Dev Phone 1 có thể chạy được các ứngdụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại diđộng Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thínghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải kýmột bản hợp đồng nào Vào khoảng cùng thời gian đó thì Google cũng cho pháthành một phiên vản vá lỗi 1.1 của hệ điều hành này Ở cả hai phiên bản 1.0 và 1.1Android chưa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật
lý Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tư năm
2009, cùng với một số tính năng khác Chẳng hạn như nâng cao khả năng ghi âmtruyền thông, vật dụng, và các live folder
Trang 142.2 Application framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhàphát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo Nhà pháttriển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, cácdịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanhtrạng thái, và nhiều, nhiều hơn nữa Nhà phát triển có thể truy cập vào các API cùngmột khuôn khổ được sử dụng bởi các ứng dụng lõi Các kiến trúc ứng dụng đượcthiết kế để đơn giản hóa việc sử dụng lại các thành phần; bất kỳ ứng dụng có thểxuất bản khả năng của mình và ứng dụng nào khác sau đó có thể sử dụng những khảnăng (có thể hạn chế bảo mật được thực thi bởi khuôn khổ) Cơ chế này cho phépcác thành phần tương tự sẽ được thay thế bởi người sử dụng Cơ bản tất cả các ứngdụng là một bộ các dịch vụ và các hệ thống, bao gồm: - Một tập hợp rất nhiều cácView có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng như:gridview, tableview, linearlayout…
Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ cácứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng
đó - Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là
mã nguồn, chẳng hạn như: localized strings, graphics, and layout files - Một
“Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các custom alertstrong status bar Activity Manager được dùng để quản lý chu trình sống của ứng
dụng và điều hướng các activity
2.3 Library
Android bao gồm một tập hợp các thư viên C/C++ được sử dụng bởi nhiềuthành phần khác nhau trong hệ thống Android Điều này được thể hiện thôngqua nền tảng ứng dụng Android Một số các thư viện cơ bản được liệt kê dướiđây:
System C library: a BSD-derived implementation of the standard C
system library (libc), tuned for embedded Linux-based devices
Media Libraries - based on PacketVideo's OpenCORE; the libraries
support playback and recording of many popular audio and videoformats, as well as static image files, including MPEG4, H.264, MP3,AAC, AMR, JPG, and PNG
Surface Manager– Quản lý việc truy xuất vào hệ thống hiển thị
LibWebCore - a modern web browser engine which powers both the
Android browser and an embeddable web view
SGL - the underlying 2D graphics engine
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the
libraries use either hardware 3D acceleration (where available) or theincluded, highly optimized 3D software rasterizer
FreeType - bitmap and vector font rendering
SQLite - a powerful and lightweight relational database engine
available to all applications
12
Trang 152.4 ANDROID EMULATOR
Android SDK và Plugin Eclipse được gọi là một Android Deverloper Tool(ADT) Các Android coder sẽ cần phải sử dụng công cụ IDE (IntegratedDevelopment Enveronment) này để phát triển, debugging và testing cho ứngdụng Tuy nhiên, các coder cũng có thể không cần phải sử dụng IDE mà thayvào đó là sử dụng command line để biên dịch và tất nhiên là vẫn có Emulatornhư thường
Android Emulator được trang bị đầy đủ hầu hết các tính năng của một thiết bịthật Tuy nhiên, một số đã bị giới hạn như là kết nối qua cổng USB, camera
và video, nghe phone, nguồn điện giả lập và bluetooth
Android Emulator thực hiện các công việc thông qua một bộ xử lý mã nguồn
mở, công nghệ này được gọi là QEMU (http://bellard.org/qemu/) được pháttriển bởi Fabrice Bellard
2.5 Hệ quản trị SQLite
SQLite là một hệ quản trị cơ sở dữ liệu quan hệ, khác với các hệ quản trị CSDLkhác nó không cần client–server database engine (một dịch vụ, ứng dụng cài đặtđầy đủ thông qua nó kết nối, tương tác với các CSDL), nó được nhúng vào rấtnhiều chương trình khác nhau, từ destop, mobile đến website Hầu hết ngôn ngữlập trình có các thư viện hỗ trợ kết nối, truy vấn đến SQLitenhư: PHP C, Java, C#, JavaScript Nó được nhúng vào các trình duyệt, vào các
hệ thống nhúng, hệ điều hành như Android, IOS đều đã nhúng mặc định
2011 - Hipp tuyên bố bổ sung giao diện UNQl vào SQLite DB và phát
triển UNQLite (Cơ sở dữ liệu hướng tài liệu - Document oriented
database).
Vì sao chọn SQLite
SQLite không yêu cầu một quy trình hoặc hệ thống máy chủ riêng biệt đểhoạt động
SQLite không cần cấu hình, có nghĩa là không cần thiết lập hoặc quản trị
Một cơ sở dữ liệu SQLite hoàn chỉnh được lưu trữ trong một file disk đa nền
tảng (cross-platform disk file).
SQLite rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặcdưới 250KiB với các tính năng tùy chọn bị bỏ qua
SQLite là khép kín (self-contained), có nghĩa là không có phụ thuộc bên
ngoài
Các transaction trong SQLite hoàn toàn tuân thủ ACID, cho phép truy cập an
toàn từ nhiều tiến trình (process) hoặc luồng (thread).
SQLite hỗ trợ hầu hết các tính năng ngôn ngữ truy vấn (query language)
được tìm thấy trong tiêu chuẩn SQL92(SQL2)
Trang 16 SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ sử dụng.
SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32, WinCE, WinRT).
2.6 Service
Một Service là một thành phần (component) có thể thực hiện các hoạt độnglâu dài trong background và nó không cung cấp một giao diện người dùng.Một thành phần khác của ứng dụng có thể start nó, và nó tiếp tục chạy trongbackground ngay cả khi người dùng chuyển sang ứng dụng khác Ngoài ramột thành phần có thể liên kết (bind) với một Service để tương tác vớiService đó, thậm chí là thực hiện truyền thông liên tiến trình IPC(interprocess communication - IPC bạn có thể hiểu là một hoạt động chia sẽ
dữ liệu qua nhiều tiến trình, thông thường sử dụng giao thức truyền thông và
nó phải có Client và Server)
Phân loại Service
Foreground Service
o Một Foreground Service thực hiện một số thao tác mà người dùng chú
ý, có thể thấy rõ ràng Ví dụ một ứng dụng nghe nhạc có thể chơi mộtbản nhạc và control nó bằng Foreground Service Một điều bắt buộc làForeground Service phải hiện thị một Notification Foreground Service
sẽ tiếp tục chạy ngay cả khi người dùng không tương tác với ứng dụng
Background Service
o Một Background Service sẽ thực hiện các hoạt động mà không đượcngười dùng chú ý trực tiếp Ví dụ một ứng dụng sử dụng một service đểthu gom bộ nhớ chẳng hạn thì service là một Background Service, hoạtđộng mà người dùng không cần thiết phải để ý
Bound Service
o Một service được gọi là Bound khi một thành phần của ứng dụng ràngbuộc với nó bởi lời gọi bindService () Một Bound Service cung cấpmột giao diện Client - Server cho phép các thành phần tương tác vớinó: gửi yêu cầu, nhận kết quả và thậm chí là IPC Một Bound Servicechỉ chạy miễn là có một thành phần ràng buộc với nó Có thể có nhiềuthành phần ràng buộc với Bound Service cùng lúc, nhưng khi tất cảtháo bỏ ràng buộc (unbound) thì nó sẽ Destroy Trước đây Servicethường được chia là Started Service và Bound Service
14