1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android

67 359 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 1,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khái niệm Android 1.1.1Tổng quan về lập trình cho thiết bị di động Người lập trình ứng dụng cho thiết bị di động truyền thống luôn luôn phải nhớ trong đầu nguyên tắc "tiết kiệm tối đa

Trang 1

LỜI CẢM ƠN Sau một thời gian tìm hiểu đề tài “Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành Android”, em đã hoàn thành tiến độ dự kiến Để đạt được

kết quả này, em đã nỗ lực thực hiện và đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan tâm, ủng hộ của các thầy cô bạn bè và gia đình

Em xin chân thành cảm ơn giáo viên hướng dẫn: Th.S Hoàng Thị Cành

– Bộ môn Công nghệ phần mềm – Trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã tận tình giúp đỡ em hoàn thành đồ án tốt nghiệp này

Em xin chân thành cảm ơn các thầy cô trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng dạy và truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường

Em xin chân thành cảm ơn các thầy, cô giáo viên thuộc bộ môn Công nghệ phần mềm đã trang bị cho em những kiến thức chuyên ngành rất hữu ích

để em hoàn thành đề tài và phục vụ cho công việc của em sau này

Vì thời gian có hạn nên không thể tránh khỏi những thiếu sót, em rất mong nhận được sự đóng góp ý kiến từ thầy cô và các bạn Em xin chân thành cảm ơn!

Trang 2

LỜI CAM ĐOAN

Em xin cam đoan đồ án tự em nghiên cứu và xây dựng dựa trên các kiến thức được học trên trường và kinh nghiệm đi làm thực Cùng sự hướng dẫn của Ths Hoàng Thị Cành 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 kiến thức tài liệu tham khảo được ghi rõ trong mục tài liệu tham khảo Nếu phát hiện có bất kỳ sự gian lận nào em 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 CNTT& TT không liên quan đến những vi phạm tác quyền, bản quyền do em gây ra trong quá trình thực hiện (nếu có)

Thái nguyên, ngày tháng 6 năm 2016

Sinh viên thực hiện

Nguyễn Anh Tú

Trang 3

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

MỤC LỤC 3

DANH MỤC HÌNH 5

LỜI NÓI ĐẦU 6

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 7

1.1 Khái niệm Android 7

1.2 Kiến trúc Android 10

1.2.1 Applications 10

1.2.2 Application Framework 11

1.2.3 Libraries 12

1.2.4 Android Runtime 12

1.2.5 Linux kernel 13

1.3 Lịch sử phát triển của Android qua các phiên bản 14

1.4 Phát triển ứng dụng trên Android 22

1.4.1 Ngôn ngữ lập trình 22

1.4.2 Môi trường lập trình cho Android 23

1.4.3 File AndroidManifest.xml 24

1.5 Các thành phần cơ bản của ứng dụng Android 27

1.5.1 Activity 27

1.5.2 Intent 29

1.5.3 Service 31

1.6 Multimedia Player trong Android 35

1.7 Giới thiệu về gói android.media 37

1.8 Giới thiệu class android.media.mediaplayer 39

Trang 4

CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH THIẾT KẾ HỆ THỐNG 48

2.1 Phân tích yêu cầu đề tài 48

2.1.1 Tóm tắt yêu cầu 48

2.1.2 Nội dung 48

2.1.3 Mục tiêu 48

2.2 Khảo sát hiện trạng 48

2.2.1 Các ứng dụng hiện có 48

2.3 Phân tích hệ thống 51

2.3.1 Biểu đồ Use Case 53

2.3.2 Biểu đồ trình tự 55

2.3.3 Biểu đồ cộng tác 57

2.3.4 Biểu đồ lớp 59

2.3.5 Biểu đồ hoạt động 60

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH NGHE NHẠC ONLINE 61

TRÊN HỆ ĐIỀU HÀNH ANDROID 61

3.1 Demo giao diện chương trình 61

3.2 Giao diện nghe nhạc 62

3.3 Giao diện download 63

3.4 Giao diện tùy chỉnh stereo 64

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 65

TÀI LIỆU THAM KHẢO 66

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 67

Trang 5

DANH MỤC HÌNH

Hình 1.1 Kiếntrúc Android 10

Hình 1.2 Mô hình hợp tác giữa máy ảo Dalvik và Navite code 13

Hình 1.3 Biểu đồ so sánh tốc độ của máy ảo Java giữa các phiên bản Android 22 Hình 1.4 Cấu trúc thư mục và file của một dự án Android trên eclipse 23

Hình 1.5 Khai báo tag <activity> trong file AndroidManifest.xml 28

Hình 1.6 Sử dụng Intent để trao đổi thông tin giữa hai chương trình 30

Hình 1.7 Lược đồ vòng đời của 1 Service 32

Hình 1.8 Lược đồ vòng đời của 1 activity 34

Hình 2.1 Biểu đồ Use Case tổng quan 53

Hình 2.2 Biểu đồ Use Case chức năng nghe nhạc 54

Hình 2.3 Biểu đồ Use Case chức năng Download 55

Hình 2.4 Biểu đồ tuần tự mô tả chắc năng Nghe nhac 56

Hình 2.5 Biểu đồ tuần tự mô tả chắc năng Download 57

Hình 2.6 Biểu đồ cộng tác mô tả chắc năng Nghe nhac 57

Hình 2.7 Biểu đồ cộng tác mô tả chắc năng Download 58

Hình 2.9 Biểu đồ lớp 59

Hình 2.10 Biểu đồ hoạt động 60

Hình 3.1 Hình ảnh giao diện chính ứng dụng 61

Hình 3.2 Hình ảnh giao diện nghe nhạc 62

Hình 3.3 Hình ảnh giao diện download 63

Hình 3.4 Hình ảnh giao diện tùy chỉnh stereo 64

Trang 6

LỜI NÓI ĐẦU

