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

Khoá luận tốt nghiệp xây dựng phần mềm xem video trên android bằng ngôn ngữ java

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.77 MB, 49 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN

ĐỖ THANH HIỀN

XÂY DỰNG PHẦN MỀM XEM VIDEO
TRÊN ANDROID BẰNG NGÔN NGỮ JAVA
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Sư phạm Tin học

HÀ NỘI, 2019


TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN

ĐỖ THANH HIỀN

XÂY DỰNG PHẦN MỀM XEM VIDEO
TRÊN ANDROID BẰNG NGÔN NGỮ JAVA
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Sư phạm Tin học
Người hướng dẫn khoa học

PGS.TS. Trịnh Đình Thắng

HÀ NỘI, 2019


LỜI CẢM ƠN
Hoàn thành khóa luận này em xin chân thành cảm ơn các thầy, cô giáo


trường Đại học Sư phạm Hà Nội 2 đã tạo điều kiện tốt nhất cho em trong suốt
quá trình học tập và nghiên cứu.
Em xin bày tỏ lòng biết ơn sâu sắc đến PGS.TS Trịnh Đình Thắng –
người hướng dẫn khoa học, đã tận tình hướng dẫn em trong suốt quá trình học
tập, nghiên cứu đề tài. Đồng thời em xin gửi lời cảm ơn chân thành nhất tới
các thầy cô giáo Viện Công nghệ Thông tin đã giúp đỡ để em hoàn thành
khóa luận này. Chúc Viện Công nghệ thông tin sẽ ngày càng một vững mạnh,
khang trang, góp phần to lớn trong sự nghiệp đào tạo chuyên nghiệp của
trường Đại học Sư phạm Hà Nội 2.
Mặc dù đã cố gắng trong quá trình thực hiện nhưng khóa luận không
tránh khỏi những sai sót. Em mong nhận được sự góp ý chân thành của quý
thầy cô và các bạn để đề tài của em được hoàn thiện.
Em xin trân trọng cảm ơn!
Hà Nội, tháng 5 năm 2019
Sinh viên thực hiện

Đỗ Thanh Hiền


LỜI CAM ĐOAN
Em xin cam đoan toàn bộ nội dung trình bày trong bản khóa luận này là
kết quả tìm hiểu và nghiên cứu của riêng em, đây là công trình nghiên cứu của
em dưới sự hướng dẫn của PGS.TS Trịnh Đình Thắng. Các số liệu, kết quả
nêu trong khóa luận là trung thực, rõ ràng. Em cũng xin cam đoan rằng mọi
sự giúp đỡ cho việc thực hiện khóa luận này được chỉ rõ nguồn gốc. Em xin
chịu hoàn toàn trách nhiệm với những nội dung được viết trong khóa luận này.
Sinh viên thực hiện

Đỗ Thanh Hiền



DANH MỤC BẢNG
Bảng 1.1. Các kiểu dữ liệu trong Java ............................................................ 15
Bảng 1.2. Các kiểu toán tử trong Java ............................................................ 16
Bảng 1.3. Lớp bao kiểu dữ liệu cơ sở ............................................................. 20
Bảng 2.1 Danh sách các Usecase .................................................................... 27


DANH MỤC HÌNH
Hình 1.1 Các phiên bản hệ điều hành Android ...................................................... 4
Hình 1.2. Bối cảnh dữ liệu toàn cầu - Nguồn: WeAreSocial. ................................ 5
Hình 1.3. Chỉ số về Internet trên di động tại Việt Nam năm 2014 ........................ 5
Hình 1.4. Kiến trúc Android .................................................................................. 8
Hình 1.5. Các kiểu dữ liệu trong ngôn ngữ Java ................................................. 14
Hình 2.1 Biểu đồ Usecase tổng quát .................................................................... 26
Hình 2.2 Biểu đồ Usecase cho chức năng Đăng nhập ......................................... 28
Hình 2.3 Biểu đồ Usecase cho chức năng Tìm kiếm ........................................... 28
Hình 2.4 Biểu đồ Usecase cho chức năng Sắp xếp .............................................. 28
Hình 2.5 Biểu đồ Usecase cho chức năng Chi tiết phim ..................................... 29
Hình 2.6 Biểu đồ Usecase cho chức năng Xem Clip bằng Youtube ................... 29
Hình 2.7 Biểu đồ Usecase cho chức năng Lưu phim yêu thích ........................... 29
Hình 2.8 Biểu đồ Usecase cho chức năng Xem phim.......................................... 30
Hình 2.9 Biểu đồ Usecase cho chức năng Đăng xuất .......................................... 30
Hình 2.10 Biểu đồ lớp chi tiết của hệ thống ........................................................ 30
Hình 3.1. Biểu đồ tuần tự chức năng Đăng nhập ................................................. 31
Hình 3.2. Biểu đồ tuần tự chức năng Tìm kiếm................................................... 32
Hình 3.4. Biểu đồ tuần tự chức năng chi tiết phim .............................................. 32
Hình 3.5. Biểu đồ tuần tự chức năng lưu phim yêu thích .................................... 33
Hình 3.6. Biểu đồ tuần tự chức năng Xem phim ................................................. 33
Hình 3.7. Biểu đồ tuần tự chức năng Đăng xuất .................................................. 34

