Đồ án Trò chơi trắc nghiệm, trau dồi kiến thức trên Android

Ngành công nghệ thông tin trong những năm đầu thế kỉ 21 đang có những bước phát triển thật sự mạnh mẽ. Sự ra đời liên tục của các dòng máy tính, điện thoại thông minh, máy tính bảng và nhiều sản phẩm khác ngày càng hiện đại với các công nghệ mới liên tục được ra mắt và áp dụng, giúp cho cuộc sống của con người chúng ta ngày càng được cải thiện và nâng cao. Điện thoại thông minh (smartphone) đang ngày càng phổ biến, chiếm lĩnh thị trường của giới di động. Có rất nhiều hệ điều hành được cài đặt trên các dòng điện thoại thông minh này, nhưng chiếm thị phần cao hơn cả chính là hệ điều hành Android.

pdf21 trang | Chia sẻ: lecuong1825 | Lượt xem: 3198 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Trò chơi trắc nghiệm, trau dồi kiến thức trên Android, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
v MỤC LỤC MỞ ĐẦU ............................................................................................................ 1 Chƣơng 1. CƠ SỞ LÝ THUYẾT ................... Error! Bookmark not defined. 1.1 CẤU TRÚC TỔNG QUAN .............. Error! Bookmark not defined. 1.2 GIỚI THIỆU VỀ ANDROID ........... Error! Bookmark not defined. 1.3 KIẾN TRÚC CỦA ANDROID ......... Error! Bookmark not defined. 1.3.1 Linux Kernel ............................... Error! Bookmark not defined. 1.3.2 Libraries ...................................... Error! Bookmark not defined. 1.3.3 Android Runtime ........................ Error! Bookmark not defined. 1.3.4 Application framework ............... Error! Bookmark not defined. 1.3.5 Application ................................. Error! Bookmark not defined. 1.4 ANDROID EMULATOR ................. Error! Bookmark not defined. 1.5 CÁC THÀNH PHẦN TRONG MỘT DỰ ÁN ANDROID...... Error! Bookmark not defined. 1.5.1 AndroidManifest.xml ................. Error! Bookmark not defined. 1.5.2 File R.java ................................... Error! Bookmark not defined. 1.6 CHU KỲ ỨNG DỤNG ANDROID.. Error! Bookmark not defined. 1.6.1 Chu kỳ sống thành phần ............. Error! Bookmark not defined. 1.6.2 Activity Stack ............................. Error! Bookmark not defined. 1.6.3 Các trạng thái của chu kỳ sống ... Error! Bookmark not defined. 1.6.4 Chu kỳ sống của ứng dụng ......... Error! Bookmark not defined. 1.6.5 Các sự kiện trong chu kỳ sống của ứng dụngError! Bookmark not defined. 1.6.6 Thời gian sống của ứng dụng ..... Error! Bookmark not defined. 1.6.7 Thời gian hiện thị của Activity ... Error! Bookmark not defined. 1.6.8 Các phƣơng thức của chu kỳ sốngError! Bookmark not defined. 1.7 CÁC THÀNH PHẦN TRONG ỨNG DỤNG ANDROID ....... Error! Bookmark not defined. 1.7.1 View ............................................ Error! Bookmark not defined. vi 1.7.2 ViewGroup ................................. Error! Bookmark not defined. 1.7.3 Button ......................................... Error! Bookmark not defined. 1.7.4 ImageButton ............................... Error! Bookmark not defined. 1.7.5 ImageView .................................. Error! Bookmark not defined. 1.7.6 ListView ..................................... Error! Bookmark not defined. 1.7.7 TextView .................................... Error! Bookmark not defined. 1.7.8 EditText ...................................... Error! Bookmark not defined. 1.7.9 CheckBox ................................... Error! Bookmark not defined. 1.7.10 RadioButton ................................ Error! Bookmark not defined. 1.7.11 Intent ........................................... Error! Bookmark not defined. 1.7.12 Activity ....................................... Error! Bookmark not defined. 1.7.13 Service ........................................ Error! Bookmark not defined. 1.7.14 Broadcast Receiver ..................... Error! Bookmark not defined. 1.8 WEBSERVICE ................................. Error! Bookmark not defined. 1.8.1 Khái niệm Webservice ............... Error! Bookmark not defined. 1.8.2 Đặc điểm Webservice ................. Error! Bookmark not defined. 1.8.3 Giới thiệu về JSON ..................... Error! Bookmark not defined. 1.9 ASP.NET ........................................... Error! Bookmark not defined. 1.10 TỔNG KẾT ....................................... Error! Bookmark not defined. Chƣơng 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNGError! Bookmark not defined. 2.1 KHÁI QUÁT ĐỀ TÀI ....................... Error! Bookmark not defined. 2.2 MÔ TẢ BÀI TOÁN .......................... Error! Bookmark not defined. 2.2.1 Cấu trúc hệ thống ........................ Error! Bookmark not defined. 2.2.2 Yêu cầu chức năng ..................... Error! Bookmark not defined. 2.2.3 Yêu cầu phi chức năng ............... Error! Bookmark not defined. 2.3 XÂY DỰNG HỆ THỐNG ................ Error! Bookmark not defined. 2.3.1 Biểu đồ ca sử dụng ..................... Error! Bookmark not defined. 2.3.2 Biểu đồ hoạt động ....................... Error! Bookmark not defined. vii 2.3.3 Biểu đồ tuần tự ........................... Error! Bookmark not defined. 2.3.4 Biểu đồ lớp ................................. Error! Bookmark not defined. 2.4 THIẾT KẾ CƠ SỞ DỮ LIỆU ........... Error! Bookmark not defined. 2.4.1 Biểu đồ cơ sở dữ liệu .................. Error! Bookmark not defined. 2.4.2 Bảng dữ liệu ................................ Error! Bookmark not defined. Chƣơng 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ .............................. 3 3.1 CÔNG CỤ - MÔI TRƢỜNG PHÁT TRIỂN ..................................... 3 3.2 KẾT QUẢ DEMO............................................................................... 3 3.3 LỖI PHÁT SINH VÀ CÁCH GIẢI QUYẾT ..................................... 8 3.3.1 Lỗi khi import một dự án Android ............................................... 8 3.3.2 Thiếu thƣ viện khi đƣa dự án qua máy khác ................................ 8 3.3.3 Code thừa ...................................................................................... 8 3.4 ĐÁNH GIÁ ỨNG DỤNG ................................................................... 8 3.4.1 Mục tiêu đạt đƣợc ......................................................................... 8 3.4.2 Hạn chế ......................................................................................... 9 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .................................................... 10 TÓM TẮT ĐỒ ÁN ......................................................................................... 11 TÀI LIỆU THAM KHẢO ................................. Error! Bookmark not defined. viii DANH MỤC HÌNH VẼ Hình 1. Cấu trúc tổng quan .............................. Error! Bookmark not defined. Hình 2. Kiến trúc các tầng hệ thống Android .. Error! Bookmark not defined. Hình 3. Activity Stack ...................................... Error! Bookmark not defined. Hình 4. Chu kỳ sống của Activity .................... Error! Bookmark not defined. Hình 5. Các sự kiện trong chu kỳ sống của ứng dụng Android. .............. Error! Bookmark not defined. Hình 6. Cấu trúc một giao diện ứng dụng AndroidError! Bookmark not defined. Hình 7. ImageView và ImageButton ................ Error! Bookmark not defined. Hình 8. Truyền dữ liệu giữa 2 Activity ............ Error! Bookmark not defined. Hình 9. Các thuộc tính của Intend .................... Error! Bookmark not defined. Hình 10. Các Action đã đƣợc định nghĩa sẵn trong IntendError! Bookmark not defined. Hình 11. Minh họa JSONObject ...................... Error! Bookmark not defined. Hình 12. Minh họa JSONArray ........................ Error! Bookmark not defined. Hình 13. Mô tả ứng dụng ................................. Error! Bookmark not defined. Hình 14. Biểu đồ ca sử dụng tổng quát ............ Error! Bookmark not defined. Hình 15. Use case Đăng ký .............................. Error! Bookmark not defined. Hình 16. Use case Quên mật khẩu ................... Error! Bookmark not defined. Hình 17. Use case Đăng nhập .......................... Error! Bookmark not defined. Hình 18. Use case Quản lý thông tin cá nhân .. Error! Bookmark not defined. Hình 19. Use case Cửa hàng ............................ Error! Bookmark not defined. Hình 20. Use case Xếp hạng ............................ Error! Bookmark not defined. Hình 21. Use case Vào trò chơi ........................ Error! Bookmark not defined. Hình 22. Use case Thêm câu hỏi ...................... Error! Bookmark not defined. Hình 23. Use case Bình chọn câu hỏi ............... Error! Bookmark not defined. Hình 24. Biểu đồ hoạt động Đăng ký ............... Error! Bookmark not defined. Hình 25. Biểu đồ hoạt động Đăng nhập ........... Error! Bookmark not defined. Hình 26. Biểu đồ hoạt đọng Quên mật khẩu .... Error! Bookmark not defined. ix Hình 27. Biểu đồ hoạt động Quản lý thông tin cá nhânError! Bookmark not defined. Hình 28. Biểu đồ hoạt động Vào trò chơi ........ Error! Bookmark not defined. Hình 29. Biểu đồ hoạt động Cửa hàng ............. Error! Bookmark not defined. Hình 30. Biểu đồ hoạt động xếp hạng .............. Error! Bookmark not defined. Hình 31. Biểu đồ hoạt động Thêm câu hỏi....... Error! Bookmark not defined. Hình 32. Biểu đồ tuần tự Đăng ký .................... Error! Bookmark not defined. Hình 33. Biểu đồ tuần tự Đăng nhập ................ Error! Bookmark not defined. Hình 34. Biểu đồ tuần tự Quên mật khẩu ......... Error! Bookmark not defined. Hình 35. Biểu đồ tuần tự Quản lý thông tin cá nhânError! Bookmark not defined. Hình 36. Biểu đồ tuần tự Cửa hàng .................. Error! Bookmark not defined. Hình 37. Biểu đồ tuần tự vào trò chơi .............. Error! Bookmark not defined. Hình 38. Biểu đồ tuần tự Xếp hạng .................. Error! Bookmark not defined. Hình 39. Biểu đồ tuần tự Thêm câu hỏi ........... Error! Bookmark not defined. Hình 40. Biểu đồ tuần tự Bình chọn câu hỏi .... Error! Bookmark not defined. Hình 41. Biểu đồ lớp ứng dụng ........................ Error! Bookmark not defined. Hình 42. Biểu đồ cơ sở dữ liệu ......................... Error! Bookmark not defined. Hình 43. Màn hình Đăng nhập ........................................................................... 3 Hình 44. Màn hình Đăng ký ............................................................................... 3 Hình 45. Màn hình Quên mật khẩu .................................................................... 4 Hình 46. Màn hình Trang chủ ............................................................................ 4 Hình 47 Màn hình Quản lý thông tin ................................................................. 4 Hình 48. Màn hình cập nhật thông tin ................................................................ 4 Hình 49. Màn hình Chọn lĩnh vực ...................................................................... 5 Hình 50. Màn hình Câu hỏi & tiền ..................................................................... 5 Hình 51. Màn hình Trả lời câu hỏi ..................................................................... 5 Hình 52. Màn hình Khi chọn đáp án .................................................................. 5 Hình 53. Màn hình Dừng trò chơi ...................................................................... 6 Hình 54. Màn hình Kết quả ................................................................................ 6 x Hình 55. Màn hình Cửa hàng ............................................................................. 6 Hình 56. Màn hình Chọn số lƣợng ..................................................................... 6 Hình 57. Màn hình Xếp hạng trí tuệ ................................................................... 7 Hình 58.Màn hình Xếp hạng Đẳng cấp .............................................................. 7 Hình 59. Màn hình Xếp hạng Phú hộ ................................................................. 7 Hình 60. Màn hình Bình chọn câu hỏi ............................................................... 7 xi DANH MỤC BẢNG BIỂU Bảng 1. Mô tả Use case Đăng ký ..................... Error! Bookmark not defined. Bảng 2. Mô tả Use case Quên mật khẩu........... Error! Bookmark not defined. Bảng 3. Mô tả Use case Đăng nhập.................. Error! Bookmark not defined. Bảng 4. Mô tả Use case Quản lý thông tin cá nhânError! Bookmark not defined. Bảng 5. Mô tả Use case Cửa hàng .................... Error! Bookmark not defined. Bảng 6. Mô tả Use case Xếp hạng .................... Error! Bookmark not defined. Bảng 7. Mô tả Use case Vào trò chơi ............... Error! Bookmark not defined. Bảng 8. Mô tả Use case Thêm câu hỏi ............. Error! Bookmark not defined. Bảng 9. Mô tả Use case Bình chọn câu hỏi ...... Error! Bookmark not defined. Bảng 10. Mô tả bảng User ................................ Error! Bookmark not defined. Bảng 11. Mô tả bảng Knowledge ..................... Error! Bookmark not defined. Bảng 12. Mô tả bảng Question ......................... Error! Bookmark not defined. Bảng 13. Mô tả bảng Rank ............................... Error! Bookmark not defined. Bảng 14. Mô tả bảng AddQuestion .................. Error! Bookmark not defined. Bảng 15. Mô tả bảng Notify ............................. Error! Bookmark not defined. Bảng 16. Mô tả bảng Votes .............................. Error! Bookmark not defined. xii DANH MỤC TỪ VIẾT TẮT STT Tên Ý nghĩa 1 JDK Java Development Kit 2 SDK Software Development Kit 3 HTTP Hyper Text Transfer Protocol 4 JSON Javascript Object Notation 5 ADT Android Developer Tools 7 CSDL Cơ Sở Dữ Liệu 8 XML Extensible Markup Language Trò chơi trắc nghiệm, trau dồi kiến thức trên Android MỞ ĐẦU 1. Bối cảnh thực hiện đề tài Ngành công nghệ thông tin trong những năm đầu thế kỉ 21 đang có những bƣớc phát triển thật sự mạnh mẽ. Sự ra đời liên tục của các dòng máy tính, điện thoại thông minh, máy tính bảng và nhiều sản phẩm khác ngày càng hiện đại với các công nghệ mới liên tục đƣợc ra mắt và áp dụng, giúp cho cuộc sống của con ngƣời chúng ta ngày càng đƣợc cải thiện và nâng cao. Điện thoại thông minh (smartphone) đang ngày càng phổ biến, chiếm lĩnh thị trƣờng của giới di động. Có rất nhiều hệ điều hành đƣợc cài đặt trên các dòng điện thoại thông minh này, nhƣng chiếm thị phần cao hơn cả chính là hệ điều hành Android. Mặc khác, Android là một hệ điều hành mã nguồn mở dựa trên nhân hệ điều hành Linux và chính điều đó cùng với 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 dộng và các lập trình viên đƣợ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 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, và số lƣợt tải ứng dụng từ Google Phay, cửa hàng ứng dụng chính của Android, ƣớc tính khoảng 25 tỷ lƣợt. 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, mức tăng trƣởng của Android vƣợt lên dẫn đầu so với iPhone, Windows Phone và nhiều hãng khác, đƣợ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 lại từ đầu. Kết quả là mặc dù đƣợc thiết kế để chạy điện thoại và máy tính bảng, nhƣng Android đã xuất hiện trên TV, máy chơi game, và các thiết bị điện tử khác. Bản chất mở của Android đã tạo nên một cộng đồng lập trình viên Android rất lớn trên toàn thế giới, điều này làm cho việc tìm ra giải pháp cho các vấn đề gặp phải cũng nhƣ việc tìm kiếm các lập trình viên có cùng mục địch để chia sẻ ý tƣởng về ứng dụng và trao đổi kinh nghiệm trở nên dễ dang hơn rất nhiều. Lấy ý tƣởng từ gameshow truyền hình Ai là triêu phú, một trò chơi đang hấp dẫn nhiều ngƣời chơi hiện nay và xuất phát từ sự đam mê của ngƣời dùng muốn đƣợc trực tiếp thử sức trên điện thoại di động cầm tay ở mọi lúc mọi nơi đã làm cho em có một vài ý tƣởng xây dựng trò chơi trắc nghiệm, trau dồi kiến thức nhằm giúp cho ngƣời chơi phần nào có thể ôn, học hỏi các kiến thức rộng lớn xung quanh chúng ta một cách dễ dàng thông qua một trò chơi đƣợc chia thành từng lĩnh vực mà ngƣời chơi có thể học hỏi tùy vào sở thích. Trò chơi trắc nghiệm, trau dồi kiến thức trên Android 2. Mục đích của đề tài Trò chơi trắc nghiệm, trau dồi kiến thức trên nền tảng Android đƣợc thực hiện trên các mục đích sau: - Nghiên cứu các công nghệ lập trình ứng dụng trên Android. - Phát triển ứng dụng có tính thực tiễn cao, có khả năng triển khai ứng dụng vào thực tế, giúp mọi ngƣời có thể vừa học vừa chơi, cảm thấy hứng thú, vui vẻ. 3. Phạm vi của đề tài Đối tƣợng mà trò chơi hƣớng đến mọi ngƣời có sở hữu điện thoại thông minh chạy hệ điều hành Android. Nền tảng xây dựng ứng dụng là hệ điều hành di động Android. Kho dữ liệu đƣợc xây dựng và phát triển trên mạng internet, cung cấp Webservice và các hình thức để sử dụng, khai thác dữ liệu của kho. 4. Hình thức thể hiện Ứng dụng đƣợc viết bằng ngôn ngữ Java Android. Webservices thực hiện dự trên: - Ngôn ngữ Asp.net - Hệ quản trị cở sở dữ liệu: Sql Server 5. Bố cục báo cáo Báo cáo đề tài gồm các chƣơng sau: Chương 1: Cơ sở lí thuyết Chương 2: Phân tích và thiết kế hệ thống Chương 3: Triển khai và đánh giá kết quả Kết luận Trò chơi trắc nghiệm, trau dồi kiến thức trên Android TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 1.1 CÔNG CỤ - MÔI TRƢỜNG PHÁT TRIỂN Môi trƣờng sử dụng để phát triển ứng dụng bao gồm: - Hệ điều hành: Microsoft Windows - Ngôn ngữ: Java, Asp.net - Môi trƣờng phát triển: o JDK 1.8 o Android SDK o Eclipse: phát triển ứng dụng Android o Visual Studio 2010: công cụ soạn thảo mã nguồn Asp.net o Sql Server 2008 R2 Express. o Máy ảo Android Genymotion. o 1.2 KẾT QUẢ DEMO Hình 1. Màn hình Đăng nhập Hình 2. Màn hình Đăng ký Trò chơi trắc nghiệm, trau dồi kiến thức trên Android Hình 3. Màn hình Quên mật khẩu Hình 4. Màn hình Trang chủ Hình 5 Màn hình Quản lý thông tin Hình 6. Màn hình cập nhật thông tin Trò chơi trắc nghiệm, trau dồi kiến thức trên Android Hình 7. Màn hình Chọn lĩnh vực Hình 8. Màn hình Câu hỏi & tiền Hình 9. Màn hình Trả lời câu hỏi Hình 10. Màn hình Khi chọn đáp án Trò chơi trắc nghiệm, trau dồi kiến thức trên Android Hình 11. Màn hình Dừng trò chơi Hình 12. Màn hình Kết quả Hình 13. Màn hình Cửa hàng Hình 14. Màn hình Chọn số lƣợng Trò chơi trắc nghiệm, trau dồi kiến thức trên Android Hình 15. Màn hình Xếp hạng trí tuệ Hình 16.Màn hình Xếp hạng Đẳng cấp Hình 17. Màn hình Xếp hạng Phú hộ Hình 18. Màn hình Bình chọn câu hỏi Trò chơi trắc nghiệm, trau dồi kiến thức trên Android 1.3 LỖI PHÁT SINH VÀ CÁCH GIẢI QUYẾT 1.3.1 Lỗi khi import một dự án Android Phần lớn là do trong khi khởi tạo 1 dự án android ta chọn platform. Khi ta import dự án android ở máy tính khác mà trong thƣ mục andoid sdk không có platforms mà dự án yêu cầu thì nó sẽ xuất hiện thông báo lỗi, chúng ta không thể biên dịch hay chạy chƣơng trình. Hƣớng giải quyết: ta ép dự án android về phiên bản platform mà sdk của máy có. 1.3.2 Thiếu thƣ viện khi đƣa dự án qua máy khác Khi ta muốn sử dụng 1 thƣ viện .jar từ bên ngoài chúng ta thƣờng “add extenals archives” ở đây eclipse sẽ sử dụng đƣờng đẫn tuyệt đối để chỉ đƣờng đẫn tới thƣ viện. Khi ta chuyển dự án qua máy khác thì đƣờng đẫn tuyệt đối bị thay đổi. Dẫn đến project bị thay đổi. Khi đó các hàm các lớp sử dụng thƣ viện này đều bị lỗi. Hƣớng giải quyết: sửa lại đƣờng đẫn trong “java building path”. Hoặc kích chuột phải vào project, chọn properties/android/add, để chọn lại thƣ viện cho project. 1.3.3 Code thừa Eclipse sẽ báo cho chúng ta biết các phần code thừa không dùng đến bằng dấu chấm thang màu vàng. - Các trƣờng hợp code thừa: o Khai báo biến toàn cục là private mà không có getter hay setter. o Khai báo thừa thƣ viện. o Khai báo trong hàm mà không sử dụng. - Giải pháp: o Tạo getter, setter cho các biến private. o Xóa các khai báo import thƣ viện thừa. o Xóa các biến khai báo mà không dùng đến. 1.4 ĐÁNH GIÁ ỨNG DỤNG 1.4.1 Mục tiêu đạt đƣợc Ứng dụng chạy ổn định, ngƣời chơi có thể chơi trò chơi trực tiếp trên điện thoại Android ngay sau khi cài đặt, đáp ứng đƣợc các yêu cầu ban đầu đề ra. Trò chơi trắc nghiệm, trau dồi kiến thức trên Android 1.4.2 Hạn chế Trò chơi chỉ chơi đơn một ngƣời, chƣa tạo đƣợc mối liên kết sinh động giữa các ngƣời chơi nhƣ thách đấu trực tuyến giữa hai ngƣời chơi, tìm bạn bè xung quanh mình theo độ tuổi hay giới