Môn học Phát triển ứng dụng cho thiết bị di động. Android là nền tảng di động phổ biến nhất. Nội dung báo cáo gồm: Giới thiệu nền tảng Android Phát biểu bài toán Phân tích thiết kế hệ thống Cài đặt cà kiểm thử ứng dụng Đồ án, đồ án môn học, bài tập lớn, project.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
Sinh viên thực hiện Khóa Lớp Mã sinh viên
Trịnh Việt Hoàng K9 CNTT – IT2 187480201257
Phạm Đức Quang K9 CNTT – IT2 187480201135
Vũ Hữu Ngọc K9 CNTT – IT2 187480201265
Bắc Ninh, tháng 10 năm 2021
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
BÀI TẬP LỚN
HỌC PHẦN: PHÁT TRIỂN ỨNG DỤNG CHO THIẾT BỊ DI
ĐỘNG Nhóm: 6
TÊN BÀI TẬP LỚN: XÂY DỰNG VÀ THIẾT KẾ ỨNG
Trang 3LỜI NÓI ĐẦU
Hiện nay Công nghệ thông tin vô cùng phát triển thì mọi người đều sử dụng máy vi tính hoặc điện thoại di động để làm việc và giải trí Do đó việc xây dựng các ứng dụng cho điện thoại di động đang là một ngành công
nghiệp mới đầy tiềm năng và hứa hẹn nhiều sự phát triển vượt bậc của
ngành lập trình
Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đa dạng và phong phú trên các hệ điều hành di động Các hệ điều hành Adroid, IOS, Windows Phone, Symbian đã rất phát triển trên thị trường truyền thông di động
Trong vài năm trở lại đây, hệ điều hành Adroid ra đời với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay Adroid đã nhanh chóng là đối thủ cạnh tranh mạnh mẽ với các hệ điều hành trước đó và đang là hệ điều hành di động của tương lai và được nhiều người ưa chuộng nhất
Ngày nay, với sự phát triển nhanh chóng của xã hội, nhu cầu giải trí thông qua điện thoại di động ngày càng phổ biến, vì vậy em đã chọn đề tài
“Xây dựng và thiết kế ứng dụng nghe nhạc online” với mục đích nghiên
cứu, tìm hiểu về ứng dụng nghe nhạc trên android để có thể đáp ứng nhu cầu giải trí đó, giúp cho mọi người có thể thư giãn thông qua ứng dụng một cách
dễ dàng
Trang 4LỜI CẢM ƠN
Lời đầu tiên cho phép em xin gửi lời cảm ơn đến toàn thể giáo viên
trường Đại Học Công Nghệ Đông Á, đặc biệt là các thầy cô khoa Công nghệ
thông tin đã tạo điều kiện cho chúng em thực hiện đề tài “Xây dựng và thiết
kế ứng dụng nghe nhạc online”
Có được bài báo cáo này, chúng em xin tỏ lòng biết ơn trân thành và sâu
sắc đến thầy giáo Trần Xuân Thanh đã trực tiếp hướng dẫn, giúp đỡ và dìu
dắt chúng em với những chỉ dẫn quý giá trong suốt quá trình triển khai và hoàn thành báo cáo
Trong quá trình thực hiện đề tài cũng như làm báo cáo khó tránh khỏi những sai sót, rất mong các thầy, cô bỏ qua Đồng thời do trình độ lý luận cũng như kinh nghiệm thực tế còn hạn chế nên không thể tránh khỏi những thiếu sót, em rất mong nhận được những ý kiến đóng góp của các thầy, cô để chúng em có thể học thêm nhiều kinh nghiệm và hoàn thành tốt hơn ở những
đề tài sau
Chúng em xin trân thành cảm ơn !
Trang 5MỤC LỤC
PHẦN MỞ ĐẦU 1
1 Phát biểu bài toán 1
2 Mục đích và yêu cầu của đề tài 1
3 Đối tượng và phạm vi nghiên cứu 1
3.1 Đối tượng nghiên cứu 1
3.2 Phạm vi nghiên cứu 1
4 Phương pháp nghiên cứu 1
5 Những đóng góp của báo cáo 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Giới thiệu về hệ điều hành Android 3
1.1.1 Giao diện 3
1.1.2 Ưu và nhược điểm 3
1.2 Kiến trúc của Android 4
1.2.1 Lớp Linux Kernel 5
1.2.2 Lớp Libraries 5
1.2.3 Android runtime 5
1.2.4 Lớp Application Framework 6
1.2.5 Lớp Applocations 6
1.3 Giới thiệu về Android Strudio 6
1.4 Các thành phần trong một ứng dụng Android 6
1.4.1 Android Project 6
1.4.2 Android Manifest 8
1.5 Các khối chính cấu thành nên ứng dụng android 8
1.5.1 Activity 8
1.5.2 Service 8
1.5.3 Content Provider 8
1.5.4 Intent 8
1.5.5 Broadcast Receiver 9
1.5.6 Notification 9
1.6 Các thành phần giao diện trong Android 9
1.6.1 Lập trình giao diện người dùng 9
1.6.2 Views và Lauyouts 9
CHƯƠNG 2: PHÁT TRIỂN ỨNG DỤNG 11
2.1 Đặc tả ứng dụng 11
Trang 62.2 Mục tiêu và yêu cầu của ứng dụng 11
2.2.1 Mục tiêu 11
2.2.2 Yêu cầu 11
2.3 Khảo sát hiện trạng 11
2.3.1 Hiện trạng 11
2.3.2 Yêu cầu đặt ra để phát triển ứng dụng 12
2.4 Mô tả các chức năng 12
2.4.1 Chức năng hiển thị danh sách nhạc 12
2.4.2 Chức năng Seekbar 12
2.4.3 Chức năng Play 12
2.4.4 Chức năng Pause 12
2.4.5 Chức năng Previous 12
2.4.6 Chức năng Next 12
2.5 Các yêu cầu phi chức năng 12
2.6 Sơ đồ cơ sở dữ liệu 13
CHƯƠNG 3: CÀI ĐẶT ỨNG DỤNG 14
3.1 Thư mục Project 14
3.2 Layout 17
3.2.1 Activity_danh_sach_bai_hat.xml 17
3.2.2 Activity_danh_sach_playlist.xml 18
3.2.3 Activity_main.xml 18
3.2.4 Activity_play_nhac.xml 19
3.2.5 Dong_album.xml 19
3.2.6 Dong_danh_sach_bai_hat.xml 20
3.2.7 Dong_danhsachplaylist.xml 20
3.2.8 Dong_playlist.xml 21
3.2.9 Dong_theloai.xml 21
3.2.10 Fragment_album_hot.xml 22
3.2.11 Fragment_bai_hat_moi.xml 22
3.2.12 Fragment_dia_nhac.xml 23
3.2.13 Fragment_playlist.xml 23
3.2.14 Fragment_theloai.xml 24
3.2.15 Fragment_tim_kiem.xml 24
3.2.16 Fragment_trang_chu.xml 25
3.3 Class 25
Trang 73.3.1 DanhSachBaiHatActivity.java 25
3.3.2 DanhSachPlaylistActivity.java 28
3.3.3 MainActivity.java 30
3.3.4 PlayNhacActivity.java 31
3.3.5 APIService.java 41
3.4 Kiểm thử và đánh giá 41
3.4.1 Kiểm thử 41
3.4.2 Đánh giá 43
CHƯƠNG 4: KẾT LUẬN 44
TÀI LIỆU THAM KHẢO 45
Trang 8MỤC LỤC BẢNG
Bảng 2 1 Các yêu cầu phi chức năng 12
Trang 9MỤC LỤC HÌNH ẢNH
Hình 1 1 Kiến trúc của hệ điều hành Android 5
Hình 2 1 Sơ đồ cơ sở dữ liệu 13
Hình 3 1 Thư mục Project 14
Hình 3 2 Thư mục Project (tiếp) 15
Hình 3 3 Thư mục Project (tiếp) 16
Hình 3 4 Thư mục Project (tiếp) 17
Hình 3 5 Design của Activity_danh_sach_bai_hat.xml 17
Hình 3 6 Design của Activity_danh_sach_playlist.xml 18
Hình 3 7 Design của Activity_main.xml 18
Hình 3 8 Design của Activity_play_nhac.xml 19
Hình 3 9 Design của Dong_album.xml 19
Hình 3 10 Design của Dong_danh_sach_bai_hat.xml 20
Hình 3 11 Design của Dong_danhsachplaylist.xml 20
Hình 3 12 Design của Dong_playlist.xml 21
Hình 3 13 Design của Dong_theloai.xml 21
Hình 3 14 Design của Fragment_album_hot.xml 22
Hình 3 15 Design của Fragment_bai_hat_moi.xml 22
Hình 3 16 Design của Fragment_dia_nhac.xml 23
Hình 3 17 Design của Fragment_playlist.xml 23
Hình 3 18 Design của Fragment_theloai.xml 24
Hình 3 19 Design của Fragment_tim_kiem.xml 24
Hình 3 20 Design của Fragment_trang_chu.xml 25
Hình 3 21 Code class DanhSachBaiHatActivity.java 26
Hình 3 22 Code class DanhSachBaiHatActivity.java (tiếp) 26
Hình 3 23 Code class DanhSachBaiHatActivity.java (tiếp) 27
Hình 3 24 Code class DanhSachBaiHatActivity.java (tiếp) 27
Hình 3 25 Code class DanhSachBaiHatActivity.java (tiếp) 28
Hình 3 26 Code class DanhSachPlaylistActivity.java 29
Hình 3 27 Code class DanhSachPlaylistActivity.java (tiếp) 30
Hình 3 28 Code class DanhSachPlaylistActivity.java (tiếp) 30
Hình 3 29 Code class MainActivity.java 31
Hình 3 30 Code class MainActivity.java 31
Hình 3 31 Code class PlayNhacActivity.java 32
Hình 3 32 Code class PlayNhacActivity.java (tiếp) 32
Hình 3 33 Code class PlayNhacActivity.java (tiếp) 33
Hình 3 34 Code class PlayNhacActivity.java (tiếp) 33
Hình 3 35 Code class PlayNhacActivity.java (tiếp) 34
Hình 3 36 Code class PlayNhacActivity.java (tiếp) 34
Hình 3 37 Code class PlayNhacActivity.java (tiếp) 35
Hình 3 38 Code class PlayNhacActivity.java (tiếp) 36
Hình 3 39 Code class PlayNhacActivity.java (tiếp) 37
Hình 3 40 Code class PlayNhacActivity.java (tiếp) 37
Hình 3 41 Code class PlayNhacActivity.java (tiếp) 38
Hình 3 42 Code class PlayNhacActivity.java (tiếp) 38
Hình 3 43 Code class PlayNhacActivity.java (tiếp) 39
Trang 10Hình 3 44 Code class PlayNhacActivity.java (tiếp) 39
Hình 3 45 Code class PlayNhacActivity.java (tiếp) 40
Hình 3 46 Code class PlayNhacActivity.java (tiếp) 40
Hình 3 47 Code class PlayNhacActivity.java (tiếp) 41
Hình 3 48 APIService.java 41
Hình 3 49 Giao diện hiển thị chính 42
Hình 3 50 Giao diện phát nhạc 43
Trang 11Bảng phân công công việc nhóm
1 Trịnh Việt Hoàng Tìm hiểu về Android Studio
Phân tích thiết kế ứng dụng Code chính
Cả nhóm cùng nhau tìm hiểu đề tài, đưa ra phát biểu bài toán, mục đích, yêu cầu, đối tượng, phạm
vi nghiên cứu, phương pháp nghiên cứu
2 Phạm Đức Quang Tìm hiểu về chương 1 tổng quan
Phân tích thiết kế ứng dụng Làm báo cáo Word
3 Vũ Hữu Ngọc Tìm hiểu về chương 1 tổng quan
Phân tích thiết kế ứng dụng Làm PowerPoint
Trang 12PHẦN MỞ ĐẦU
1 Phát biểu bài toán
Nghe nhạc trên điện thoại là một trong các nhu cầu giải trí phổ biến của người dùng, nó giúp thư giãn và làm việc hiệu quả hơn Chương trình nghe nhạc thường được tích hợp sẵn trên điện thoại Tuy nhiên việc tự xây dựng ứng dụng phát nhạc cá nhân giúp cho người dùng có thể tùy biến giao diện máy phát nhạc, hiển thị thêm trên giao diện các thông tin về bài hát họ yêu thích, chọn lựa bài hát cần nghe một cách dễ dàng, nhanh chóng
2 Mục đích và yêu cầu của đề tài
Xây dựng được các chức năng cơ bản của một app nghe nhạc online Ứng dụng có khả năng tương thích, hiển thị được trên tất cả các thiết bị hiện tại và có thể năng cấp trong tương lai
Giao diện đẹp, dễ sử dụng, thu hút người dùng
Nắm bắt được công nghệ thiết kế ứng dụng Android bằng Java, Kotlin
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
Nghiên cứu nhu cầu sử dụng ứng dụng thực tế trên thị trường và tính cạnh tranh, tìm hiểu được nhu cầu của người dùng từ đó phát triển một
Nghiên cứu về các chức năng chính của app nghe nhạc:
Hiển thị danh sách các bài hát trong kho dữ liệu online
Hiển thị danh sách nhạc, phát nhạc và chuyển bài hát,
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết: tiến hành thu thập các tài liệu, thông
tin liên quan đến đề tài
Tổng hợp và phân tích tài liệu để đưa ra hướng phát triển ứng dụng Xây dựng và thiết kế ứng dụng trên ngôn ngữ lập trình Java, Kotlin Tham khảo các ứng dụng nghe nhạc có sẵn trên CH Play
Tìm hiểu về các công cụ lập trình và cách sử dụng
5 Những đóng góp của báo cáo
Báo cáo hoàn thành sẽ có những đóng góp chủ yếu sau đây:
Trang 13Đưa ra một app nghe nhạc offline và Publish trên kho ứng dụng: Google
play hoặc Amazon appstore
Sử dụng ngôn ngữ lập trình Java hoặc Kotlin vào xây dựng và thiết kế
ứng dụng
Trang 14CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu về hệ điều hành Android
Android là một hệ điều hành có mã nguồn mở dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng
Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google, sau này được chính Google mua lại vào năm 2005 và
hệ điều hành Android đã ra mắt vào năm 2007 Chiếc điện thoại đầu tiên chạy Android là HTC Dream được bán vào ngày 22 tháng 10 năm 2008
Chính mã nguồn mở 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 độ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 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 Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày 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 Play (cửa hàng ứng dụng chính của Android) ước tính khoảng 25 tỷ lượt Hiện nay con số này đã giảm xuống do sự ảnh hưởng lớn của iOS từ Apple và một phần nhỏ của Windows Phone, tuy nhiên Android vẫn dẫn đầu thị phần
1.1.1 Giao diện
Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử dụng cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt, chạm, kéo dãn và thu lại để xử lý các đối tượng trên màn hình
Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm khởi đầu với các thông tin chính trên thiết bị, tương tự như khái niệm desktop trên máy tính để bàn Màn hính chính Android thường gồm nhiều biểu tượng (icon) và tiện ích (widget) Giao diện màn hình chính của Android có thể tùy chỉnh ở mức cao, cho phép người dùng tự do sắp đặt hình dáng cũng như hành vi của thiết bị theo sở thích
1.1.2 Ưu và nhược điểm
Ưu điểm:
Là hệ điều hành có mã nguồn mở nên khả năng tuỳ biến cao, có thể tùy ý chỉnh sửa mà không có sự can thiệp hay cấm cản từ Google
Đa dạng sản phẩm, rất nhiều hãng điện thoại, thiết bị công nghệ đã
ưu ái chọn Android cho thiết bị của họ, giá cả thì hợp lý từ bình dân đến cao cấp
Trang 15Kho ứng dụng Google Play đồ sộ
Thân thiện và dễ sử dụng
Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao
Có thể mở rộng bộ nhớ bằng thẻ nhớ
Nhược điểm:
Nhiều ứng dụng chạy ngầm làm chậm máy
Dễ nhiễm phần mềm độc hại và virus Do tính chất mã nguồn mở, nhiều phần mềm không được kiểm soát có chất lượng không tốt hoặc lỗi bảo mật vẫn được sử dụng
Kho ứng dụng quá nhiều dẫn đến khó kiểm soát chất lượng, thiếu các ứng dụng thật sự tốt
Cập nhật không tự động với tất cả thiết bị Khi một phiên bản hệ điều hành mới ra mắt, không phải tất cả sản phẩm đều được cập nhật, thậm chí nếu muốn trải nghiệm bạn thường xuyên phải mua mới thiết bị
1.2 Kiến trúc của Android
Android là một mã nguồn mở, phần mềm dựa trên Linux được tạo ra cho nhiều loại thiết bị và kiểu dáng khác nhau Kiến trúc của hệ điều hành Android bao gồm 5 phần: Nhân Linux, thời gian chạy Android, thư viện C/C++ gốc, khung API Java, ứng dụng hệ thống
Trang 16Hình 1 1 Kiến trúc của hệ điều hành Android
1.2.1 Lớp Linux Kernel
Linux Kernel là lớp thấp nhất Nó cung cấp các chức năng cơ bản như quản lý tiến trình, quản lý bộ nhớ, quản lý thiết bị như: Camera, bàn phím, màn hình, … Ngoài ra, nó còn quản lý mạng, driver của các thiết bị, điều này gỡ bỏ
sự khó khăn về giao tiếp với các thiết bị ngoại vi
Nền tảng của kiến trúc hệ điều hành Android là nhân Linux Bằng cách
sử dụng nhân Linux, Android có thể tận dụng các tính năng bảo mật chính và cho phép các nhà sản xuất thiết bị phát triển trình điều khiển phần cứng
1.2.2 Lớp Libraries
Phía trên Linux Kernel là tập hợp các bộ thư viện mã nguồn mở
WebKit, bộ thư viện nổi tiếng libc, cơ sở dữ liệu SQLite hữu ích cho việc lưu trữ và chia sẻ dữ liệu, bộ thư viện thể phát, ghi âm về âm thanh, hoặc video Thư viện SSL chịu trách nhiệm cho bảo mật Internet
Trang 17Máy ảo Dalvik VM sử dụng các tính năng cốt lõi của Linux như quản lý
bộ nhớ, đa luồng, mà thực chất là bên trong ngôn ngữ Java Máy ảo Dalvik cho phép tất cả các ứng dụng Android chạy trong tiến trình riêng của nó
Android Runtime cũng cung cấp bộ thư viện cốt lõi, cho phép các lập trình viên Android sử dụng để viết các ứng dụng Android
1.2.4 Lớp Application Framework
Lớp Application Framework cung cấp nhiều dịch vụ cấp cao hơn cho các ứng dụng trong các lớp Java Các lập trình viên cũng được phép sử dụng các dịch vụ này trong các ứng dụng của họ
Application Framework bao gồm các dịch vụ chính sau:
Activity Manager: Điều khiển các khía cạnh của vòng đời ứng dụng
Contacts Books, Browser, Games, …
Android đi kèm với một tập hợp các ứng dụng cốt lõi cho email, nhắn tin SMS, lịch, trình duyệt internet, danh bạ… Các ứng dụng đi kèm với nền tảng không có trạng thái đặc biệt Vì vậy, ứng dụng của bên thứ ba có thể trở
thành trình duyệt web mặc định của người dùng, trình nhắn tin SMS hoặc thậm chí là bàn phím mặc định của người dùng
1.3 Giới thiệu về Android Strudio
Android Studio là một trong những môi trường phát triển dạng tích hợp dành cho nền tảng Android với các chức năng chính như: Thiết kế các giao diện cho người dùng, thực hiện thay đổi sản phẩm trong thời gian thực,… Bởi
vì đây là một phần mềm hoàn toàn miễn phí nên bạn có thể tải về cũng như cho phép bạn có thể triển khai code thành một ứng dụng trên Android vô cùng
Trang 18duy nhất (file này dùng để người dùng cài đặt trên điện thoại chạy hệ điều hành android)
Trong thư mục project có một số file, thư mục được tạo ra mặc định, còn lại phần lớn sẽ được tạo ra khi cần thiệt trong quá trình phát triển ứng dụng Dưới đây là cấu trúc đầy đủ của một thư mục project:
Trang 191.4.2 Android Manifest
Mỗi một Android project thì luôn có một file AndroidManifest.xml
Manifest dùng để định nghĩa cấu trúc cũng như các metadata của ứng dụng
và các trành phần con Manifest bắt đầu bằng thẻ root <manifest> với thuộc tính package để quy ước package của project và thuộc tính
Manifest bao gồm nhiều thẻ định nghĩa các thành phần của ứng dụng Dưới đây là một số thẻ sử dụng trong ứng dụng:
<uses-permission
android:name="android.permission.INTERNET"></uses-permission>
1.5 Các khối chính cấu thành nên ứng dụng android
1.5.1 Activity
Hiểu một cách đơn giản thì Activity tương tự như khái niệm Window trong
hệ điều hành Windows Khi khởi động 1 ứng dụng thì ba giờ cũng có một Activity được gọi, hiển thị màn hình giao diện cho phép người dùng tương tác Chẳng hạn như quay số điện thoại, chụp hình, gửi email…
1.5.2 Service
Thành phần chạy ẩn của androidd Service sử dụng để update dữ liệu, đưa ra các cảnh báo và không bao giờ hiển thị cho người dùng thấy
Ví dụ: Khi bạn yêu cầu phát 1 bài nhạc thì sẽ có 1 service chạy bên dưới
để phát nhạc Khi bạn download 1 tập tin thì sẽ có 1 service thực hiện nhiệm
Trang 20Ví dụ: khi mở 1 trang web, intent được gửi đi để tạo 1 activity mới hiển thị trang web đó
1.5.5 Broadcast Receiver
Thành phần thu nhận các intent từ bên ngoài gửi tới Ví dụ: bạn viết một chương trình thay thế cho phần gọi điện thoại mặc định của Androidd, khi đó, bạn cần 1 Broadcast Receiver để nhận các intent là các cuộc gọi đến
1.5.6 Notification
Đưa ra các cảnh báo mà không làm cho activity ngừng hoạt động
Activity, Service, Broadcast Receiver và Content Provider là những thành phần chính cấu thành nên ứng dụng Androidd, bắt buộc phải khai báo trong AndroiddManifest
1.6 Các thành phần giao diện trong Android
1.6.1 Lập trình giao diện người dùng
Việc lập trình giao diện người dùng bao hàm việc viết mã Java để phát triển giao diện Về cơ bản, nếu muốn tạo một nút lập trình, chúng ta phải khai báo biến button, tạo một phiên bản của nó, thêm nó vào một chỗ chứa và đặt các đặc tính button bất kỳ, có ý nghĩa như color, text, text size, background… Bạn cũng có thể muốn khai báo những gì mà button sẽ làm khi mà nó được click, đó là một đoạn mã khác
Mọi thứ được khai báo hoặc cũng có thể được lập trình Nhưng java cũng cho phép bạn cụ thể hóa những gì xảy ra khi button đó thực sự được click Đây
là thuận lợi chính của việc lập trình giao diện người sử dụng
1.6.2 Views và Lauyouts
Android tổ chức các thành phần UI của nó trong Layouts và Views, mỗi thứ mà nhìn thấy được chẳng hạn như button, label, textbox chúng đều là View Layouts tổ chức các Views, chẳng hạn như nhóm một button và một label lại với nhau hay một nhóm các thành phần này
Mỗi Layouts chịu trách nhiệm phân bổ khoảng trống cho mỗi thành phần con Các Layouts khác nhau sử dụng những cách tiếp cận khác nhau để bố trí các widgets con của chúng
Có một vài layouts chính mà chúng ta thường hay sử dụng nhiều hơn những layouts khác, trong bài này sử dụng như: LinearLayout,
RelativeLayout
LinearLayout
LinearLayout là một trong những layouts đơn giản và phổ biến nhất Nó chỉ đơn giản là bố trí các thành phần con của nó bên cạnh nhau, hoặc là bố trí theo chiều ngang hoặc chiều dọc
Một thuộc tính quan trọng của LinearLayout là layout_orientation Đó là
lựa chọn việc bố trí theo chiều dọc hay chiều ngang (vertical or horizontal)
FrameLayout
Trang 21FrameLayout đặt các thành phần con của nó ở phía trên của mỗi thành phần con khác để thành phần con cuối cùng của nó bao phủ hết toàn bộ thành phần con trước nó Nó giống như một bộ bài được xếp gọn gàng Cách bố trí này rất hữu ích cho các tab Ví dụ như FrameLayout cũng được sử dụng như một trình giữ chỗ cho các widgets khác mà sẽ được thêm vào chương trình tại một thời điểm nào đó
ListView
Được sử dụng để thể hiện một danh sách các thông tin theo từng ô, Mỗi ô thông thường được tải lên từ một tệp XML đã được cố định trên đó số lượng thông tin và loại thông tin cần được thể hiện
Để thể hiện được một list thông tin lên một screen thì cần phải có 3 yếu
tố chính:
Data Source: Data Source có thể là một ArrayList hoặc bất kỳ một
cấu trúc dữ liệu kiểu danh sách nào
Adapter: Adapter là một lớp trung gian giúp ánh xạ dữ liệu trong Data
Source vào đúng vị trí hiển thị trong ListView Chẳng hạn, trong Data Source có một trường name và trong ListView cũng có một TextView
để thể hiện trường name này Tuy nhiên, ListView sẽ không thể hiển thị dữ liệu trong Data Source lên được nếu như Adapter không gán
dữ liệu vào cho đối tượng hiển thị
ListView: ListView là đối tượng để hiển thị các thông tin trong Data
Source ra một cách trực quan và người dùng có thể thao tác trực tiếp trên đó
TextView
Hiển thị văn bản tới người sử dụng và cho phép người dùng tùy ý chỉnh sửa nó Một TextView là một trình soạn thảo văn bản đầy đủ, tuy nhiên lớp cơ bản được cấu hình để không cho phép chỉnh sửa Nếu muốn chỉnh sửa một văn bản nhập vào thì có thể sử dụng EditText thay vì dùng TextView để có thể chỉnh sửa được nội dung trong nó
Trang 22CHƯƠNG 2: PHÁT TRIỂN ỨNG DỤNG
2.1 Đặc tả ứng dụng
Đối với một chiếc điện thoại: trình phát nhạc là một ứng dụng rất quan trọng cho phép người dùng chạy các bài hát online mà không cần tải về máy Trong các phiên bản của Android cũng hỗ trợ một trình phát nhạc là “Music” cho phép load các bài hát trong thẻ nhớ và chạy các bài hát này Với mục đích xây dựng một ứng dụng tương tự như ứng dụng “Music” Ứng dụng nghe nhạc của em bao gồm các chức năng:
Hiển thị danh sách các bài hát trong kho dữ liệu online
Phát một bài hát trong danh sách đó
Quản lí nhạc theo thể loại, album, ca sĩ
2.2 Mục tiêu và yêu cầu của ứng dụng
Các thiết bị chạy hệ điều hành Android, có kết nối internet
Hệ điều hành Android 8 trở lên
Thông tin bài hát được hiển thị chi tiết
Các ứng dụng nghe nhạc online liên kết với các nhà quảng cáo để tăng doanh thu
Trang 232.3.2 Yêu cầu đặt ra để phát triển ứng dụng
Giao diện thân thiện, đẹp, dễ nhìn, dễ sử dụng
Thông tin bài hát rõ ràng
Các chức năng phát, dừng, chuyển bài hát, lặp lại bài hát
Kho nhạc đa dạng
2.4 Mô tả các chức năng
2.4.1 Chức năng hiển thị danh sách nhạc
Cho phép hiển thị các bài hát trong kho dữ liệu dưới dạng list Người dùng có thể phát một bài hát bất kỳ trong list đó
Khi người dùng chọn nút next, bài hát phía sau sẽ được phát
2.5 Các yêu cầu phi chức năng
Bảng 2 1 Các yêu cầu phi chức năng
1 Giao diện Giao diện hệ thống phải đơn giản, dễ sử dụng, trực
quan, thân thiện với người dùng
2 Tốc độ xử lý Ứng dụng phải xử lý nhanh chóng và chính xác
3 Tương thích Tương thích với đa phần các thiết bị Android
Trang 242.6 Sơ đồ cơ sở dữ liệu
Hình 2 1 Sơ đồ cơ sở dữ liệu
Trang 25CHƯƠNG 3: CÀI ĐẶT ỨNG DỤNG
3.1 Thư mục Project
Hình 3 1 Thư mục Project
Trang 26Hình 3 2 Thư mục Project (tiếp)
Trang 27Hình 3 3 Thư mục Project (tiếp)
Trang 28Hình 3 4 Thư mục Project (tiếp)
3.2 Layout
3.2.1 Activity_danh_sach_bai_hat.xml
Hình 3 5 Design của Activity_danh_sach_bai_hat.xml