Hình 3.8. Giao diện màn hình ứng dụng.............................................................. 34
Hình 3.9. Giao diện màn hình hệ thống ............................................................... 35
Hình 3.10. Giao diện chức năng Đăng nhập ........................................................ 36
Hình 3.11. Giao diện chức năng Đăng kí............................................................. 36
Hình 3.12. Giao diện chức năng Tìm kiếm .......................................................... 37
Hình 3.13. Giao diện chức năng Hiển thị chi tiết phim ....................................... 38
Hình 3.14. Giao diện chức năng Xem clip liên quan bằng Youtube ................... 38
Hình 3.15. Giao diện chức năng Xem phim ........................................................ 39
Hình 3.16. Giao diện chức năng Lưu trữ phim yêu thích .................................... 39
Hình 3.17. Giao diện chức năng Sắp xếp............................................................. 40
Hình 3.18. Giao diện chức năng Đăng xuất ......................................................... 40


MỤC LỤC
MỞ ĐẦU ........................................................................................................... 1
CHƯƠNG 1: CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN ......................................... 4
1.1. Hệ điều hành Android ............................................................................... 4
1.1.1.Lịch sử ra đời ........................................................................................... 4
1.1.2.Tại sao lập trình trên Android .................................................................. 5
1.1.3.Kiến trúc Android .................................................................................... 8
1.1.4.Các thành phần trong ứng dụng Android ................................................. 9
1.1.5. Lưu trữ dữ liệu trong Android .............................................................. 11
1.2. Ngôn ngữ Java......................................................................................... 13
1.2.1.Tổng quan về ngôn ngữ Java ................................................................. 13
1.2.2.Biến, hằng, kiểu dữ liệu, toán tử, biểu thức và các cấu trúc điều khiển
trong Java ........................................................................................................ 14
1.2.3.Hướng đối tượng trong Java .................................................................. 21
CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG ........................................................ 25
2.1. Xác định bài toán ..................................................................................... 25
2.2. Phân tích hệ thống .................................................................................... 26

2.2.1. Biểu đồ Usecase tổng quát .................................................................... 26
2.2.2. Biểu đồ lớp ............................................................................................ 30
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG ........................................................... 31
3.1. Thiết kế hệ thống ...................................................................................... 31
3.1.1. Biểu đồ tuần tự chức năng Đăng nhập .................................................. 31
3.1.2. Biểu đồ tuần tự chức năng Tìm kiếm .................................................... 31
3.1.3. Biểu đồ tuần tự chức năng Sắp xếp....................................................... 32
3.1.4. Biểu đồ tuần tự chức năng chi tiết phim ............................................... 32
3.1.5. Biểu đồ tuần tự chức năng lưu phim yêu thích ..................................... 33
3.1.6. Biểu đồ tuần tự chức năng Xem phim .................................................. 33
3.1.7. Biểu đồ tuần tự chức năng Đăng xuất ................................................... 34
3.2. Giới thiệu về các giao diện của phần mềm .............................................. 34
3.2.1. Giao diện danh mục hệ thống ............................................................... 34
3.2.2. Giao diện chức năng Đăng nhập ........................................................... 35
3.2.3. Giao diện chức năng Tìm kiếm ............................................................. 37
3.2.4. Giao diện chức năng Chi tiết phim ....................................................... 37
3.2.5. Giao diện chức năng Xem clip liên quan bằng Youtube ...................... 38
3.2.6. Giao diện chức năng Xem phim ........................................................... 39
3.2.7. Giao diện chức năng Lưu trữ phim yêu thích ....................................... 39
3.2.8. Giao diện chức năng Sắp xếp ................................................................ 40
3.2.9. Giao diện chức năng Đăng xuất ............................................................ 40
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................................... 41
TÀI LIỆU THAM KHẢO ............................................................................... 42


