Hiện tại, Android xuất hiện hầu như trong các sản phẩm của các nhàsản xuất lớn Samsung, Sony, Htc…từ điện thoại thông minh-smart phonecho tới máy tính bảng, ti vi…Và có thể nói đây là mộ
Trang 1BÁO CÁO ĐỒ ÁN
PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG ỨNG DỤNG NGHE NHẠC ONLINE
Người hướng dẫn: Thầy Nguyễn Thanh Phước Sinh viên thực hiện: Ngô Thanh Phú – MSSV: 518H0243
Nguyễn Phúc Luân – MSSV: 518H00536 Nguyễn Hoàng Thu Ngân – MSSV: 518H0540
Nhóm : 3 Khoá : 22
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021
Trang 2hết mình, với mong muốn hoàn thành tốt những gì được giao Bên cạnh sự cố gắng củatất cả cảm thành viên, chúng em xin cảm ơn những người bạn cùng lớp đã đồng hành
và giúp đỡ trong thời gian tham gia ở lớp học, cùng với đó là chúng em xin gửi lời cảm
ơn sâu sắc đến thầy Nguyễn Thanh Phước – giảng viên phụ trách giảng dạy môn PhátTriển Ứng Dụng Di Động trường Đại học Tôn Đức Thắng, người đã tận tâm chỉ dạy vàgiúp đỡ chúng em trong suốt quá trình học tập và làm bài báo cáo Dù vậy, chúng emvẫn không khỏi còn nhiều thiếu sót Rất mong nhận được ý kiến đóng góp từ thầy và
các bạn Chúng em xin chân thành cảm ơn
Trang 3Chúng em xin cam đoan đây là công trình nghiên cứu của riêng chúng em vàđược sự hướng dẫn khoa học của thầy Nguyễn Thanh Phước Các nội dung nghiên cứu,kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trướcđây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giáđược chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu thamkhảo.
Ngoài ra, trong luận văn còn sử dụng một số nhận xét, đánh giá cũng như số liệucủa các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm
về nội dung luận văn của mình Trường đại học Tôn Đức Thắng không liên quan đến
những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP Hồ Chí Minh, ngày tháng năm
Tác giả (ký tên và ghi rõ họ tên)
Ngô Thanh Phú Nguyễn Phúc Luân Nguyễn Hoàng Thu Ngân
Trang 4_ _ _ _ _ _ _
Tp Hồ Chí Minh, ngày tháng năm
(kí và ghi họ tên)
Phần đánh giá của GV chấm bài
_ _ _ _ _ _ _
Tp Hồ Chí Minh, ngày tháng năm
(kí và ghi họ tên)
Trang 5giúp những người “sành nhạc”, người nghe nhạc nói chung có thể thưởng thức nhữngbài hát yêu thích không cần phải tải nhạc về máy, mà chỉ cần một thiết bị Android cókết nối với internet Music app được đúc kết ngắn gọn trong 4 chương như sau:
Chương 1 Giới thiệu về hệ điều hành Android
Chương 2 Lý thuyết về lập trình ứng dụng Android
Chương 3 Phân tích và thiết kế hệ thống giao di
Chương 4 Kết luận
Trang 6MỤC LỤC
DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ 3
CHƯƠNG 1 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID 4
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5
1) Tổ chức thư mục của một project android 5
1.1) Thư mục manifests 5
1.2) Thư mục java 5
1.3) Thư mục res 5
2) Các khối chính cấu thành nên ứng dụng android 6
2.1) Activity 6
2.2) Service 6
2.3) Content Provider 6
2.4) Intent 7
2.5) Broadcast Receiver 7
2.6) Notification 7
3) Các thành phần giao diện trong android 7
3.1) Lập trình giao diện người dùng 7
3.2) Views và Layouts 7
3.2.1) LinearLayout 8
3.2.2) FrameLayout 8
3.2.3) Button 8
3.2.4) ImageButton 10
3.2.5) ListView 10
3.2.6) TextView 11
CHƯƠNG 3 PHÂN TÍCH – THIẾT KẾ 12
1) Phân tích ứng dụng 12
2) Đặc tả chức năng 12
2.1) Chức năng hiển thị danh sách nhạc 12
2.2) Chức năng Seekbar 13
Trang 72.3) Chức năng Play 13
2.4) Chức năng Pause 13
2.5) Chức năng Previous 13
2.6) Chức năng Next 13
3) Thiết kế ứng dụng 13
3.1) Gói Android.media 13
3.2) Lớp MediaPlayer 14
3.3) Quyền Truy cập 15
4) Demo ứng dụng 15
CHƯƠNG 4 KẾT LUẬN 20
TÀI LIỆU THAM KHẢO 20
DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ
Trang 8DANH MỤC HÌNH
Hình 1 1 Giao diện màng hình hệ điều dành Android 4
Hình 2 1 tạo button play và next sử dụng XML layout 9
Hình 2 2 ImageButton 10
Hình 2 3 Hình minh họa listView 11
Hình 3 1 Giao diện ứng dụng 16
Hình 3 2 Màn hình chính của ứng dụng 17
Hình 3 3 List nhạc của ứng dụng 18
Hình 3 4 Giao diện chính của ứng dụng khi đang phát một bài hát 19
CHƯƠNG 1 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID
Trang 9Android là hệ điều hành di động phổ biến nhất hiện tại, cũng như phát triển nhanh
nhất Do vậy nó có, mặc dù song hành cũng nó còn có các hệ điều hành khác như
IOS hay là Winphone
Hình 1 1 Giao diện màng hình hệ điều dành Android
Lịch sử của Android:
- Ra đời vào vào năm 2005, là một phần của chiến lược không gian mobile
- Là hệ điều hành nhân Linux và sau đó được goolge mua lại và đưaAndroid trở thành một hệ điều hành mã nguồn mở Có nghĩa là bạn có thểdownload mã nguồn Android và phục vụ cho những mục đích riêng củamình Hiện tại, Android xuất hiện hầu như trong các sản phẩm của các nhàsản xuất lớn Samsung, Sony, Htc…từ điện thoại thông minh-smart phonecho tới máy tính bảng, ti vi…Và có thể nói đây là một trong những nguyênnhân để nó phát triển mạnh tới vậy cũng là tiềm năng lớn cho các lập trìnhviên với hệ điều hành này
Trang 10- 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
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
1) Tổ chức thư mục của một project android
1.1) Thư mục manifests
Thư mục này chứa file AndroidManifest.xml.
Trong bất kì một project Android nào khi tạo ra đều có mộtfile AndroidManifest.xml, file này được dùng để khai báo với hệ điềuhành các Activity (hay màn hình) sử dụng, các permission (cấp quyền ứngdụng ví dụ như: gọi điện, gửi tin nhắn hay đọc danh bạ …) cũng nhưcác theme cho ứng dụng Đồng thời nó cũng chứa thông tin về phiên bản
SDK cũng như Activity sẽ chạy đầu tiên File này được tự động sinh ra khi
tạo một Android project Trong file manifest bao giờ cũng có 3 thành phầnchính đó là: application, permission và version
Trang 11 layout: thư mục này chứa các file.xml, là các file giao diện của Activity vàcác file giao diện mà chúng ta tạo riêng.
mipmap: thư mục này chưa các icon của ứng dụng và mỗi icon sẽ có nhiều
file với nhiều độ phân giải khác nhau
values: thư mục này chưa các file định nghĩa những giá trị được sử dụng
trong ứng dụng của bạn đó là: colors.xml, dimens.xml,
strings.xml styles.xml,
colors.xml : file này sẽ định nghĩa các màu sắc trong ứng dụng.
dimens.xml : file này sẽ định nghĩa về các khoảng cách toán học trong ứng
dụng
strings.xml : file này sẽ định nghĩa về các chuỗi sử trong ứng dụng.
styles.xml : file này định nghĩa theme cho ứng dụng
2) Các khối chính cấu thành nên ứng dụng android
2.1) Activity
- 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ì bao giờ cũng có một Activity được gọi, hiểnthị màn hình giao diện cho phép người dùng tương tác
Trang 12- Đư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ầnchính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong
AndroidManifest.
3) Các thành phần giao diện trong android
3.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áttriể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ảikhai 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ỳ 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ó đượcclick, đó 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ũngcho 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
Trang 133.2) Views và Layouts
- Android tổ chức các thành phần UI của nó trong Layouts và Views, mỗithứ 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ộtlabel 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ầncon 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ơnnhững layouts khác, trong bài này sử dụng như: LinearLayout,RelativeLayout
3.2.1) LinearLayout
- LinearLayout trong Android là một view group, sắp xếp các view con(EditText, Button…) nằm trong nó theo chiều ngang hoặc chiều dọc dựa vàothuộc tính android:orientation
3.2.2) FrameLayout
- FrameLayout trong Android là một view group thuộc loại layout đơn giản,
được sử dụng để khoanh vùng một khu vực nào đó để hiển thị duy nhất mộtview con Tuy nhiên bạn cũng có thể sử dụng nhiều view convào FrameLayout với thuộc tính android:layout_gravity
3.2.3) Button
Trang 14- Button đại diện cho một widget nút nhấn Push-button có thể được nhấnhoặc clicked bởi người sử dụng để thực hiện một hành động.
Hình 2 1 tạo button play và next sử dụng XML layout
- Sử dụng button trong activity như sau:
public class MyActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.content_layout_id);
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Trang 15- ImageButton là cách sử dụng một hình ảnh như một nút bấm Theo mặc
định nó trông giống như một Button bình thường có background chuẩn
- Hình ảnh trên mặt của nút được xác định bằng thuộc tính android:src trongthành phần XML hoặc bởi phương thức setImageResource(int)
Hình 2 2 ImageButton
3.2.5) 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ượngthô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: 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: 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, trongData Source có một trường name và trong ListView cũng có mộtTextView để thể hiện trường name này Tuy nhiên, ListView sẽ
Trang 16khô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: 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đó
Hình 2 3 Hình minh họa listView
Trang 17có thể chỉnh sửa được nội dung trong nó
CHƯƠNG 3 PHÂN TÍCH – THIẾT KẾ
1) Phân tích ứng dụng
1.1) Đặc tả ứng dụng
- Music App là một ứng dụng nghe nhạc tiện lợi cho phép người dùng nghecác bài hát online mà không cần mất thời gian tải về máy Trong các phiên bảncủa Android cũng hỗ trợ một trình phát nhạc là “Music” cho phép load các bàihát trong thẻ nhớ và chạy các bài hát này Music App cũng là một ứng dụngtương tự và bao gồm các chức năng:
Hiển thị danh sách các bài hát, các ca sĩ 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, ca sĩ
Chạy một bài hát được mặc định sẵn trong một URL
Trang 182) Đặc tả chức năng
2.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 đó
- Cách hoạt động:
- Load các đường link được khai báo sẵn trong item (Item.java)
- Hiển thị danh sách bài hát với tên bài hát, thời gian và tên ca sĩ
- Người dùng có thể chọn bài hát bất kì để nghe
Trang 193.1) Gói Android.media
- Cung cấp các lớp để quản lý các giao diện media về âm thanh và video.Các API media được sử dụng để chạy và trong một số trường hợp dùng đểghi âm lại file media
- Android hỗ trợ đầu ra cho audio và music thông qua lớp MediaPlayer Nó
có thể dùng để điều khiển việc chạy phát các audio và video
3.2) Lớp MediaPlayer
Trang 20- Khi đối tượng MediaPlayer vừa được tạo bằng lệnh new, lúc đó nó ở trongtrạng thái Idle và sau khi gọi phương thức release, nó ở trong trạng thái
End Giữa hai trạng thái này là vòng đời của đối tượng MediaPlayer.
- Việc gọi phương thức setDataSource(String) là để chuyển đối tượng
MediaPlayer trong trạng thái Idle sang trạng thái Initialized.
- Để bắt đầu việc phát lại, phương thức start() phải được gọi Sau khi gọithành công start(), đối tượng MediaPlayer ở trong trạng thái Started Phươngthức isPlaying() có thể được gọi để kiểm tra xem đối tượng MediaPlayer có
ở trong trạng thái Started hay không
- Việc phát lại có thể tạm dừng, dừng hẳn, và vị trí phát lại hiện thời có thểđược điều chỉnh Việc phát lại có thể tạm dừng thông qua phương thứcpaused() Khi gọi phương thức paused() trả về, đối tượng MediaPlayer đivào trạng thái Paused Chú ý rằng việc chuyển từ trạng thái Started sangtrạng thái Paused và sự cố xảy ra không đồng bộ trong máy nghe nhạc Nó
có thể cần một chút thời gian trước khi trạng thái được cập nhật trong việcgọi phương thức isPlaying() và có thể là một vài giây trong trường hợp cậpnhật nội dung một cách trực tiếp
- Gọi phương thức stop() để dừng lại và chuyển MediaPlayer từ trong trạngthái Started, Paused sang trạng thái Stopped
- Gọi phương thức seekTo() để điều chỉnh vị trí phát lại.
Õ Mặc dù việc gọi phương thức không đồng bộ seekTo(int) trả về theo đúng
cách Thực tế thì hoạt động chuyển động có thể mất một lúc để kết thúc
Trang 21Õ Phương thức seekTo(int) cũng được gọi trong trạng thái khác chẳng hạn như Prepared Paused, , và PlaybackCompleted.
Õ Hơn nữa, thực tế thì vị trí phát lại hiện thời có thể được đưa ra với việc gọi
<uses-permission android:name="android.permission.INTERNET" />
4) Demo ứng dụng
Trang 22Hình 3 1 Giao diện ứng dụng
Trang 23Hình 3 2 List nhạc của ứng dụng
Trang 24Hình 3 3 Giao diện chính khi phát một bài hát
Trang 25CHƯƠNG 4 KẾT LUẬN
Android chiếm 87,7% thị phần điện thoại thông minh trên toàn thế giới vàothời điểm quý 2 năm 2017, với tổng cộng 2 tỷ thiết bị đã được kích hoạt và 1,3triệu lượt kích hoạt mỗi ngày Sự thành công của hệ điều hành cũng khiến nó trởthành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cáigọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ Đồ án “Xâydựng ứng dụng nghe nhạc online trên nền hệ điều hành Android” tuy không phải làmột đề tài nổi bật nhưng ứng dụng này khá phổ biến trong các điện thoại ngày nay.Qua quá trình làm đề tài lần này đã giúp nhóm em có thêm kiến thức về Androidđồng thời nắm được căn bản lập trình ứng dụng Android
Kết quả đạt được: tìm hiểu được cơ bản về hệ điều hành Android và thựchiện xây dựng demo ứng dụng nghe nhạc sử dụng ngôn ngữ lập trình Java trên nềntảng Android
Hạn chế: ứng dụng còn đơn giản và chỉ hỗ trợ chạy được những file có sẵntrên kho dữ liệu
Hướng phát triển: khắc phục các hạn chế ở trên, tạo ra một ứng dụng hoànchỉnh cả về giao diện và chức năng, chạy được trên máy điện thoại thật đồngthời bổ sung thêm nhiều chức năng hơn nữa như tìm kiếm bài hát trong danhsách nhạc,…