Lúc này, những người xây dựng app di động được quantâm, chú ý với cơ hội phát triển bản thân, phát triển sự nghiệp hiệu quả.Lập trình ứng dụng di động chính là việc sử dụng những ngôn ng
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN
Khoa kỹ thuật máy tính - điện tử
BÁO CÁO ĐỒ ÁN CƠ SỞ 3
TÊN ĐỀ TÀI: Xây dựng app phát nhạc online
Sinh viên thực hiện : Phạm Văn Quân
Mã sinh viên : 21CE042
Giảng viên hướng dẫn : ThS Nguyễn Đức Phước
Đà Nẵng, tháng 05 năm 2023
Trang 2LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của giảng viênhướng dẫn ThS Nguyễn Đức Phước, người đã định hướng, hướng dẫn cũngnhư hỗ trợ cho chúng em trong quá trình chuẩn bị và tiến hành để chúng em cóthể hoàn thành tốt đồ án này
Chúng em cũng xin gửi lời cảm ơn tới các thầy cô giáo, giảng viêntrong Khoa Công Nghê X Thông và Truyền Thông – ĐHĐN đã cung cấp chochúng em những kiến thức cần thiết để thực hiện đồ án này
Chúng em cũng xin gửi lời cảm ơn đến gia đình, bạn bè luôn động viêngiúp đỡ chúng em trong suốt thời gian học tập và nghiên cứu, đóng góp nhữngkinh nghiệm quý báu trong thời gian thực hiện đề tài này
Kính chúc thầy cô mạnh khỏe, công tác tốt, tiếp tục giảng dạy và đào tạothế hệ trẻ thành công
Xin chân thành cảm ơn!!
Trang 3NHẬN XÉT CỦA GIÁO VIÊN
Sinh viên đã hoàn thành được một ứng dụng Android cho mục đích nghe nhạc với những chức năng cần thiết Ứng dụng hỗ trợ nhiều giao diện như Quick Picks, Songs, Playlists, Artists, và Albums Ngoài ra ứng dụng cũng chạy nền khi ẩn app Tuy nhiên, các phần Favorites hoặc Offline vẫn chưa được thể hiện
rõ Ứng dụng có tiềm năng phát triển thêm.
Đà Nẵng, ngày 09 tháng 05 năm 2022
Giảng viên hướng dẫn.
Trang 4LỜI NÓI ĐẦU
Khi nhu cầu của người dùng tăng cao tạo cơ hội không chỉ cho các hãngsản xuất mà các những nhà lập trình di động Từ việc phát triển các ứng dụng
di động giúp việc khai thác hết những tính năng, lợi ích của thiết bị hữu ích nàytrở nên dễ dàng hơn Lúc này, những người xây dựng app di động được quantâm, chú ý với cơ hội phát triển bản thân, phát triển sự nghiệp hiệu quả.Lập trình ứng dụng di động chính là việc sử dụng những ngôn ngữ lậptrình để viết app phát triển những ứng dụng để gia tăng tới mức tốt nhất tiện íchcho thiết bị di động mà người dùng đang dùng Trong đó, hai hệ điều hành
được sử dụng phổ biến hiện nay là iOS và Android thì việc có thể thiết kế app mobile phù hợp sẽ đáp ứng tốt cho những yêu cầu, đòi hỏi thực tế của con
người Trong đó, những ứng dụng phổ biến như chat, game, từ điển, đọctruyện, tổng hợp thông tin chứng khoán, giá vàng, hay truy cập mạng xã hội,ứng dụng cho doanh nghiệp
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 ứng dụng android 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úpcho mọi người có thể thư giãn thông qua ứng dụng một cách dễ dàng
Trang 5Mục Lục
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 7
1.1 Bối cảnh của đề tài: 7
1.2 Lý do chọn đề tài: 7
1.3 Mục tiêu của đề tài: 8
1.4 Nội dung thực hiện: 8
1.4.1 Để tiếp cận được với lập trình Android 8
1.5 Các chức năng đặc trưng 9
1.5.1 Phát (gần như) mọi bài hát hoặc video từ YouTube Music: 9
1.5.2 Phát lại nền 9
1.5.3 Tìm kiếm bài hát, album, video nghệ sĩ và danh sách phát 10
1.5.4 Các chức năng khác 10
CHƯƠNG 2 CÔNG CỤ KỸ THUẬT 11
2.1 Giới thiệu chung về hệ điều hành Android: 11
2.1.1 Android khác với các hệ điều hành chạy trên thiết bị di động khác 11
2.1.2 Đặc tính mở của Android 12
2.1.3 Kiến trúc của Android 12
a) Android Platform 12
b) Tầng Linux Kernel 12
c) Native Libraries 13
d) Tầng Runtime 13
e) Tầng Application Framework 13
2.2 Môi trường phát triển ứng dụng Android studio: 15
CHƯƠNG 3 XÂY DỰNG ỨNG DỤNG 16
3.1 Giao diện người dùng 16
3.1.1 Giao diện quick picks: 16
3.1.2 Giao diện tìm kiếm: 17
3.1.3 Giao diện Songs: 18
3.1.4 Giao diện Playlits: 19
3.1.5 Giao diện Artists: 21
3.1.6 Giao diện Albums: 25
3.1.7 Giao diện phát nhạc: 25
KẾT LUẬN 27
Trang 6Mục hình ảnh
Hình 2.1 Sơ đồ kiến trúc Android 14
Hình 2.2 Android studio 15
Hình 3.1 Giao diện Quickpicks 16
Hình 3.2 Giao diện tìm kiếm 17
Hình 3.3 Giao diện Songs 18
Hình 3.4 Giao diện Playlists & Favorites 20
Hình 3.5 Giao diện tạo, xóa, đổi tên Playlists 21
Hình 3.6 Giao diện Artists 22
Hình 3.7 Tìm kiếm Artists 23
Hình 3.8 Các mục của Artists 24
Hình 3.9 Giao diện Album 25
Hình 3.10 Giao diện phát nhạc 26
Trang 7CHƯƠNG 1.TỔNG QUAN VỀ ĐỀ TÀI
1.1 Bối cảnh của đề tài:
Xã hội ngày càng phát triển, đời sống con người ngày càng được cải thiện
vì thế mà nhiều nhu cầu về giải trí của con người ngày càng phát sinh cụ thể lànghe nhạc để thư giãn đầu óc sau những giờ làm việc căng thẳng Đặc biệttrong những năm gần đây, số lượng thiết bị di động tăng cao đến mức khó tin,
đi kèm với đó là các ứng dụng di động cũng ngày càng đa dạng và ưu việt.Trên thị trường có rất nhiều ứng dụng nghe nhạc nhưng lại chưa thật sựhiệu quả và đáp ứng được nhu cầu của người dùng Các ứng dụng tốt muốnđược khai thác triệt để thì phải tốn một khoản tiền không nhỏ hàng tháng đểduy trì tài khoản VIP Việc này đối với người đi làm thì không có gì đáng kểnhưng đối với các đối tượng tuổi “teen” vẫn đang còn đi học và chưa có khảnăng tự chủ về kinh tế hoặc thu nhập chưa cao thì đó quả thực là một số tiềnlớn
Rất nhiều các bạn trẻ có đam mê sáng tác, ca hát và muốn chia sẻ các bàihát hát của mình đến người nghe nhưng lại chưa tìm được môi trường thíchhợp
1.2 Lý do chọn đề tài:
Công nghê X thông tin (CNTT) ngày càng có vai trò quan trọng trong cuô Xcsống h”ng ngày của chúng ta Viê Xc ứng dụng CNTT vào các l•nh vực trong đờisống giúp công viê Xc được tiến hành nhanh chóng và hiê Xu quả hơn Có rất nhiềucông viê Xc mới phát triển song song với sự phát triển của CNTT Mô Xt trongnhững số đó là lâ Xp trình di động, hướng đi mang lại hiê Xu quả kinh tế cao
Em chọn đề tài “Xây dựng ứng dụng android nghe nhạc online” nh”m tìmhiểu sâu hơn lập trình di động, từ đó tạo ra một ứng dụng thử nghiê Xm làm cơ sởcủng cố kiến thức và định hướng, phát triển hướng dịch vụ cho tương lai
Trang 81.3 Mục tiêu của đề tài:
Mục tiêu đề tài mục đích nh”m nghiên cứu môi trường xây dụng và pháttriển một ứng dụng nghe nhạc cụ thể
Tìm hiểu tài liệu, các mã nguồn mở và xây dựng 1 ứng dụng có đầy đủthông tin của các bài hát, cho phép người dùng dù ở bất kì đâu cũng có thể tìmkiếm, tạo playlists và nghe các bài nhạc yêu thích
Về phía nhà cung cấp nhạc, họ sẽ không cần phải thông qua các thủ tụcrườm rà mà có thể đăng tải nhạc một cách nhanh chóng và hiệu quả
1.4 Nội dung thực hiện:
Đọc xem tài liệu, tìm hiểu các mã nguồn mở cũng như tham khảo cácứng dụng hiện có trên thị trường nh”m thiết kế một giao diện phù hợp nhất vớingười dùng
Thiết kế database phù hợp với những yêu cầu về chức năng có tronggiao diện
1.4.1 Để tiếp cận được với lập trình Android
"Understanding Android" là cách mà ta tiếp cận lập trình Android và thấuhiểu kiến trúc hệ thống của nó Chúng ta có thể không cần hiểu rõ cấu trúc củamột HDH nhưng chúng ta vẫn có thể lập trình một ứng dụng trên HDH đó, đây
là điều mà nhà sản xuất muốn khi release SDK với một framework có sẵn của
họ Như chúng ta biết điều này cũng có mặt tốt và xấu Framework là một tầngcao cấp dành cho lập trình viên, nó đều có giới hạn của nó, chúng ta có thể chỉ
có thể lập trình những ứng dụng phổ biến nhưng không nên tiến tới những ứngdụng cao cấp đi sâu vào hệ thống của HDH Theo cách của mình, trước khi bắtđầu học Android, chúng ta nên nghiên cứu qua bản thân HDH Android, chúng
ta không cần phải hiểu rõ nó như thể nào, mục đích quan trọng nhất của chúng
ta là có cái nhìn chung và toàn diện nhất về Android
Trang 91.5 Các chức năng đặc trưng
1.5.1 Phát (gần như) mọi bài hát hoặc video từ YouTube Music:
ViMusic là một app nghe nhạc trực tuyến trên ứng dụng di động củaYouTube và nó cho phép người dùng duyệt qua các bài hát này, các video
âm nhạc YouTube và dựa trên sở thích của bạn bao gồm là thể loại , danhsách phát và đề xuất
Ứng dụng cho phép người dùng nghe tất cả các bài nhạc trên YouTube Bao gồm nhiều bài hát phát hành từ các nghệ s• chính thống và mở rộng đến bất
kỳ video nào được phân loại là âm nhạc trên YouTube
Ưu điểm đầu tiên phải nhắc đến của ứng dụng này đó là nó không bao gồmcác quảng cáo, các bạn sẽ không bao giờ phải nghe những kiểu bài thuốcgia truyền 3 đời 4 đời nữa và người dùng có thể tải bài hát để phát lại ngoạituyến, khi mà mình đã tải về máy rồi thì nó sẽ đỡ cái dung lượng 4G haywi-fi
1.5.2 Phát lại nền
Khi dùng ứng dụng ViMusic, bạn có thể làm chủ trải nghiệm nghe nhạc củamình b”ng tính năng phát ngẫu nhiên một danh sách phát hoặc phát lặp lạimột bài hát Lưu trữ các đoạn âm thanh bài hát để phát lại ngoại tuyến Ứngdụng sẽ tự động tải nội dung xuống dựa trên nhật ký nghe của bạn
Trang 10Hình 1.5 Giao diện chạy nền
1.5.3 Tìm kiếm bài hát, album, video nghệ sĩ và danh sách phát.
Với chức năng gần giống với nền tảng Youtube bạn có thể tìm kiếm từ khóa
về sản phẩm âm nhạc, nghệ s•, album và có thể lưu hết những thứ đó vàodanh sách phát hay mục yêu thích của bạn b”ng cách đánh dấu , tạo và nhậpplaylist.Tìm nạp, hiển thị và chỉnh sửa lời bài hát hoặc lời bài hát đượcđồng bộ hóa.App chỉ cho ra những kết quả tìm kiếm liên quan đến l•nh vực
Trang 11CHƯƠNG 2 CÔNG CỤ KỸ THUẬT
2.1 Giới thiệu chung về hệ điều hành Android:
Trước hết Android là nền tảng phần mềm dựa trên mã nguồn mở Linux
OS (Kernel 2.6) cho máy di động và những phần mềm trung gian (middleware)
để hổ trợ các ứng dụng mà người sử dụng cần đến Một cách định ngh•a khôngquá chuyên môn thì có thể coi Android là tên một nền tảng mở cho thiết bị diđộng của Google (gồm hệ điều hành, middleware và một số ứng dụng cơ bản).Android sẽ đương đầu với một số hệ điều hành (viết tắt là HDH) dành cho thiết
bị di động khác đang hâm nóng thị trường như OS X (iPhone)
Có thể nói một cách nôm na r”ng Android là một HDH chạy trên thiết bị
di động, cũng giống như Windows, Linux hay Mac chạy trên máy vi tính vậy
2.1.1 Android khác với các hệ điều hành chạy trên thiết bị
di động khác
Android đã thu hút được sự chú ý của giới công nghệ khắp toàn cầu khiđứa con của Google sử dụng giấy phép mã nguồn mở Đó là một sản phẩm kếttinh từ ý tưởng của Khối Liên minh thiết bị cầm tay mở do Google dẫn đầu,gồm 34 thành viên với các công ty hàng đầu về công nghệ và di động toàn cầunhư Qualcomm, Intel, Motorola, Texas Instruments và LG Electronics, các nhà
Trang 12mạng như T-Mobile, Sprint Nextel, NTT DoCoMo và China Mobile Các nhàphát triển có thể sử dụng miễn phí bộ Kit Android Software Development đểxây dựng các ứng dụng của mình
2.1.2 Đặc tính mở của Android
Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứngdụng di động hấp dẫn, tận dụng tất cả tính năng một chiếc điện thoại đã cungcấp Nó được xây dựng để được thực sự mở Ví dụ, một ứng dụng có thể gọibất kỳ chức năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn vănbản, hoặc b”ng cách sử dụng máy ảnh, cho phép các nhà phát triển để tạo ranhiều ứng dụng phong phú hơn cho người dùng (điều này hiện chưa có trênWindows Phone 7 của Microsoft) Android được xây dựng trên mã nguồn
mở Linux Kernel Hơn nữa, nó sử dụng một máy ảo tuỳ chỉnh được thiết kế đểtối ưu hóa bộ nhớ và tài nguyên phần cứng trong một môi trường di động.Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứngdụng của bên thứ ba Tất cả có thể được xây dựng để có thể truy cập b”ng khảnăng của một thiết bị di động cung cấp cho người sử dụng với một dải rộng cácứng dụng và dịch vụ Với các thiết bị xây dựng trên Android, người dùng cóthể hoàn toàn thích ứng với điện thoại đến lợi ích của họ Với Android, mộtnhà phát triển có thể xây dựng một ứng dụng cho phép người dùng xem vị trícủa bạn bè của họ và được cảnh báo khi họ đang có trong vùng phụ cận cho họmột cơ hội để kết nối
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ú Ngoài ra, Androidbao gồm một tập hợp đầy đủ công cụ đã được xây dựng công phu, với việccung cấp nền tảng phát triển, với năng suất cao và cái nhìn sâu vào các ứngdụng
2.1.3 Kiến trúc của Android
a) Android Platform
Bao gồm HDH Android đầy đủ tính năng, các ứng dụng và các tầng trunggian để developer có thể mở rộng, tùy chỉnh hoặc thêm vào các component củahọ
Có 4 tầng cơ bản trong HDH Android: Application Framework, AndroidRuntime, Native Libraries, Linux Kernel
Mỗi tầng làm việc đều nhờ sự giúp đỡ của tầng bên dưới
b) Tầng Linux Kernel
Đây là nhân của HDH Android, mọi xử lý của hệ thống đều phải thôngqua tầng này Linux Kernel cung cấp các trình điều khiển thiết bị phần cứng
Trang 13(driver) như: camera, USB, Wifi, Bluetooth, Display, Power Management Android dựa trên Linux phiên bản 2.6 lựa chọn các tính năng cốt lõi như bảomật, quản lý bộ nhớ, quản lý tiến trình, mạng stack và các trình điều khiểnphần cứng Kernel hoạt động như một lớp trừu tượng giữa phần cứng và phầnmềm còn lại của hệ thống.
Surface Manager - quản lý việc hiển thị và kết hợp đồ họa 2D và 3D
LibWebCore - Android dùng lại webkit engine cho việc render trìnhduyệt mặc định của HDH Android browser và cho dạng web nhúng (nhưHTML nhúng)
SGL – 2D engine
3D libraries - Thư viện 3D dựa trên OpenGL ES 1.0 API, có nâng cấptăng tốc "hardware 3D acceleration”
FreeType - render bitmap và vector font
SQLite - quản lý database của ứng dụng
d) Tầng Runtime
Mỗi ứng dụng Android chạy trên một quá trình riêng của Dalvik VM(máy ảo) Dalvik được viết để chạy nhiều máy ảo cùng một lúc một cách hiệuquả trên cùng một thiết bị
Máy ảo Dalvik thực thi các file mang định dạng dex (Dalvik Excutable),định dạng này là định dạng đã được tối ưu hóa để chỉ chiếm một vùng nhớ vừa
đủ xài và nhỏ nhất có thể VM chạy các class (đã được compile trước đó bởi1trình biên dịch ngôn ngữ Java), sở d• VM chạy được các class này là nhờ
chương trình DX tool đã convert các class sang định dạng dex
Trang 14cập, các dịch vụ chạy nền, thiết lập hệ thống báo thức, thêm các thông báo đểcác thanh trạng thái, và nhiều, nhiều hơn nữa.
Tất cả các ứng dụng thường gồm một bộ các dịch vụ và hệ thống cơ bảnsau:
View UI dùng để xây dựng layout của ứng dụng bao gồm: list view, textfield, button, dialog, form
Content Providers cho phép các ứng dụng có thể truy cập dữ liệu từ cácứng dụng khác (như ứng dụng của ta có thể lấy thông tin Contacts củađiện thoại Android), hoặc để chia sẻ dữ liệu của riêng ứng dụng
Resource Manager cung cấp cách thức truy cập đến non-code resourcesnhư các asset, graphic, image, music, video
Notification Manager cho phép tất cả các ứng dụng hiển thị thông báocủa mình trên HDH
Activity Manager quản lý vòng đời của các ứng dụng
Ở góc nhìn của người dùng ta có thêm tầng application (là ứng dụng dochúng ta viết), sau đây là sơ đồ tổng quát như hình 1.1:
Trang 15Hình 2.1 Sơ đồ kiến trúc Android
Trang 162.2 Môi trường phát triển ứng dụng Android studio:
Android Studio là một nền tảng IDE (integrated development environment)1
dùng để phát triển các ứng dụng android, được Google release vào khoảng đầunăm 2015 thay thế cho bản Eclipse cũ Android Studio được phát triển dựa trênIntelliJ IDEA Community Edition - công cụ lập trình tốt nhất cho java, giúpcho các lập trình viên tạo ứng dụng, thực hiện các thay đổi một cách dễ dàng,bên cạnh đó có thể xem trước trong thời gian thực và thiết kế giao diện đẹphơn trước Tiếng Việt cũng đã được tích hợp trong Android Studio Đặc biệt,Android Studio cho phép người dùng Import Project từ Eclipse sang và logiclập trình cũng tương tự
Hình 2.2 Android studio