MỞ ĐẦU
1. Lý do chọn đề tài
Hiện nay, Công nghệ Thông tin là lĩnh vực nhận được nhiều sự quan
tâm từ các quốc gia, khu vực và quốc tế.. góp một phần không nhỏ vào việc
phát triển kinh tế. Điện thoại di động là một công cụ không thể thiếu trong đời

sống con người và ngày càng có sự phát triển mạnh mẽ. Cùng với đó là sự ra
đời của các hệ điều hành trên di động tên tuổi như Windows Phone của
Microsoft, iOS của Apple, Symbian của Motorola,.. Các dòng điện thoại
thông minh được tích hợp nhiều chức năng, cấu hình mạnh và kích thước
ngày càng nhỏ gọn đang dần chiếm lĩnh thị trường.
Android đang là hệ điều hành phổ biến nhất thế giới. Bởi Android có
mã nguồn mở nên cho phép các nhà phát triển và các lập trình viên được điều
chỉnh và phân phối Android một cách tự do. Android có những ưu điểm chính
như khả năng dễ làm quen, tùy biến nhanh chóng, ứng dụng hỗ trợ phong phú,
tương thích với đa cấu hình phần cứng nên Android từng bước phát triển và
ngày càng khẳng định vị trí của mình trên thị trường điện tử với các ứng dụng,
công cụ, tiện ích, game... đa dạng và thu hút người dùng.
Để từng bước tìm hiểu các lĩnh vực kiến thức mới, nghiên cứu và vận
dụng các kiến thức đã học vào việc xây dựng một phần mềm xem video trên
thiết bị di động sử dụng hệ điều hành Android. Em đã chọn đề tài “ Xây dựng
phần mềm xem video trên Android bằng ngôn ngữ Java” làm khóa luận
tốt nghiệp. Đề tài này cũng là môi trường để em làm quen và vận dụng những
kiến thức đã tìm hiểu vào xây dựng một phần mềm cụ thể trên thiết bị di động.
2. Mục đích nghiên cứu
Mục đích của khóa luận là xây dựng phần mềm xem video trên thiết bị
di động có cài đặt hệ điều hành Android.
3. Nhiệm vụ nghiên cứu
- Nghiên cứu, tìm hiểu hệ điều hành Android.

1


- Tìm hiểu ứng dụng của ngôn ngữ Java trên Android.
- Xây dựng phần mềm xem video trên Android.
4. Đối tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu: Phần mềm xem video.
- Phạm vi nghiên cứu: Trên thiết bị cài đặt hệ điều hành Android.
5. Ý nghĩa khoa học và thực tiễn của đề tài
- Ý nghĩa khoa học: Phần mềm này được xem là một tài liệu tham khảo
cho những ai muốn tìm hiểu ứng dụng xem video trên Android.
- Ý nghĩa thực tiễn: Là phần mềm xem video trên thiết bị di động được
cài đặt hệ điều hành Android.
6. Phương pháp nghiên cứu
a. Phương pháp nghiên cứu lý luận
Nghiên cứu qua việc đọc sách, tra cứu mạng và các tài liệu liên quan,
các phương thức, mô hình xây dựng phần mềm trên Android.
b. Phương pháp chuyên gia
Tham khảo từ những ý kiến của các chuyên gia về mô hình phân tích
và thiết kế phần mềm trên nền tảng Android để có thể thiết kế phần mềm xem
video phù hợp với yêu cầu thực tiễn. Nội dung xử lý nhanh đáp ứng được yêu
cầu ngày càng cao của người sử dụng.
c. Phương pháp thực nghiệm
Chạy thực nghiệm phần mềm trên các thiết bị di động để chỉnh sửa, đáp
ứng nhu cầu của người sử dụng.
7. Cấu trúc khóa luận
Ngoài phần mở đầu, kết luận và hướng phát triển, tài liệu tham khảo,
khóa luận gồm các chương nội dung, cụ thể như sau:

2


Chương 1: Cơ sở lý luận và thực tiễn.
Trong chương này giới thiệu các kiến thức về hệ điều hành Android,
lịch sử ra đời, các thành phần ứng dụng, lý do tại sao nên chọn hệ điều hành
Android và ngôn ngữ lập trình Java.

Chương 2: Phân tích hệ thống.
Ở chương này sẽ xác định bài toán, phân tích hệ thống qua các biểu đồ
usecase, biểu đồ lớp.
Chương 3: Thiết kế hệ thống.
Từ việc phân tích hệ thống ở chương 2, em ứng dụng vào để thiết kế và
xây dựng một phần mềm xem video trên Android trên thiết bị di động vào
gồm phần thiết kế, giới thiệu phần mềm và cách sử dụng các chức năng.
Do thời gian và khả năng có hạn, hơn nữa đây là lần đầu nghiên cứu
xây dựng phần mềm xem video trên Android bằng ngôn ngữ java nên khóa
luận cũng như phần mềm không thể tránh khỏi những sai sót. Rất mong nhận
được những ý kiến đóng góp của các thầy, cô giáo và bạn bè để em có thể
phát triển thêm hướng đi mới.

