TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP CƠ SỞ ĐỀ TÀI XÂY DỰNG APP AI LÀ TRIỆU PHÚ Giảng viên hướng dẫn ThS Nguyễn Hồng Tân Sinh viên thực hiện Nguyễn Huy Quang Mã Sinh Viên DTC1954801030056 Lớp KTPM – K18A Thái Nguyên, năm 2022 LỜI MỞ ĐẦU Hiện nay với sự phát triển nhanh chóng của khoa học công nghệ, các thiết bị điện thoại di động ngày càng trở nên phổ biến Cùng với sự phát triển của mạng 4G, 5G và sự ra đời của các dòng điện tho.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN _ _ BÁO CÁO THỰC TẬP CƠ SỞ ĐỀ TÀI: XÂY DỰNG APP AI LÀ TRIỆU PHÚ Giảng viên hướng dẫn: ThS Nguyễn Hồng Tân Sinh viên thực hiện: Nguyễn Huy Quang Mã Sinh Viên: DTC1954801030056 Lớp: KTPM – K18A Thái Nguyên, năm 2022 LỜI MỞ ĐẦU Hiện với phát triển nhanh chóng khoa học cơng nghệ, thiết bị điện thoại di động ngày trở nên phổ biến Cùng với phát triển mạng 4G, 5G đời dòng điện thoại cao cấp ngày nhiều Chiếc điện thoại không sử dụng với chức nghe gọi thơng thường mà cịn sử dụng với nhiều mục đích khác nghe nhạc, chơi game, giúp bạn thư giãn, giải trí thời gian rảnh rỗi Trong vài năm trở lại đây, phát triển Android có bước phát triển mạnh mẽ dần chiếm cảm tình người dùng Lập trình game mobile tảng Android ngày đa dạng phổ biến, thu hút nhiều lập trình viên Từ nhu cầu đó, có nhiều công ty lớn nhỏ cho đời hàng loạt Game mobile để cung cấp cho người sử dụng Tuy vậy, Game mobile dường chưa thể đáp ứng hết nhu cầu người dùng Việc xây dựng ứng dụng thiết bị di động cần cho việc phát triển công nghệ di động Với tựa game đơn giản, quen thuộc tiếp cận với nhiều lứa tuổi Pikachu, Ai triệu phú, Đuổi hình bắt chữ … Em mong muốn người vừa học vừa chơi giải đáp miền tri thức nên em lựa chọn xây dựng game Ai Là Triệu phú, lấy ý tưởng dựa game show tiếng sóng truyền hình VTV Nhằm đáp ứng nhu cầu giải trí cho người, với chưa ngồi ghế nóng nơi để bạn vừa giải trí kiểm tra lại kiến thức Đề tài giúp em củng cố thêm nhiều kiến thức học: Ngơn ngữ lập trình Java, Lập trình thiết bị di động, Cơ sở liệu, Phân tích thiết kế hệ thống,… kỹ khác Những phần em tìm hiểu làm nhờ trình học tập tự tìm hiểu thân Hi vọng đề tài nhận quan tâm người MỤC LỤC CHƯƠNG I: TỔNG QUAN ĐỀ TÀI 1 Lí lựa chọn đề tài Mục tiêu đề tài .1 Nội dung Phương pháp nghiên cứu .1 Ý nghĩa lý luận thực tiễn CHƯƠNG II: CƠ SỞ LÝ THUYẾT Giới thiệu Android 1.1 Lịch sử hình thành .2 1.2 Ưu nhược điểm Android .3 1.3 Kiến trúc hệ điều hành Android 1.4 Quá trình biên dịch thực thi ứng dụng 1.5 Các thành phần ứng dụng Android Ngôn ngữ Java .8 2.1 Các đặc điểm ngôn ngữ Java Giới thiệu môi trường phát triển Android Studio 11 3.1 Cấu trúc project 12 CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG .18 Mô tả toán 18 1.1 Nhu cầu thực tế 18 1.2 Chương trình thực tế 18 1.3 Ý tưởng 18 1.4 Xác định yêu cầu chức 19 1.5 Định hướng người dùng 19 1.6 Phương pháp thực hướng giải .20 Phân tích ứng dụng 20 2.1 Sơ đồ use case tổng quát 20 2.2 Biểu đồ phân rã 21 2.3 Biểu đồ lớp 22 2.4 Biểu đồ trình tự 23 2.5 Biểu đồ hoạt động 25 Demo chương trình 28 KẾT LUẬN .33 Kết đạt .33 Hạn chế 33 Hướng phát triển .33 Kinh nghiệm thu .33 CHƯƠNG I: TỔNG QUAN ĐỀ TÀI Lí lựa chọn đề tài Lập trình thiết bị di động xu hướng lập trình viên tồn giới em muốn trau dồi kiến thức để rèn luyện khả lập trình học hỏi thêm nhiều kiến thức phục vụ cho công việc sau Trên thực tế, nhiều người thích trị chơi Ai Là Triệu Phú kênh VTV3 khơng có dịp thử sức truyền hình, em định xây dựng game Ai Là Triệu Phú nhằm đáp ứng nhu cầu người Mục tiêu đề tài Tìm hiểu Android cách xây dựng phần mềm nhằm thực hành kiến thức học Từ phần mềm xây dựng cài đặt thiết bị thực tế nhiều loại thiết bị khác Nội dung 3.1 Đối tượng nghiên cứu Ngôn ngữ Java, cơng cụ lập trình như: Android Studio, Eclipse sử dụng sở liệu để lưu trữ (SQLite,MySQL), nghiên cứu đưa ứng dụng lên thiết bị di động (đóng gói ứng dụng) 3.2 Phạm vi nghiên cứu Đề tài xây dựng ứng dụng câu hỏi trắc nghiệm mơ theo chương trình truyền hình Dựa theo kiến thức Java, Cơ sở liệu, lựa chọn môi trường xây dựng ứng dụng hợp lý Phương pháp nghiên cứu Để đạt mục tiêu đặt đề tài, em sử dụng phương pháp sau: - Thứ nhất, sử dụng số phương pháp thống kê như: phân tích, tổng hợp, so sánh áp dụng với phần mềm có - Thứ hai, sử dụng phương pháp chuyên dụng việc phát triển hệ thống thông tin như: phương pháp phân tích, thiết kế hướng chức năng, hướng kiện, phương pháp lập trình hướng đối tượng Ý nghĩa lý luận thực tiễn - Về mặt lý luận: Đề tài cung cấp sở lý thuyết ngơn ngữ lập trình Android cho học tập nghiên cứu - Về mặt thực tiễn: Trên sở kết việc nghiên cứu tìm hiểu, từ viết ứng dụng cụ thể mang tính thực tiễn cao CHƯƠNG II: CƠ SỞ LÝ THUYẾT Giới thiệu Android 1.1 Lịch sử hình thành Như bạn biết Android hệ điều hành di động phổ biến hệ điều hành có phát triển nhanh Lịch sử Android đời vào vào năm 2005, phần chiến lược khơng gian mobile Nó hệ điều hành nhân Linux sau Goolge mua lại họ đưa Android trở thành hệ điều hành mã nguồn mở Điều có nghĩa bạn download mã nguồn Android phục vụ cho mục đích riêng Hiện Android xuất sản phẩm nhà sản xuất lớn Samsung, Sony, Htc…từ điện thoại thơng minh - smart phone máy tính bảng, ti vi…Và nói nguyên nhân để phát triển mạnh tới tiềm lớn cho lập trình viên với hệ điều hành Hệ điều hành Android phát triển ngày lớn mạnh kể từ đời tới có phiên sau: Android khiến nhiều người bối rối có nhiều phiên nhiều số chúng chạy ngày Và việc chạy phiên thử thách khơng nhỏ Thơng thường, Android phát hành năm lần (dù vậy) với cập nhật bảo mật lần phát hành Thi thoảng Google phát hành cập nhật (.1, 2…) không thường xuyên Họ phát hành cập nhật lớn, dù không lớn đầy đủ, cập nhật từ Android 8.0 lên Android 8.1 chẳng hạn 1.2 Ưu nhược điểm Android Android hệ điều hành nguồn mở người dùng sửa đổi, cải tiến, phát triển nâng cấp theo số nguyên tắc quy định trước, cung cấp cách tiếp cận thống để phát triển ứng dụng Phần mềm mã nguồn mở gần gũi với người dùng người sử dụng người tạo phần mềm Tính tuỳ biến: mã nguồn mở đa dạng tuỳ biến nguồn liệu Những đoạn mã chương trình cơng khai, nên người dùng thêm chức mà người dùng muốn có Android phát triển nâng cấp nhiều Chính cơng nghệ mở nên cộng đồng nhà phát triển tảng ứng dụng Android có quyền truy cập, điều chỉnh, nâng cấp hồn thiện tính hiệu Android miễn phí cho sử dụng thương mại Android có cơng ty lớn nhất, mạnh sáng tạo đứng đằng sau nó: Google Thêm vào đó, cịn có tập đồn lớn khác hiệp hội OHA (Open Handset Alliance – Hiệp hội nhà phát triển thiết bị cầm tay mở) đứng sau đầu tư hàng tỷ đôla hỗ trợ cho việc nâng cấp phát triển tảng Android Do đó, việc phát triển Android khơng khơng làm tốn tiền mà mở nhiều hội cho nhà phát triển phần mềm di động Phát triển quảng bá ứng dụng Android dễ dàng: Chỉ cần cài đặt môi trường Android nắm vững công nghệ nó, bạn tạo ứng dụng tối ưu cho cộng đồng, Android cung cấp “chợ ứng dụng” Android Market giúp cho việc quảng bá ứng dụng nhà phát triển với cộng đồng người sử dụng hồn tồn dễ dàng với chi phí thấp Đối với người sử dụng thiết bị, Android mang lại thuận lợi Android có kho ứng dụng khổng lồ: Người dùng tìm nhiều ứng dụng miễn phí phù hợp với mục đích Android hỗ trợ đa nhiệm: Hệ điều hành Android Olive Pad hỗ trợ tính đa nhiệm, cho phép chạy nhiều ứng dụng lúc Ví dụ, nghe nhạc, người dùng lướt web, chơi game, đọc tài liệu Bên cạnh Android cịn có số hạn chế riêng so với hệ điều hành di động khác như: - Bảo mật: Vì hệ điều hành nguồn mở nên tất thông tin hệ thống nắm Đây ưu điểm nhược điểm, hacker tìm kiếm lỗ hổng hệ thống tìm cách cơng thiết bị - Đột phá ý tưởng: Mặc dù, Android đà phát triển nhanh với nhiều cải tiến mới, hoàn thiện Nhưng góc độ Android người chạy theo ý tưởng người khổng lồ iPhone Những người phát triển ứng dụng cho Android lấy ý tưởng từ iPhone Đây thách thức cho nhà phát triển hệ điều hành phát triển ứng dụng cho Android 1.3 Kiến trúc hệ điều hành Android Android môi trường phân tầng, xây dựng hệ điều hành nhân Linux, bao hàm nhiều chức phong phú Hệ thống giao diện người sử dụng gồm có: cửa sổ, khung nhìn, tiểu trình để hiển thị phần tử phổ biến hộp biên soạn, danh sách, danh sách thả xuống Hình sau cho thấy khung nhìn đơn giản hoá tầng phần mềm Android Nhân Linux (Linux kernel) tầng thấp nhất, phần lõi (core) hệ điều hành Linux hoạt động vi xử lý ARM (Acom RLSC Machine) Intel, sử dụng trình điều khiển thiết bị để hoạt động với hệ thống phần cứng (màn hình, camera, nhớ flash, card mạng, bàn phím, âm thanh, nguồn), quản lý nhớ, điều khiển tiến trình, hỗ trợ mạng v.v Môi trường thực thi (Android runtime) xây dựng nhân Linux bao gồm hai thành phần: thư viện lõi (core libraries), máy ảo Dalvik Môi trường thực thi chịu trách nhiệm khởi tạo thực thi ứng dụng Android Mỗi chương trình ứng dụng Android chạy tiến trình riêng với máy ảo Dalvik dành riêng cho ứng dụng Máy ảo Dalvik phiên máy ảo Java Google phát triển có nhiệm vụ đọc bytecode (loại mã trung gian biên dịch mã nguồn Java) chương trình, lưu máy Android định dạng DEX, tương tác với thư viện lõi Bộ thư viện lõi phận thư viện lớp Java SE cung cấp chức cho chương trình Java Dalvik có chế thu dọn liệu rác (Garbage Collector) cho phép tự động quản lý thu hồi nhớ từ biến không sử dụng Bộ thư viện hệ thống (System Libraries) thư viện viết C/C++ tầng gọi thông qua giao diện Java Bộ thư viện chịu trách nhiệm cho nhiệm vụ tính tốn phức tạp (như đồ họa, phát âm thanh, truy cập sở liệu v.v ) không phù hợp với thực thi máy ảo Dalvik Phần gồm thư viện Surface Manager (tạo cửa sổ giao diện), OpenGL ES (hỗ trợ xây dựng ứng dụng đồ họa 2D 3D), Media Framework (hỗ trợ xây dựng ứng dụng âm thanh, hình ảnh), SSL (cung cấp chức bảo mật thiết bị), SqLite (cơ sở liệu quan hệ mã nguồn mở nhúng thiết bị), Webkit (hỗ trợ hiền thị nội dung website), v.v Môi trường thực thi thư viện hệ thống coi hai tầng tầng lớn gọi Android Framework (để phân biệt với tầng Application cùng, tầng Application Framework, tầng Android Framework, tầng lõi Linux) Khung ứng dụng (Application Framework) chứa thư viện Java hỗ trợ người dùng giao tiếp với tầng Android framework Một phần tầng Google cung cấp sẵn, phần người lập trình tạo Tầng cung cấp tất loại dịch vụ sử dụng ứng dụng tầng (tầng Application) Quá trình phát triển ứng dụng cho Android cần đến dịch vụ tầng này: Activity Manager (quản lý chu kì sống Activity ứng dụng Android), Telephony Manager (cung cấp thư viện để truy xuất đến dịch vụ điện thoại thông tin thuê bao), View system (xử lý giao diện ứng dụng Android), Location Manager (cung cấp thư viện hỗ trợ người dùng định vị vị trí thiết bị) Ứng dụng (Aplication) Chúng ta tìm thấy tất ứng dụng Android lớp Chúng ta viết ứng dụng bạn để cài đặt lớp Ví dụ ứng dụng Sách, Trình duyệt, Trị chơi, v.v 1.4 Q trình biên dịch thực thi ứng dụng Trong tảng Android, mã nguồn Java biên dịch thành tập tin class Bộ SDK Android chứa chương trình đặc biệt gọi DX (viết tắt Dalvik Excecutable) để chuyển tập tin class định dạng DEX Một tập tin class chứa thơng tin lớp, cịn tập tin dex chứa tổng hợp nhiều lớp Tập tin dex dùng để chạy máy ảo Dalvik tương tự file exe Windows Để phục vụ việc phân phối ứng dụng, tập tin dex lần đóng gói vào tập tin apk nhờ chương trình đặc biệt SDK gọi AAPT Tập tin apk tải lên kho ứng dụng copy vào nhớ thiết bị Android Trong trình cài đặt, tập tin dex tài nguyên chương trình giải nén khỏi file 2.2 Biểu đồ phân rã - Phân rã use case bắt đầu - Phân rã use case hướng dẫn - Phân rã use case giới thiệu 22 - Phân rã use case thoát 2.3 Biểu đồ lớp 23 2.4 Biểu đồ trình tự - Biểu đồ trình tự cho trình chọn đáp án - Biểu đồ trình tự cho trình yêu cầu trợ giúp 50/50 24 - Biểu đồ trình tự cho trình yêu cầu trợ giúp gọi điện thoại - Biểu đồ trình tự cho trình yêu cầu trợ giúp hỏi ý kiến khán giả 25 - Biểu đồ trình tự cho trình yêu cầu trợ giúp đổi câu hỏi 2.5 Biểu đồ hoạt động - Biểu đồ hoạt động cho trình chọn đáp án 26 - Biểu đồ hoạt động cho trình chọn trợ giúp 50/50 - Biểu đồ hoạt động cho trình chọn trợ giúp gọi điện thoại 27 - Biểu đồ hoạt động cho trình chọn trợ giúp hỏi ý kiến khán giả 28 Demo chương trình - Giao diện chương trình 29 - Giao diện chơi game 30 - Giao diện hướng dẫn 31 - Giao diện trợ giúp gọi điện thoại 32 - Giao diện trợ giúp hỏi ý kiến khán giả 33 KẾT LUẬN Kết đạt Trong trình nghiên cứu thực đề tài: “Tìm hiểu Android xây dựng ứng dụng Game”, em tập trung tìm hiểu nội dung sau: - Giới thiệu Android, tảng lịch sử phát triển hệ điều hành Android - Trình bày kiến trúc vịng đời ứng dụng Android, thành phần ứng dụng Android: Activity, BroadcastReceiver, Service, ContentProviders - Cách thiết kế giao diện Android sử dụng số lớp hỗ trợ, Widget Toolbox, layout, view menu - Giới thiệu cách lưu trữ liệu Android sử dụng SQLite - Trình bày số gói, lớp sử dụng Multimedia - Xây dựng chương trình Game: Ai triệu phú chạy Android mơ theo GameShows Ai triệu phú, trị chơi truyền hình u thích VTV3 Hạn chế Do lần đầu tự tay xây dựng phần mềm đòi hỏi yêu cầu cao em cịn mắc nhiều sai sót, chương trình nhiều bất cập: - Chưa xây dựng hệ thống csdl câu hỏi - Code dài dòng, chưa tối ưu Hướng phát triển - Xây dựng form đăng kí, đăng nhập để lưu thơng tin lịch sử người chơi - Xây dựng CSDL với câu hỏi phong phú cập nhập liên tục - Giới hạn thời gian trả lời câu hỏi - Hoàn thiện đưa lên CH Play Kinh nghiệm thu - Khả tìm tịi, tự học, tiếp thu ngôn ngữ, công cụ lập trình - Kỹ tư duy, giải vấn đề thực tế 34 35 TÀI LIỆU THAM KHẢO [1] Giáo trình lập trình ứng dụng Android - Trường Đại Học CNNT & Truyền Thông Thái Nguyên [2] Giáo trình lập trình hướng đối tượng với Java - Trường Đại Học CNNT & Truyền Thông Thái Nguyên [3] https://developer.android.com/studio [4] https://www.youtube.com/playlist?list=PLO5kKXGLQ2Op2mN5QUsZ5VErujy0ItWA 36 ... chơi Ai Là Triệu Phú kênh VTV3 khơng có dịp thử sức truyền hình, em định xây dựng game Ai Là Triệu Phú nhằm đáp ứng nhu cầu người Mục tiêu đề tài Tìm hiểu Android cách xây dựng phần mềm nhằm thực. .. sử dụng Multimedia - Xây dựng chương trình Game: Ai triệu phú chạy Android mô theo GameShows Ai triệu phú, trị chơi truyền hình u thích VTV3 Hạn chế Do lần đầu tự tay xây dựng phần mềm đòi hỏi... tìm hiểu làm nhờ trình học tập tự tìm hiểu thân Hi vọng đề tài nhận quan tâm người MỤC LỤC CHƯƠNG I: TỔNG QUAN ĐỀ TÀI 1 Lí lựa chọn đề tài Mục tiêu đề tài .1 Nội dung