Đứng trước xu thế toàn cầu hoá, ngành dịch vụ Viễn thông nói chung và dịch vụ điện thoại di động nói riêng ở Việt Nam đã đạt được những thành tựu nhất định Sơ khai là một ngành với nhũng điều kiện cơ sở vật chất nghèo nàn, dịch vụ viễn thông còn rất lạc hậu Cho đến nay, ngành Viễn thông Việt nam đã hoà nhập với mạng thông tin toàn cầu, đóng góp vào GDP 0,2% năm 1991 và đến nay đã lên tới con số 10,5% Đặc biệt số lượng thuê bao dịch vụ điện thoại

di động đã thay đổi một cách nhanh chóng, từ 4.060 thuê bao năm 1993 lên tới 1.200.000 thuê bao tính đến hết tháng 3 năm 2005 Trước xu thế hội nhập ngày càng mở rộng, ngành dịch vụ Viễn thông nói chung và dịch vụ điện thoại di động nói chung đang bước vào giai đoạn cạnh tranh rất lớn Nổi lên trong giai đoạn hiện nay là công nghệ hệ điều hành di động và nổi bật như một ngôi sao mới là hệ điều hành Android Hệ điều hành Android 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, được nhà phát triển bởi hãng công nghệ rất nổi tiếng hiện nay

là Google hậu thuẫn Android 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, được nhiều người ưa chuộng nhất

Vì vậy em đã quyết định chọn đề tài “Xây dựng ứng dụng nghe nhạc trực tuyến trên hệ điều hành Android” cho đợt đồ án tốt nghiệp này Trong

quá trình triển khai đề tài em tập trung tìm hiểu về hệ điều hành Android và nền tảng phát triển phần mềm trên Android từ đó xây chương trình ứng dụng

Em xin chân thành cảm ơn cô giáo Hoàng Thị Cành trong thời gian qua đã hướng dẫn tận tình để em có thể hoàn thành bài báo cáo đồ án tốt nghiệp này

Thái Nguyên, tháng 5 năm 2016

Sinh viên

Nguyễn Anh Tú

Trang 7

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Khái niệm Android

1.1.1Tổng quan về lập trình cho thiết bị di động

Người lập trình ứng dụng cho thiết bị di động truyền thống luôn luôn phải nhớ trong đầu nguyên tắc "tiết kiệm tối đa tài nguyên" của thiết bị, dùng mọi cách để tối ưu hóa độ phức tạp tính toán cũng như lượng bộ nhớ cần sử dụng Tuy nhiên, cùng với sự phát triển nhanh chóng của phần cứng, các thiết bị di động hiện đại thường có cấu hình rất tốt, với chip xử lý mạnh mẽ, bộ nhớ (RAM) lớn, khiến việc lập trình cho thiết bị di dộng trở nên dễ dàng hơn bao giờ hết Các bộ kit phát triển của các hãng sản xuất hệ điều hành di động hiện nay cũng thường làm trong suốt hầu hết các tác vụ liên quan đến quản lý bộ nhớ, quản lý tiến trình Lập trình viên có thể ít quan tâm hơn đến việc tối ưu hóa sử

dụng tài nguyên và tập trung vào việc "lập trình", phát triển tính năng cho ứng

dụng như khi lập trình cho máy tính cá nhân

Tuy nhiên, đặc trưng di động của các thiết bị này cũng đem đến nhiều vấn đề mà người lập trình cần phải quan tâm như:

Tính "di động" của các thiệt bị này khiến kết nối mạng trở nên rất bất ổn

định và khó kiểm soát Các ứng dụng phụ thuộc nhiều vào kết nối Internet cần chú ý điểm này

 Lưu lượng Internet trền thiết bị di động thường có chi phí cao hơn so với Internet cố định Điều này cũng cần lưu ý khi phát triển các ứng dụng sử dụng nhiều tài nguyên Internet như phim trực tuyến, nhạc trực tuyến

 So với máy tính cá nhân, các thiết bị di động hiện đại được trang bị thêm rất nhiều tính năng giúp việc tương tác với người dùng trở nên thuận tiện (màn hình cảm ứng đa điểm, tương tác giọng nói, cử chỉ ), các loại kết nối đa dạng (NFC, GPS, 3G, 4G, bluetooth, IR ), các cảm biến phong phú giúp trải nghiệm rất đa dạng (cảm biến ánh sáng, cảm biến tiệm cận, la bàn, cám biến chuyển

Trang 8

động, gia tốc kế ) Người lập trình, tùy thuộc vào ứng dụng cụ thể, có thể sử dụng đến các tính năng đặc biệt này để đem đến cho người dùng trải nghiệm tốt nhất trên thiết bị di động của mình

Ngoài ra các hãng phát triển hệ điều hành di động đều làm ra bộ công cụ phát

triển (SDK) và môi trường phát triển tích hợp (IDE) rất thuận tiện cho việc viết

mã nguồn, biên dịch, gỡ rối, kiểm thử cũng như xuất bản phần mềm

Xét theo thị phần trên thị trường, ba hệ điều hành phổ biến nhất cho thiết bị di động hiện nay là Google's Android, Apple's iOS và Microsoft's Windows Phone Mỗi ứng dụng thành công thường được phát triển cho cả 3 hệ nền này Mỗi hệ nền đều có một chợ ứng dụng chính hãng (Google có Google Play Store, Apple

có Apple AppStore, Microsoft có Windows Phone Store) với rất nhiều khách hàng tiềm năng, giúp người phát triển có thể phân phối ứng dụng miễn phí hoặc

có phí với chi phí nhất định

Ngoài việc phát triển ứng dụng cho từng hệ điều hành như kể trên, lập trình viên

có thể lựa chọn các thư viện lập trình đa nền tảng để phát triển ứng dụng, phổ biến nhất trong các ứng dụng đa nền là các ứng dụng viết bằng ngôn ngữ Web (HTML5, CSS & Javascript) Trình duyệt web của các thiết bị di động hiện nay