3


CHƯƠNG 1: CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN
1.1.

Hệ điều hành Android

1.1.1. Lịch sử ra đời
- Năm 2003, Tổng công ty Android (Android, Inc) được thành lập tại
Palo Alto, Canifornia bởi Andy Rubin, Rich Miner, Nick Sears và Chris
White
- Năm 2005, Google mua lại Android Inc và tham gia thị trường điện
thoại di động
- Tháng 9 năm 2007, Google nộp một số đơn xin cấp bằng sáng chế
trong lĩnh vực điện thoại di động
- Tháng 11 năm 2007, Hiệp hội Liên minh thiết bị cầm tay được thành

lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động và Android
cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh
- Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải
tiến hệ điều hành, bổ sung các tính năng mới.
- Các phiên bản của hệ điều hành Android:

Hình 1.1 Các phiên bản hệ điều hành Android

4


1.1.2. Tại sao lập trình trên Android
a, Xu thế phát triển của công nghệ di động
- Bối cảnh dữ liệu toàn cầu năm 2014 tại trang WeAreSocial đưa ra cho
thấy:
+ 93% dân số thế giới đăng kí sử dụng di động đang hoạt động
+ 35% tỷ lệ người kết nối Internet trên toàn cầu
+ Hơn 4 tỷ người trên thế giới hiện đang sở hữu ít nhất một chiếc điện
thoại di động, tỷ lệ sở hữu máy trung bình là 1,7 máy/người

Hình 1.2. Bối cảnh dữ liệu toàn cầu - Nguồn: WeAreSocial.
- Tại Việt Nam, Theo thống kê Cục Thương mại điện tử và công nghệ
thông tin (VECITA), Bộ Công thương.

Hình 1.3. Chỉ số về Internet trên di động tại Việt Nam năm 2014
5


- 34% tổng số dân truy cập Internet qua các thiết bị di động
- 57% dân số truy cập Internet có tham gia mua sắm online

- Một người Việt Nam truy cập Internet 5,6 giờ/ngày, 6,4 ngày/tuần
- Tổng số thời gian 36 giờ/tuần.
b, Thị trường thiết bị Android
-Trong tất cả các hệ điều hành dành cho di động hiện nay, có thể nói:
Android đã mang lại một cuộc cách mạng thật sự cho các lập trình viên. Với
các đặc điểm nổi bật như sau:
o Tính mở: Android hoàn toàn mở, một ứng dụng có thể gọi tới bất
kể một chức năng lõi của điện thoại như tạo cuộc gọi, gửi tin nhắn hay sử
dụng máy ảnh, cho phép người phát triển tạo phong phú hơn, liên kết các tính
năng cho người dùng.
o Tính ngang hàng của các ứng dụng: Với Android, không có sự
khác nhau giữa các ứng dụng điện thoại. Chúng được xây dựng để truy cập
như nhau tới một loạt các ứng dụng và dịch vụ của điện thoại. Chúng ta có thể
đổi màn hình nền, kiểu gọi điện thoại hay bất kể ứng dụng nào.
o Dễ xây dựng ứng dụng: Android cung cấp bộ thư viện giao diện
lập trình ứng dụng đồ sộ và các công cụ để viết các ứng dụng phức tạp.
Android còn bao gồm một bộ công cụ đầy đủ giúp cho việc phát triển trở nên
dễ dàng.
- Android là một nền tảng phát triển mạnh cho phép các lập trình viên,
những người chưa từng lập trình trên thiết bị di động có thể tạo ra các ứng
dụng một cách nhanh chóng và dễ dàng.
- Bắt đầu kể từ khi được thương mại hóa, ước tính có tới 850.000/ngày
thiết bị Android được kích hoạt.
- Trong quý 1/2014 có tới 53 triệu thiết bị sử dụng mã nguồn mở
Android được bán ra, chiếm tới 11% tổng số smartphone.

6


-Với xu thế phát triển công nghệ di động nhanh và mạnh như hiện nay,

