Tải bản đầy đủ (.pdf) (67 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.95 MB, 67 trang )

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!

1


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ú

2


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

3


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

4


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

5


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ú

6


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

7


độ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( đượ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

8


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.

9


- 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ỗ trợ các định dạng phổ biến như
- MPEG4, H.264, MP3, AAC, ARM, JPG, PNG, GIF.
- Hộ trợ thoại trên nền tảng GSM
- Bluetooth , EDGE, 3G và wifi.
- Camera, GPS, la bàn và cảm biến.
Bộ công cụ phát triển ứng dụng mạnh mẽ.

1.1.2. Kiến trúc Android
Mô hình thể hiện kiến trúc của hệ điều hành Android

Hình 1.1. Kiếntrúc Android
1.1.2.1. Applications
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
10


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 noncode như hình ảnh hoặc file layout.
- 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.

11


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ộ

12


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
13


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
14


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.
Android 1.5: Cupcake
Ra mắt: ngày 30-4-2009.
Cupcake, tên mã đầu tiên áp dụng cho phiên bản Android. Cupcake mang
nhiều tính năng mới như bàn phím ảo có khả năng dự đoán từ đang gõ, từ điển
từ ngữ do người dùng đặt ra, hỗ trợ widget trên giao diện chủ, quay phim và
phát lại video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình
theo hướng sử dụng (screen rotation). Trình duyệt web trong Cupcake có thêm
khả năng sao chép/ dán (copy/paste).

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


15


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

16


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

17


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.

18


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
và tablet).
Android 4.0: Ice Cream Sandwich
Ra mắt: ngày 19-10-2011.
"Bánh kem sandwich" (ICS) là thế hệ Android được mong đợi nhất đến
nay, ra đời cùng dòng smartphone "bom tấn" Samsung Galaxy Nexus, thế hệ
smartphone đầu tiên trang bị ICS.

19


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.

20


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.

21


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.

22



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.
23


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:
xmlns:android=" />package="com.commonsware.android.search">

24


...
</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:
xmlns:android=" />package="com.commonsware.android">

25


×