có đầy đủ tính năng lẫn hiệu năng để chạy tốt các ứng dụng web hiện đại Một ứng dụng Web có thể được đặt trên máy chủ hoặc được đóng gói thành native app (ứng dụng cho từng hệ điều hành) qua một số công cụ đóng gói của các hãng thứ ba

Công cụ đóng gói ứng dụng Web cho thiết bị di động phổ biến nhất hiện nay

là PhoneGap(http://phonegap.com/), được phát triển bởi Nitobi, sau được Adobe mua lại PhoneGap cho phép lập trình viên phát triển ứng dụng di động sử dụng ngôn ngữ Web phổ biến (HTML5, CSS3 và Javascript), với các tính năng bổ sung, cho phép ứng dụng truy cập vào phần cứng của thiết bị như gia tốc kế, máy ảnh, GPS và đóng gói thành ứng dụng cho nhiều hệ điều hành khác nhau, bao gồm Android, iOS, Blackberry, BlackBerry 10, Windows Phone, Windows

Trang 9

8, Tizen, Bada Tuy nhiên, nhược điểm của các ứng dụng loại này là hiệu suất thấp (chạy không được "mượt mà" như ứng dụng native) và không đồng nhất giữa tất cả các trình duyệt Web di động (có thể chạy hoặc hiển thị khác nhau trên các hệ điều hành với các trình duyệt khác nhau)

Việc chọn hệ điều hành/thư viện nào để phát triển tùy thuộc vào nhiều yếu tố khác nhau như mục đích của ứng dụng, đối tượng sử dụng, tiềm năng của hệ điều hành, các yêu cầu kỹ thuật cụ thể cũng như thói quen và kỹ năng của lập trình viên Trong khuôn khổ giáo trình này, chúng tôi tập trung đi sâu vào việc

phát triển ứng dụng cho hệ điều hành di động phổ biến nhất hiện nay - Google's Android

Android là hệ điều hành điện thoại mã nguồn mở miễn phí do Google phát triển dựa trên nền tảng Linux Bất kì một hãng sản xuất phần cứng nào cũng đều

có thể tự do sử dụng hệ điều hành Android cho thiết bị của mình, miễn là các thiết bị phải đáp ứng được các tiêu chuẩn cơ bản do Google đặt ra

Các nhà sản xuất có thể tự do thay đổi phiên bản Android trên máy của mình một cách tự do mà không cần xin phép hay trả bất kỳ một khoản phí nào nhưng phải đảm bảo tính tương thích ngược của phiên bản chế riêngđó

Android là nền tảng cho thiết bị di động bao gồm một hệ điều hành, midware và một số ứng dụng chủ đạo Bộ công cụ AndroidSDK cung cấp các công cụ và bộ thư viện các hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử

dụng ngôn ngữ lập trìnhJava

Những tính năng mà nền tảng Android hỗ trợ :

- Applicationframework: cho phép tái sử dụng và thay thế các thành phần sẵn có trong Android

- Dalvikvirtualmachine : máy ảo Java được tối ưu hóa cho thiết bị di động

- Intergratedbrowser: trình duyệt web tích hợp được xây dựng dựa trên web kitengine

Trang 10

- Optimizedgraphics: hỗ trợ bộ thư viện 2D và 3D dựa vào đặc tả OpenGLES 1.0

- SQLite : cơ sở dữ liệu dung để lưu trữ dữ liệu có cấutrúc

Hệ điều hành Android tích hợp sẳn một số ứng dụng cơ bản như email

client, SMS, lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một số ứng

Trang 11

dụng khác Ngoài ra tầng này cũng chính là tầng chứa các ứng dụng được phát triển bằng ngôn ngữ Java

1.1.2.2 Application Framework

Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển ứng dụng mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các ứng dụng vô cùng sáng tạo và phong phú Các nhà phát triển ứng dụng được tự

do sử dụng các tính năng cao cấp của thiết bị phần cứng như: thông tin định vị địa lý, khả năng chạy dịch vụ dưới nền, thiết lập đồng hồ báo thức, thêm notification vào status bar của màn hình thiết bị…

Người phát triển ứng dụng được phép sử dụng đầy đủ bộ API được dùng trong các ứng dụng tích hợp sẳn của Android Kiến trúc ứng dụng của Android được thiết kế nhằm mục đích đơn giản hóa việc tái sử dụng các component Qua đó bất kì ứng dụng nào cũng có thể công bố các tính năng mà

nó muốn chia sẻ cho các ứng dụng khác (VD: Ứng dụng email có muốn các ứng dụng khác có thể sử dụng tính năng gởi mail của nó) Phương pháp tương

tự cho phép các thành phần có thể được thay thế bởi người sử dụng

Tầng này bao gồm một tập các services và thành phần sau:

- Một tập phong phú và có thể mở rộng bao gồm các đối tượng View được dùng để xây dựng ứng dụng như: list, grid, text box, button và thậm chí

là một trình duyệt web có thể nhúng vào ứng dụng

- Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng khác hoặc chia sẽ dữ liệu của chúng

- Resource Manager: Cung cấp khả năng truy xuất các tài nguyên code như hình ảnh hoặc file layout

non Notification Manager: Cung cấp khả năng hiển thị custom alert trên thanh status bar

- Activity Manager: Giúp quản lý vòng đời của một ứng dụng

Trang 12

1.1.2.3 Libraries

 System C library: một thể hiện được xây dựng từ BSD của bộ thư viện hệ thống C chuẩn (libc), được điều chỉnh để tối ưu hóa cho các thiết

bị chạy trên nền Linux

 Media libraries: Bộ thư viện hổ trợ trình diễn và ghi các định dạng

âm than và hình ảnh phổ biến

 Surface manager: Quản lý hiển thị nội dung 2D và 3D

 LibWebCore: Một web browser engine hiện đại được sử dụng trong trình duyệt của Android lần trong trình duyệt nhúng web view được sử dụng trong ứng dụng

 SGL: Engine hổ trợ đồ họa 2D

 3D libraries: Một thể hiện được xây dựng dựa trên các APIs của OpenGL ES Những thư viện này sử dụng các tăng tốc 3D bằng phần cứng lẫn phần mềm để tối ưu hóa hiển thị 3D

 FreeType: Bitmap and vector font rendering

 SQLite: Một DBMS nhỏ gọn và mạnh mẽ

1.1.2.4 Android Runtime

Hệ điều hành Android tích hợp sẳn một tập hợp các thư viện cốt lõi cung cấp hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java Mọi ứng dụng của Android chạy trên một tiến trình của riêng nó cùng với một thể hiện của máy ảo Dalvik Máy ảo Dalvik thực tế là một biến thể của máy ảo Java được sửa đổi, bổ sung các công nghệ đặc trưng của thiết bị di động Nó được xây dựng với mục đích làm cho các thiết bị di động có thể chạy nhiều máy ảo một cách hiệu quả Trước khi thực thi, bất kì ứng dụng Android nào cũng được convert thành file thực thi với định dạng nén Dalvik Executable (.dex) Định dạng này được thiết kế để phù hợp với các thiết bị hạn chế về bộ nhớ cũng như tốc độ xử lý Ngoài ra máy ảo Dalvik sử dụng bộ

Trang 13

nhân Linux để cung cấp các tính năng như thread, low-level memory management

1.1.2.5 Linux kernel

Hệ điều hành Android được xây dựng trên bộ nhân Linux 2.6 cho những dịch vụ hệ thống cốt lõi như: security, memory management, process management, network stack, driver model Bộ nhân này làm nhiệm vụ như một lớp trung gian kết nối phần cứng thiết bị và phần ứng dụng

Dưới đây là mô hinh hợp tác giữa máy ảo Dalvik và Navite code

Hình 1.2 Mô hình hợp tác giữa máy ảo Dalvik và Navite code

JNI: Java Native Interface (Tương tự khái niệm Application

Programming

Interface)

Java Native Interface: là một bộ framework cho phép mã lệnh viết bằng Java chạy trên máy ảo java có thể gọi hoặc được gọi bởi một ứng dụng viết bằng native code (Ứng dụng được viết cho một phần cứng cụ thể và trên một

hệ điều hành cụ thể) hoặc những bộ thư viện viết bằng C, C++ hoặc Assembly Bằng cách sử dụng JNI, Android cho phép các ứng dụng chạy trên máy

ảo Dalvik có thể sử dụng những phương thức được viết bằng các ngôn ngữ cấp thấp như: C, C++, Assembly Qua đó các nhà phát triển ứng dụng có thể xây

Trang 14

dựng ứng dụng dựa trên các bộ thư viện viết bằng C, C++, Assembly nhằm tăng tốc độ thực thi của ứng dụng hoặc sử dụng những tính năng mức thấp mà ngôn ngữ Java không hổ trợ Tuy nhiên người phát triển ứng dụng cần phải cân nhắc sự gia tăng độ phức tạp của ứng dụng khi quyết định sử dụng các bộ thư viện này

1.3 Lịch sử phát triển của Android qua các phiên bản

Android 1.0

Ra mắt: ngày 23-11-2008

HTC Dream là dòng smartphone thương mại dùng Android đầu tiên với kiểu dáng trượt kèm bàn phím vật lý Phiên bản Android 1.0 chưa được Google định hình tên mã, dù trước đó tên gọi Astro Boy hay Bender được gán cho thế

hệ đầu tiên này

Android 1.0 rất nguyên sơ, tích hợp sẵn khả năng đồng bộ dữ liệu với các dịch

vụ trực tuyến của Google như Gmail, Google Calendar và Contacts, một trình phát media, hỗ trợ Wi-Fi và Bluetooth, thanh trạng thái hiển thị các thông báo ứng dụng

và một ứng dụng chụp ảnh (camera) tuy chưa cho phép thay đổi độ phân giải và chất lượng ảnh

Android 1.1

Ra mắt: ngày 9-2-2009

Bên cạnh con số, Google rục rịch đưa hệ thống tên gọi (tên mã) vào các phiên bản Android Tuy chưa chính thức áp dụng nhưng Android 1.1 đã có tên Petit Four Không bao gồm nhiều tính năng, phiên bản này bổ sung một số chức

Trang 15

năng mới cho Google Maps hiển thị chi tiết hơn, bàn phím ảo gọi điện thoại đã

có thể hiển thị hoặc ẩn khi gọi, chương trình SMS cho phép người dùng lưu tập tin đính kèm Android 1.1 sửa một số lỗi trong Android 1.0

Ngoài ra, phiên bản này cho phép người dùng hiển thị hình ảnh trong danh

bạ, một điểm thú vị mà hầu hết người dùng điện thoại di động muốn có Màn hình chuyển đổi và hình ảnh khi khởi động máy được làm mới

Android 1.6: Donut

Ra mắt: ngày 30-9-2009

Donut khắc phục các chức năng "lỏng lẻo" trong Cupcake, mở rộng chức năng tìm kiếm bằng giọng nói và ký tự đến bookmark và danh bạ Android Market trở thành "chợ đầu mối" để người dùng tìm kiếm và xem các ứng dụng Android Ứng dụng chụp ảnh và quay phim trong Donut nhanh hơn Hệ điều

Trang 16

hành hỗ trợ màn hình có độ phân giải lớn hơn, hướng đến các thế hệ smartphone màn hình lớn

Android 2.0: Eclair

Ra mắt: ngày 26-10-2009

Chỉ sau gần một tháng ra mắt Donut (Android 1.6), Google tung ra Eclair, phiên bản được nhận định là "bước đi lớn" của hệ điều hành này

* Nhip Sống Số: Android lên ba và bước nhảy xa ngoạn mục

Eclair cải tiến rất nhiều, từ giao diện đến ứng dụng bên trong hệ thống Ứng dụng chụp ảnh tăng cường thêm chức năng zoom số (phóng to), cân bằng trắng, hỗ trợ đèn flash và các hiệu ứng màu sắc

Hệ thống hoạt động ổn định hơn, cải thiện khả năng xử lý, hỗ trợ kết nối Bluetooth tốt hơn, đặc biệt tùy chọn đồng bộ nhiều tài khoản Một điểm thuận

Trang 17

tiện được đánh giá cao lúc bấy giờ là giao diện danh bạ cho phép nhấn chọn vào một ảnh danh bạ để gọi, nhắn tin hay email đến họ Giao diện ứng dụng lịch biểu (Calendar) cũng thay đổi

Eclair là phiên bản Android đầu tiên hỗ trợ ảnh nền động (live wallpaper)

dù tùy chọn này tiêu tốn khá nhiều pin

Android 2.2: Froyo

Ra mắt: ngày 20-5-2010

Từ phiên bản 2.0 trở đi, Android dần hoàn thiện hơn Phiên bản 2.2 (Froyo) mang Adobe Flash đến Android, kéo theo hàng loạt ứng dụng và game trên nền Flash Người dùng cũng có thể xem video clip nền Flash như YouTube và "ra lệnh" thực hiện cuộc gọi qua Bluetooth

Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu thích là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành thiết bị phát sóng Wi-Fi từ kết nối 3G Tính năng này được sử dụng rất phổ biến đến ngày nay

Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD thay vì mặc định cài ngay vào bộ nhớ trong của thiết bị Điểm "đầu tiên" nữa trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số Thiết bị đầu tiên mang nhãn Froyo ra mắt thị trường là HTC Nexus One

Android 2.3: Gingerbread

Trang 18

Ra mắt ngày: 6-12-2010

Đến cuối năm 2012, Gingerbread vẫn đang "phủ sóng" trên rất nhiều thiết

bị dùng Android, chiếm đến hơn phân nửa (54%) Google hợp tác Samsung trình làng dòng smartphone đầu tiên sử dụng Gingerbread mang tên Nexus S, hỗ trợ công nghệ giao tiếp tầm gần NFC

Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép theo dõi và truy xuất đến các tập tin đã tải về máy Hệ thống này hỗ trợ nhiều camera cho các thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả hơn, tiết kiệm thời lượng pin Phiên bản này khắc phục khá nhiều lỗi từ Froyo, kèm theo một số điều chỉnh trong giao diện người dùng (UI)

Android 3.0: Honeycomb

Ra mắt: ngày 22-2-2011

Đây không chỉ là một phiên bản, mà có thể xem là một thế hệ Android đầu tiên dành riêng cho máy tính bảng (tablet), ra mắt cùng tablet Motorola XOOM

Trang 19

Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện phù hợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ xử lý đa tác vụ (multi-tasking), cho phép chuyển đổi qua lại các ứng dụng đang cùng chạy Không chỉ có bề mặt được trau chuốt, phần lõi hệ thống có các cải tiến tương thích với phần cứng như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốc phần cứng

Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất, khắc phục sự phân mảng của Android (có các phiên bản riêng dành cho smartphone

Trang 20

Nguồn: Gizmodo

Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng vào phần bên dưới giao diện chủ, tùy biến widget, dễ sắp xếp và duyệt danh sách ứng dụng hơn Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa thiết bị (Lock screen), hiện các hãng sản xuất thiết bị chỉ mới cho phép Camera có thể chọn nhanh

từ Lock screen

Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn

Android 4.1: Jelly Bean

Ra mắt: 9-7-2012

Máy tính bảng Nexus 7, sản phẩm hợp tác giữa

Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra

mắt Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả "ông lớn" Windows Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và linh hoạt Hệ thống hỗ trợ dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt web mặc định trong Android được thay thế bởi đại diện tên tuổi: Chrome, với khả năng đồng bộ dữ liệu theo tài khoản với bản Chrome trên máy tính

Trang 21

Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành cho Android, một phụ tá ảo đắc lực cho công việc sắp xếp lịch trình, tìm kiếm thông tin, xác định vị trí Rất đa năng và được xem như lời đáp trả của Google với "phụ tá ảo" Apple Siri trong iOS

Android 4.2: vẫn là Jelly Bean

Ra mắt: tháng 11-2012

Chỉ sau gần năm tháng ra mắt Android 4.1,

Google tiếp tục bồi thêm sức nặng cho Android với phiên bản 4.2 và vẫn mang tên mã Jelly Bean

Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng lướt chọn từ rất hay trong bàn phím ảo Chức năng "bom tấn" hỗ trợ nhiều

tài khoản người dùng (multi-user profile) lần đầu tiên được áp dụng trong

Android 4.2 nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năng này

Tương lai Android X

Nhiều dự đoán cho rằng thế hệ Android 5.0 kế tiếp sẽ có tên mã "Key Lime Pie" và thế hệ thiết bị Nexus mới của Google sẽ một lần nữa trở thành "đại diện đầu tiên" sở hữu nền tảng mới này Android sẽ dần xóa nhòa lằn ranh giữa hệ điều hành cho thiết bị di động và hệ điều hành cho máy tính cá nhân, giảm khác biệt phân mảnh, đem đến những chức năng thú vị hơn nữa

Trang 22

1.4 Phát triển ứng dụng trên Android

1.4.1 Ngôn ngữ lập trình

Ngôn ngữ lập trình chính thức của Android là Java Mặc dù các ứng dụng trên Android được phát triển dựa trên nền tảng Java, nhưng Android không hỗ J2ME và J2SE, là hai ngôn ngữ lập trình phổ dụng cho các thiết bị di động

Dựa trên máy ảo Java của Sun, Google đã tinh chỉnh và phát triển nên máy ảo Dalvik để biên dịch mã Java với tốc độ biên dịch nhanh hơn và nhẹ hơn Đến phiên bản Froyo 2.2, Android đã hỗ trợ Just-in-time Compiler (JIT) làm tăng tốc độ biên dịch Java lên gấp 2-5 lần so với các phiên bản trước

Hình 1.3 Biểu đồ so sánh tốc độ của máy ảo Java giữa các phiên bản Android

Bằng cách sử dụng các frameworks của hãng thứ ba (VD: PhoneGap, Titanium, ), các nhà lập trình web cũng có thể phát triển ứng dụng Android một cách dễ dàng bằng các ngôn ngữ web phổ dụng như HTML, CSS, Javascript Tuy nhiên số lượng các ứng dụng đi theo chiều hướng này chưa nhiều

Ngoài ra các ứng dụng của Android sử dụng SQLite để quản lý cơ sở dữ liệu

Trang 23

1.1.4.2 Môi trường lập trình cho Android

Android SDK bao gồm các công cụ riêng lẻ như: debugger, các thư viện, trình giả lập điện thoại Android, các tài liệu hỗ trợ và code mẫu Hiện Android cung cấp bộ công cụ này trên nhiều nền tảng hệ điều hành khác nhau (Windows, Linux, Mac, ), miễn là có sẵn Java Development Kit, Apache Ant và Python2.2 trở lên

Môi trường lập trình (IDE) chính thức của Android là Eclipse

Ứng dụng Android được đóng gói thành các file apk và đuợc lưu trong thư mục

/data/app của hệ điều hành Android.Java Development Kit (JDK) 5.0

Một số công cụ hỗ trợ lập trình Android tiêu biểu:

SQLite Manager: Là một addon của Firefox giúp quản lí cơ sở

dữ liệu

SQLite của Android

DroidDraw: Giúp thiết kế file XML giao diện ứng dụng

Balsamiq Mockups và AdobeFireworks: Giúp nhanh chóng phác

thảo ý tưởng và giao diện sơ bộ của ứng dụng

StarUML: Vẽ các lược đồ UML hỗ trợ phân tích thiết kế

Hình 1.4 Cấu trúc thư mục và file của một dự án Android trên eclipse

Trang 24

AndroidManifest.xml: file XML mô tả ứng dụng và các thành phần đuợc cung cấp bởi ứng dụng (activities, services, )

build.xml: Một file chứa mã script Ant (ant.apache.com) nhằm compile

và cài đặt ứng dụng lên máy

default.properties: file property tạo bởi script Ant trên bin/ : nơi chứa ứng dụng sau khi được compile bin/classes/ : chứa các lớp Java đã được compile

bin/classes.dex : chứa các file executable tạo bởi các lớp Java

bin/yourapp.ap_ : chứa các tài nguyên của ứng dụng, đóng gói thành 1 file zip bin/yourapp-debug.apk hay bin/yourapp-unsigned.apk : chứa chính ứng dụng Android của ta

libs/ : nơi chứa các file Java JAR ứng dụng yêu cầu (third party)

src/ : nơi chứa mã nguồn Java của ứng dụng

res/ : chứa các tài nguyên của ứng dụng, như các icons, GUI layouts, res/drawable/ : chứa file hình ảnh (PNG, JPEG, ) res/layout/ : chứa UI layout, dưới dạng XML res/menu/ : chi tiết các menu, dưới dạng XML

res/raw/ : chứa các file khác (CSV chứa thông tin account, )

res/values/ : chứa các strings, dimensions,

res/zml/ : chứa các file XML khác cần cho ứng dụng

assets/ : nơi chứa các files tĩnh (static) được yêu cầu đi kèm với ứng dụng

1.1.4.3 File AndroidManifest.xml

Là nền tảng của mọi ứng dụng Android, file AndroidManifest.xml được đặt trong thư mục root và cho biết những thành phần có trong ứng dụng của: các activities, các services, cũng như cách các thành phần ấy gắn bó với nhau Mỗi file manifest đều bắt đầu với một thẻ manifest:

<manifest

xmlns:android="http://schemas.android.com/apk/res/android"

package="com.commonsware.android.search">

Trang 25

</manifest>

Khi tạo file manifest, điều quan trọng nhất là phải cung cấp thuộc tính của package, tức tên của Java package dùng làm cơ sở cho ứng dụng của ta Sau khi đã đặt tên package, sau này khi cần ghi tên lớp trong file manifest, ta

có thể rút ngắn, chẳng hạn với lớp “com.yourapp.android.search.Someclass” ta chỉ cần ghi “.Someclass” là đủ

Các thành phần manifest khác là:

 uses-persmission: chỉ định các quyền mà ứng dụng của ta đuợc cấp

để hoạt động trôi chảy (như đã nói, các ứng dụng Android nằm dưới nhiều lớp bảo mật khác nhau)

 permission: chỉ định các quyền mà các activities hay services yêu cầu các ứng dụng khác phaỉ có mới được truy cập dữ liệu của ứng dụng của ta

 instrumentation: chỉ định phần code cần được gọi khi xảy ra những

sự kiện quan trọng (chẳng hạn khởi động activities) nhằm phục vụ việc ghi chú

(logging) và tra soát (monitoring)

 uses-library: nhằm kết nối với các thành phần có sẵn của Android (như service tra bản đồ, )

 uses-sdk: có thể có hoặc không, chỉ ra phiên bản củaAndroid mà ứng dụng này yêu cầu

 application: định nghĩa phần trung tâm của ứng dụng của file manifest

Ví dụ file AndroidManifest:

<manifest

xmlns:android="http://schemas.android.com/apk/res/android"

package="com.commonsware.android">

Trang 26

Tất nhiên, phần quan trọng của 1 file manifest chính là thành phần

application Mặc định, khi ta tạo 1 project Android mới, ta có sẵn 1 thành phần activity:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.commonsware.android.skeleton">

Trang 27

Đinh nghĩa Activity

Là thành phần tối quan trọng của bất kỳ một ứng dụng Android nào Thuật ngữ Activity chỉ một việc mà người dùng có thể thực hiện trong một ứng dụng Android Do gần như mọi activity đều tương tác với người dùng, lớp Activity đảm nhận việc tạo ra một cửa sổ (window) để người lập trình đặt lên

đó một giao diện UI với setContentView(View) Một activity có thể mang nhiều dạng khác nhau: Một cửa sổ toàn màn hình (full screen window), một cửa sổ floating (với windowsIsFloating) hay nằm lồng bên trong 1 activity khác (với ActivityGroup)

Có 2 phương thức mà gần như mọi lớp con của Activity đều phải hiện thực:

 onCreate(Bundle) - Nơi khởi tạo activity Quan trọng hơn, đây chính người lập trình gọi setContentView(int) kèm theo layout để thể hiện UI của riêng mình Đồng thời còn có findViewById(int) giúp gọi các widget (buttons, text boxes, labels, ) để dùng trong UI

 onPause() - Nơi giải quyết sự kiện người dùng rời khỏi activity Mọi

dữ liệu được người dùng tạo ra tới thời điểm này cần phải được lưu vào ContentProvider

Trang 28

Để có thể sử dụng Context.startActivity(), mọi lớp activity đều phải được khai báo với tag <activity> trong file AndroidManifest.xml

Hình 1.5 Khai báo tag <activity> trong file AndroidManifest.xml

Vòng đời của một Activity

Các activity được quản lí dưới dạng các activity stack - Out: Khi một activity mới được khởi tạo, nó sẽ được đưa lên trên cùng stack, các activity khác muốn chạy trên nền (foreground) trở lại thì cần phải chờ tới khi Activity mới này kết thúc

First-In-Last-Một Activity có 4 trạng thái:

Active hay Running: Khi một activity đang chạy trên màn hình

Paused: Khi một activity vẫn đang chạy trên màn hình nhưng đang bị

một activity trong suốt (transparent) hay không chiếm toàn màn hình hiển thị phía trên Tuy vẫn lưu trữ dữ liệu, nhưng các paused activity này sẽ bị hệ thống bắt chấm dứt khi đang thiếu bộ nhớ trầm trọng

Stopped: Khi 1 activity bị che khuất hoàn toàn bởi 1 activity khác Tuy

vẫn lưu trữ dữ liệu, nhưng các stopped activity này sẽ thường xuyên bị hệ thống bắt chấm dứt để dành chỗ cho các tiến trình khác

Trang 29

Killed hay Shut down: Khi 1 activity đang paused hay stopped, hệ

thống sẽ xóa activity ấy ra khỏi bộ nhớ

về, POST để đưa dữ liệu cho nó để thực thi một công việc nào đó Khái niệm Intent cũng tương tự, Intent là một mô tả trừu tượng của một hành động được thực thi Nó đại diện cho một hành động đi kèm với một ngữ cảnh xác định Với Intent thì có nhiều hành động và nhiều component (Một thể hiện của một class java dùng để thực thi các hành động được đặc tả trong Intent) dành cho Intent của Android hơn là so với HTTP verbs (POST, GET) và nguồn tài nguyên (hình ảnh, web page) của giao thức HTTP, tuy nhiên khái niệm vẫn tương tự nhau

Intent được sử dụng với phương thức startActivity() để mở một Activity,

và dùng với broadcastIntent để gởi nó đến bất kì BroadcastReceiver liên quan nào, và dùng với startService(Intent), bindService(Intent, ServiceConnection, int) để giao tiếp với các Service chạy dưới nền

Intent cung cấp một chức năng cho phép kết nối hai chương trình khác nhau trong quá trình thực thi (runtime) (Cung cấp khả năng cho phép hai chương trình khác nhau giao tiếp với nhau) Chức năng quan trọng và được sử dụng nhiều nhất của một Intent là mở một Activity, nơi mà nó có thểđược dùng như một vật kết nối các Activity lại với nha

Trang 30

Hình 1.6 Sử dụng Intent để trao đổi thông tin giữa hai chương trình

Thành phần chính của Intent bao gồm:

Action: Xác định hành động sẽ được thực thi, các hành động này có thể

là: ACTION_VIEW, ACTION_EDIT, ACTION_MAIN…

Data: Các dữ liệu được sử dụng để hành động (Action) thao tác trên nó, như

bản ghi về một người nào đó trong cơ sở dữ liệu chứa các contact của thiết bị

Type: Chỉ định 1 kiểudữ liệu chính xác (kiểu MIME) được mang bởi

intent Thường thì type được suy ra từ chính dữ liệu Bằng cách thiết lập thuộc tính type, bạn có thể vô hiệu hóa sự phỏng đoán kiểu dữ liệu và chỉ định rỏ một kiểu chính xác

Component: Chỉ định rõ tên của lớp thành phần (Một thể hiện của một

class java dùng để thực thi các hành động được đặc tả trong Intent) sử dụng cho Intent Thông thường thì nó được xác định bằng cách tìm kiếm thông tin trong Intent (Các thông tin như Action, data/type, và category) và nối chúngvới các component (Một thể hiện của một Class java dùng để thực thi các hành động được đặc tả trong Intent) có thể đáp ứng được các yêu cầu

sử lý của Intent

Extracts: là một đối tượng Bundle dùng để chứa các thông tin kèm

theo được dùng để cung cấp thông tin cần thiết cho component Ví dụ: Nếu có một Intent đặc tả hành động send email thì những thông tin cần chứa trong đối tượng Bundle là subject, body…

Trang 31

Intent

Resolution

Intent có 2 dạng

chính sau:

Explicit Intents: Xác định rỏ một component (Một thể hiện của một

class java dùng để thực thi các hành động được đặc tả trong Intent) (thông qua phương thức setComponen(ComponentName) hoặc setClass(Context, Class)) cung cấp lớp sẽ

thực thi các hành động được đặc tả trong Intent Thông thường thì những Intent này không chứa bất kỳ thông tin nào khác (như category, type)

mà đơn giản chỉ là cách để ứng dụng mở các Activity khác bên trong một Activity

Implicit Intents: Không chỉ định một component nào cả, thay vào đó,

chúng sẽ chứa đủ thông tin để hệ thống có thể xác định component có sẵn nào

là tốt nhất để thực thi hiệu quả cho Intent đó

1.1.5.3 Service

Định nghĩa Service

Một service là một thành phần của ứng dụng, thể hiện mong muốn ứng dụng thực hiện các hành động trong khi không tương tác với người dùng hoặc cung cấp chức năng cho các ứng dụng khác sử dụng Nói một cách đơn giản, service là các tác vụ (task) chạy ngầm dưới hệ thống nhằm thực hiện một nhiệm vụ nào đó Cũng như các đối tượng của ứng dụng khác, services chạy trên luồng (Thread) của tiến trình chính Có nghĩa là nếu service của bạn

dự định chạy các hành vi có cường độ lớn hoặc các hành vi có thể gây nghẽn mạch, nó sẽ tự sinh ra luồng (Thread) của chính nó để làm thực hiện các tác vụ được đặc tả trong Service

Cần lưu ý:

Service không phải là một tiến trình độc lập Đối tượng Service không chạy trên tiến trình (process) của riêng nó (trừ khi có một yêu cầu đặt biệt), Service chạy trên tiến trình của chương trình

Trang 32

Service không phải là một luồng (thread)

Service có chứa 2 đặc trưng cơ bản sau:

Là một chức năng để ứng dụng thông báo với hệ thống về việc mà nó muốn thực hiện ở phía dưới nền (ngay cả khi người dùng không tương tác trực tiếp tới ứng dụng) Điều này tương ứng với việc gọi phương thức Context.startservice(), nó sẽ yêu cầu hệ thống lên lịch cho service để chạy cho đến khi bị chính service hay người nào đó dừng nó lại

Là một chức năng cho phép ứng dụng để cung cấp các chức năng của nó cho các ứng dụng khác Điều đó tương ứng với việc gọi Context.bindService(), cho phép một long-standing connection được tạo ra để service có thể tương tác với nó

Vòng đời của 1 Service

Hình 1.7 Lược đồ vòng đời của 1 Service

Dựa theo hình trên, 1 service được bắt đầu bởi phương thức startService() là service dùng để thực hiện các tác vụ ngầm dưới nền, service được bắt đầu bởi

Trang 33

phương thức bindService() là service được dùng để cung cấp các chức năng cho các chương trình khác

BroadcastReceiver

Là lớp nhận về các intents

Có hai lớp broadcast quan trọng cần xét đến:

Broadcasts bình thường (Normal broadcasts): Được gửi bởi context.sendBroadcast tới các receivers hoàn toàn không theo 1 trật tự nào, dẫn tới đôi khi tồn tại cùng 1 lúc nhiều receivers khác nhau Tuy nhanh nhưng không thể trao đổi kết quả nhận về giữa cac1 receivers với nhau

Broadcasts có thứ tự (Ordered broadcasts) - Được gửi bởi Context.sendOrdered Broadcast() tới từng receiver một Như vậy, kết quả nhận về của 1 receiver có thể trở thành input của 1 receiver khác, hay có thể ngay lập tức dừng việc

Ngày đăng: 23/04/2017, 10:26

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Kiếntrúc Android  1.1.2.1. Applications - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 1.1. Kiếntrúc Android 1.1.2.1. Applications (Trang 10)
Hình 1.2.  Mô hình hợp tác giữa máy ảo Dalvik và Navite code - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 1.2. Mô hình hợp tác giữa máy ảo Dalvik và Navite code (Trang 13)
Hình 1.3. Biểu đồ so sánh tốc độ của máy ảo Java giữa các phiên bản Android - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 1.3. Biểu đồ so sánh tốc độ của máy ảo Java giữa các phiên bản Android (Trang 22)
Hình 1.6. Sử dụng Intent để trao đổi thông tin giữa hai chương trình - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 1.6. Sử dụng Intent để trao đổi thông tin giữa hai chương trình (Trang 30)
Hình 1.7.  Lược đồ vòng đời của 1 Service - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 1.7. Lược đồ vòng đời của 1 Service (Trang 32)
Hình 1.8.  Lược đồ vòng đời của 1 activity - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 1.8. Lược đồ vòng đời của 1 activity (Trang 34)
Hình 2.1: Biểu đồ Use Case tổng quan  2.2.1.1. Use Case Nghe nhac - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 2.1 Biểu đồ Use Case tổng quan 2.2.1.1. Use Case Nghe nhac (Trang 53)
Hình 2.4: Biểu đồ tuần tự mô tả chắc năng Nghe nhac - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 2.4 Biểu đồ tuần tự mô tả chắc năng Nghe nhac (Trang 56)
Hình 2.6: Biểu đồ cộng tác mô tả chắc năng Nghe nhac - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 2.6 Biểu đồ cộng tác mô tả chắc năng Nghe nhac (Trang 57)
Hình 2.7: Biểu đồ cộng tác mô tả chắc năng Download - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 2.7 Biểu đồ cộng tác mô tả chắc năng Download (Trang 58)
Hình 2.9: Biểu đồ lớp - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 2.9 Biểu đồ lớp (Trang 59)
Hình 2.10: Biểu đồ hoạt động - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 2.10 Biểu đồ hoạt động (Trang 60)
Hình 3.1: Hình ảnh giao diện chính ứng dụng - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 3.1 Hình ảnh giao diện chính ứng dụng (Trang 61)
Hình 3.2: Hình ảnh giao diện nghe nhạc - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 3.2 Hình ảnh giao diện nghe nhạc (Trang 62)
Hình 3.3: Hình ảnh giao diện download - Xây dựng ứng nghe nhạc trực tuyến trên hệ điều hành android
Hình 3.3 Hình ảnh giao diện download (Trang 63)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w