thị trường thiết bị Anroid chiếm vị trí cao không chỉ ở Việt Nam mà trên toàn
thế giới, nhu cầu sử dụng các ứng dụng cho các thiết bị Android là rất lớn. Vì
vậy, nhu cầu tuyển dụng lập trình viên Android cũng rất lớn và sẽ tăng nhanh.
c. Ưu, nhược điểm của hệ điều hành Android và các hệ điều hành cùng
loại khác:
Hệ điều hành

Ưu điểm
- Google Android là nền tảng mở Hệ

Nhược điểm
điều

hành

phân

- Có một liên minh thiết bị cầm mảnh, không thống nhất
tay hậu thuẫn. Bộ công cụ phát trên các thiết bị, giới
triển phần mềm (SDK) đầy đủ, hạn về độ “mở” và
Android

hỗ trợ đa nền (Linux, Windows nhiều lỗ hổng bảo mật.
hay Mac OS) do chạy trên máy
ảo Java. - Thư viện ngày càng
hoàn thiện, dễ dàng cho người
lập trình
Có thư viện API (Application Sự có mặt của iPhone và
Programming Interface – Giao Android là hai trở ngại
diện lập trình ứng dụng) giống lớn


Windows
Phone

với

Windows

với API trên Win32, công cụ hỗ Mobile. Hai nền tảng
trợ lập trình đầy đủ với Visual này đang hoàn thiện và
Studio, điều này làm cho những được người dùng rất ưa
người phát triển trên Win32 chuộng.
không mất công tìm hiểu lại các
API và các công cụ lập trình.
Màn hình cảm ứng đa điểm: Việc

iOS

lập

trình

cho

iPhone sử dụng hoàn toàn bằng iPhone phải thực hiện
cảm ứng và không sử dụng các trên hệ điều hành Mac.

7



nút, ta có thể điều khiển trên màn Hơn thế, nếu muốn đưa
hình kể cả việc trượt của các chương trình ra máy
thật, người lập trình

ngón tay.

Bộ cảm ứng gia tốc: Phản ứng phải trả phí.
nhanh chóng của bộ cảm nhận
gia tốc thay đổi độ phân giải màn
hình.

1.1.3. Kiến trúc Android
- Có thể hiểu Android Software Stack bao gồm nhân Linux, tập các thư viện
C/C++ được truy xuất bởi tầng ứng dụng để sử dụng các dịch vụ, các bộ quản
lý thực thi và quản lý ứng dụng.
- Android Run Time – đây chính là điểm làm nên sự khác biệt giữa thiết bị
Android và thiết bị Linux. Android Run Time ngoài tăng tốc độ cho ứng dụng
còn làm nền cho tầng Application Framework kết nối đến.
- Application Framework – cung cấp các lớp cho việc tạo ra các ứng dụng.
- Application Layer – gồm các ứng dụng được tích hợp sẵn và các ứng dụng của
hãng thứ ba.

Hình 1.4. Kiến trúc Android
8


1.1.4. Các thành phần trong ứng dụng Android
- Một ứng dụng Android thường có 8 thành phần cơ bản sau:
a. Activity
- Activity đóng vai trò là một màn hình, nơi người dùng có thể tương

tác với ứng dụng, ví dụ: chụp hình, xem bản đồ, gửi mail…
- Một ứng dụng có thể có một hoặc nhiều Activity, Activity được khởi
chạy đầu tiên khi ứng dụng hoạt động được gọi là “MainActivity”.
- Activity có thể hiển thị ở chế độ toàn màn hình, hoặc ở dạng cửa sổ
với một kích thước nhất định.
- Các Activity có thể gọi đến các Activity khác, Activity được gọi sẽ
nhận được tương tác ở thời điểm đó.
b. Intent
- Intent là đối tượng mang thông điệp, cho phép tạo ra các yêu cầu hành
động giữa các thành phần trong ứng dụng, hoặc giữa các ứng dụng với nhau.
- Được sử dụng nhiều trong 3 trường hợp sau:
o Khởi động Activity.
o Khởi động Service.
o Chuyển phát thông tin cho Broadcast Receiver.
c. View
- View được sử dụng để tạo ra các điều khiển trên màn hình cho phép
nhận các tương tác từ người dùng cũng như hiển thị các thông tin cần thiết.
- View bao gồm hai dạng:
o View: các điều khiển đơn lẻ.
o ViewGroup: tập hợp nhiều điều khiển đơn lẻ.
d. Broadcast Receiver
- Broadcast Receiver cho phép truyền tải các thông báo trên phạm vi
toàn hệ thống. Không có giao diện nhưng có thể thực hiện thông báo qua
thanh trạng thái.

9


- Broadcast Receiver truyền thông báo ở hai dạng:
o Hệ thống: các thông báo được truyền trực tiếp từ hệ thống như: tắt

màn hình, pin yếu, thay đổi kết nối…
o Ứng dụng: xây dựng các truyền thông báo đến các thành phần
trong ứng dụng như: khởi động Service, tải nội dung đến ứng dụng,…
e. Service
- Service được sử dụng để thực thi các tác vụ cần nhiều thời gian, thực
hiện ở chế độ ngầm và thường không cần giao diện hiển thị.
- Service được chạy ngầm, tức ứng dụng vẫn chạy nhưng không hiển
thị giao diện tương tác.
- Một số tác vụ cần thực hiện bằng Service:
o Trình diễn các tập tin đa truyền thông như nhạc, phim,…
o Kết nối và thực hiện tải các nội dung thông qua Internet.
o Truy xuất đọc ghi tập tin.
f. Content Provider
- Content Provider xây dựng cách thức truy xuất tập hợp các dữ liệu
ứng dụng, dữ liệu có thể lưu trữ ở nhiều dạng như: SQLite, tập tin, tài nguyên
Web hoặc bất kì thư mục lưu trữ nào.
- Có thể sử dụng Content Provider để xây dựng các ứng dụng sử dụng
chung nguồn tài nguyên hoặc sử dung riêng.
- Trong Android, một số Content Provider được xây dựng sẵn:
o Danh bạ.
o Tài nguyên đa truyền thông.
o Lịch.
g. Context
- Context thuộc gói android.content (android.content.Context).

10


- Context là một lớp cơ bản chứa hầu hết thông tin về môi trường ứng
dụng của android, có nghĩa là mọi thao tác, tương tác với hệ điều hành điều

phải qua lớp này.
- Context cung cấp các phương thức để các lớp khác có thể tương tác
với hệ thống Android.
- Nó cho phép truy cập tới các nguồn tài nguyên (resources) đã được
định nghĩa và các lớp khác. Context cũng là một lớp ở mức ứng dụng
(Application level- liên quan tới hệ thống).
- Context giúp chúng ta dễ dàng truy cập và tương tác tới các tài
nguyên của hệ thống, các thông tin, các dịch vụ (services), các thông số cấu
hình, dữ liệu, danh bạ, cuộc gọi, kết nối, chế độ rung (vibrator),...
h. Notification
- Thành phần cho phép gửi các thông báo đến người dùng mà không
chiếm quá nhiều việc điều khiển của người dùng trên thiết bị.
Ví dụ, khi nhận được một tin nhắn hay một thư điện tử, thiết bị sẽ sử
dụng Notification để thông báo người dùng thông qua nhạc chuông, đèn nền,
thể hiện biểu tượng trên thanh tác vụ,…
- Notification được xây dựng cho mục đích gửi các thông báo đến
người dùng thông qua thanh trạng thái.
- Giao diện Notification không thuộc giao diện ứng dụng, nhưng có thể
tuỳ chỉnh giao diện Notification thông qua các phương thức có sẵn.
1.1.5. Lưu trữ dữ liệu trong Android
Android cung cấp một số tùy chọn hỗ trợ cho việc lưu trữ dữ liệu trong
một ứng dụng như sau:
a. Internal Storage (bộ nhớ lưu trữ bên trong)
- Mỗi ứng dụng có một thư mục lưu trữ riêng bên trong liên kết với nó
gọi là Internal Storage. Nếu muốn bảo mật dữ liệu thì nên lưu trữ dữ liệu tại
thư mục này nhưng với kích thước có giới hạn.

11



- Không thể truy cập thư mục này bởi người dùng hoặc các ứng dụng
khác được cài đặt trên thiết bị của người dùng.
b. External Storage (bộ nhớ lưu trữ bên ngoài)
- Một số thiết bị Android hỗ trợ phương tiện lưu trữ rời bên ngoài gọi là
External Storage. Không giống như bộ lưu trữ bên trong, bộ lưu trữ bên ngoài
có thể không phải lúc nào cũng có sẵn.
- External Storage có kích thước lưu trữ lớn, dễ di chuyển giữa các thiết
bị máy tính, điện thoại nhưng tính bảo mật không cao vì dữ liệu có thể được
sử dụng chung.
c. Shared Preferences
Lưu trữ dữ liệu theo các cặp KEY - VALUE giúp người dùng lưu trữ
những dữ liệu đơn giản. Dữ liệu sẽ được lưu trữ cụ thể vào bộ đệm riêng theo
ứng dụng riêng biệt, do đó để thực hiện bạn cần phải có Context hoặc Activity
của ứng dụng.
d. Content Provider
Để lưu trữ và chia sẻ dữ liệu bảo mật từ ứng dụng này sang ứng dụng
khác, bạn điều khiển truy cập tới Content Provider để sử dụng các quyền cơ
bản của hệ thống.
e. SQLite Database
- SQLite có đầy đủ các tính năng cơ bản như tính động cơ cao và nhỏ
gọn cho nên thường được tận dụng để lưu trữ một lượng lớn dữ liệu có cấu
trúc.. của một hệ quản trị cơ sở dữ liệu,
- SQLite do được tích hợp nên tốn ít bộ nhớ lúc chạy (khoảng 250kb)
như một thư viện. SQLite cung cấp dữ liệu dưới 3 dạng: Text, Integer, Real
và nó sẽ không kiểm tra ràng buộc dữ liệu được lưu.
- Ưu điểm: Cấu trúc gọn nhẹ không cần cài đặt cấu hình, mã nguồn mở,
thao tác đơn giản, đảm bảo dữ liệu được chuyển đổi đầy đủ và không gây mất
mát dữ liệu khi có lỗi phần cứng.

12



1.2.

Ngôn ngữ Java

1.2.1. Tổng quan về ngôn ngữ Java
- Java là ngôn ngữ lập trình hướng đối tượng vào giữa thập niên 90.
Chương trình được viết bằng ngôn ngữ lập trình java có thể chạy trên bất kỳ
hệ thống nào có cài máy ảo java (Java Virtual Machine).
- Ngôn ngữ lập trình Java có một số đặc điểm sau:
o Máy ảo Java (JVM - Java Virtual Machine): Tất cả các chương
trình muốn thực thi được thì phải được biên dịch ra mã máy. Máy ảo Java
chịu trách nhiệm chuyển mã java bytecode thành mã máy tương ứng.
o Thông dịch: Java vừa biên dịch vừa thông dịch. Chương trình Java
nguồn viết có đuôi *.java đầu tiên được biên dịch thành tập tin có đuôi *.class
và sau đó muốn trở thành mã máy thì chương trình sẽ được trình thông dịch
thông dịch.
o Độc lập nền: Chương trình viết bằng ngôn ngữ Java có thể chạy
trên nhiều máy tính có hệ điều hành khác nhau (Windows, Unix, Linux,…)
miễn sao ở đó có cài đặt máy ảo java (Java Virtual Machine).
o Hướng đối tượng: Java là một ngôn ngữ lập trình hướng đối tượng
hoàn toàn. Hướng đối tượng trong Java không có tính đa kế thừa (multiinheritance).
o Đa nhiệm - đa luồng (MultiTasking - Multithreading): Java hỗ trợ
lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình có thể chạy
song song cùng một thời điểm và tương tác với nhau.
o Khả chuyển (Portable): Chương trình được viết bằng ngôn ngữ
Java chỉ cần chạy được trên máy ảo Java là có thể chạy được trên bất kỳ máy
tính.
o Hỗ trợ mạnh cho việc phát triển ứng dụng: Sự phát triển mạnh mẽ

công nghệ Java cung cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ
cho việc phát triển nhiều loại hình ứng dụng khác nhau cụ thể như: J2ME

13


(Java 2 Micro Edition) hỗ trợ phát triển các ứng dụng trên các thiết bị di động,
không dây,…
1.2.2. Biến, hằng, kiểu dữ liệu, toán tử, biểu thức và các cấu trúc
điều khiển trong Java
a. Biến
- Biến là vùng nhớ dùng để lưu trữ các giá trị của chương trình.
- Tên biến thường là một chuỗi ký tự, ký số.
-Tên biến phải bắt đầu bằng một chữ cái, một dấu gạch dưới hay dấu
dollar.
- Cách khai báo:
<kiểu_dữ_liệu><tên_biến>;
<kiểu_dữ_liệu><tên_biến>=<giá_trị>;
- Gán giá trị cho biến:
<tên_biến>=<giá_trị>;
b. Kiểu dữ liệu
Ngôn ngữ lập trình Java có 8 kiểu dữ liệu cơ sở: byte, short, int, long,
float, double, boolean và char.
Kiểu cơ sở

Kiểu lý luận

Kiểu ký tự

Boolean


Char

Kiểu số

Kiểu nguyên

Byte

Short

Int

Long

Kiểu thực

Float

Hình 1.5. Các kiểu dữ liệu trong ngôn ngữ Java

14

Double


Bảng 1.1. Các kiểu dữ liệu trong Java
Kích
thước


Kiểu

Giá trị min

Giá trị max

(bytes)
Boolean

Chỉ nhận giá trị true hoặc false

Giá

mặc định
false

216

Null

-256

255

0

2

-32768


32767

0

Int

4

-231

231-1

0

Long

8

-263

263-1

0L

Float

4

0.0f


Double

8

0.0d

Char

2

Byte

1

Short

trị

c. Hằng
- Hằng là một giá trị bất biến trong chương trình. Tên hằng được quy
ước giống tên biến.
- Hằng số nguyên: trường hợp giá trị hằng ở dạng Long ta thêm vào
cuối chuỗi số chữ “l” hay “L”.
Ví dụ: 1L.
- Hằng số thực: truờng hợp giá trị hằng có kiểu Float ta thêm tiếp vĩ
ngữ “f” hay “F”, còn kiểu số Double thì ta thêm tiếp vĩ ngữ “d” hay
“D”.
- Hằng Boolean: true và false.
- Hằng ký tự: là một ký tự đơn nằm giữa nằm giữa 2 dấu ngoặc đơn.
Ví dụ: ‘a’: hằng ký tự a.

- Hằng chuỗi: là tập hợp các ký tự được đặt giữa hai dấu nháy kép “”.
Một hằng chuỗi không có ký tự nào là một hằng chuỗi rỗng.
Ví dụ: “Hello Hoa”.

15


d. Lệnh, khối lệnh
- Một khối lệnh là đoạn chương trình gồm hai lệnh trở lên và được bắt
đầu bằng dấu mở ngoặc nhọn ({) và kết thúc bằng dấu đóng ngoặc
nhọn (}). Bên trong một khối lệnh có thể chứa một hay nhiều lệnh
hoặc chứa các khối lệnh khác.
{ // khối 1
{ // khối 2
lệnh 2.1
lệnh 2.2

} // kết thúc khối lệnh 2
lệnh 1.1
lệnh 1.2

} // kết thúc khối lệnh 1
{ // bắt đầu khối lệnh 3
// Các lệnh thuộc khối lệnh 3 //

} // kết thúc thối lệnh 3
e. Toán tử và biểu thức
Bảng 1.2. Các kiểu toán tử trong Java
Toán tử Ý


Toán tử

Toán tử
Ý nghĩa

quan hệ Ý nghĩa

số học

nghĩa

trên bit

+

Cộng

&

And

==

So sánh bằng

_

Trừ

|


Or

!=

So sánh khác

*

Nhân

^

Xor

>

và logic

16

So sánh lớn
hơn


Chia

/

nguyên


<<

%

Chia dư >>

++

Tăng 1

>>>

__

Giảm 1

~

Dịch trái

<

Dịch phải

>=

Dịch phải và
điền 0 bit trống


<=

So sánh nhỏ
hơn
So sánh lớn
hơn hay bằng
So sánh nhỏ
hơn hay bằng

Bù bit

- Toán tử ép kiểu:
+ Ép kiểu rộng (widening conversion): từ kiểu nhỏ sang kiểu lớn (không
mất mát thông tin).
+ Ép kiểu hẹp (narrow conversion): từ kiểu lớn sang kiểu nhỏ (có khả năng
mất mát thông tin).
+ Cú pháp: <tên_biến>=(kiểu_dữ_liệu)<tên_biến>;
Ví dụ: float fNum=2.2;
Int iCount = (int)fNum; //(iConut=2)
- Toán tử điều kiện:
+ Cú pháp: <điều_kiện>?<biểu_ thức_1>:<biểu_thức_2>
+ Nếu điều kiện đúng thì có giá trị hay thực hiện biểu thức 1, ngược
lại là biểu thức 2.
<điều_kiện> là một biểu thức logic.
<biểu_thức_1>,<biểu_thức_2> có thể là hai giá trị, hai biểu thức
hoặc hai hành động.
Ví dụ: int x=10;
int y=20
int Z=(x

17


f. Cấu trúc điều khiển
- Cấu trúc điều kiện if...else
+ Dạng 1:
If (<điều_kiện>)
{

<khối_lệnh>;

}

+ Dạng 2:
If (<điều_kiện>)
{

<khối_lệnh1>;

}

<khối_lệnh2>;

}

Else
{

- Cấu trúc switch...case
Switch (<biến>)

{
case<giá_trị_1>:
<khối_lệnh_1>;
break;
case<giá_trị_n>:
<khối_lệnh_n>;
break;
default:
<khối_lệnh_default>;
}
- Cấu trúc lặp:
+ Dạng 1: while(...)
while (điều_kiện_lặp)
{

<khối_lệnh>;

}

+ Dạng 2: do{...} while;
do

18


×