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

Xây dựng ứng dụng hỗ trợ học tiếng anh cơ bản trên android (2018)

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

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

NGUYỄN THỊ THU THỦY

XÂY DỰNG ỨNG DỤNG
HỖ TRỢ HỌC TIẾNG ANH CƠ BẢN
TRÊN ANDROID

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Sư phạm Tin học

HÀ NỘI, 2018


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

NGUYỄN THỊ THU THỦY

XÂY DỰNG ỨNG DỤNG
HỖ TRỢ HỌC TIẾNG ANH CƠ BẢN
TRÊN ANDROID

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
Th.S Nguyễn Thị Loan

HÀ NỘI, 2018




LỜI CẢM ƠN
Trong quá trình thực hiện đề tài Xây dựng ứng dụng hỗ trợ học tiếng
Anh cơ bản trên android, ngoài sự cố gắng của bản thân, em đã nhận được sự
giúp đỡ tận tình, tạo điều kiện của các thầy, cô giáo trong viện Công nghệ
Thông tin trường Đại học Sư phạm Hà Nội 2, đặc biệt là cô giáo hướng dẫn
Nguyễn Thị Loan cùng với gia đình và bạn bè.
Em xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất của mình tới cô
giáo Nguyễn Thị Loan, người đã tận tình giúp đỡ, hướng dẫn và chỉ bảo em
trong suốt quá trình thực hiện đề tài.
Xin chân thành cảm ơn các thầy, cô giáo việnCông nghệ Thông Tin
trường Đại học Sư phạm Hà Nội 2 đã tạo điều kiện thuận lợi cho em trong quá
trình học tập, nghiên cứu.
Cuối cùng, em xin cảm ơn tập thể lớp Sư phạm Tin B, khóa 40, các bạn
đã đónggóp ý kiến, chia sẻ kinh nghiệm bản thân giúp khóa luận của em ngày
một hoàn thiện.
Em xin chân thành cảm ơn!
Hà Nội, tháng 5 năm 2018
Sinh viên thực hiện

Nguyễn Thị Thu Thủy


LỜI CAM ĐOAN
Em xin cam đoan:
1. Em xin cam đoan đây là bài nghiên cứu của riêng em và được sự
hướng dẫn trực tiếp của cô Nguyễn Thị Loan. Các nội dung nghiên cứu, kết quả
đều là trung thực và chưa công bố dưới bất kì hình thức nào trước đây.
2. Mọi tham khảo dùng trong khóa luận đều được trích dẫn rõ ràng tên tác

giả, tên công trình, thời gian, địa điểm công bố.
3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em
xin chịu hoàn toàn trách nhiệm.
Hà Nội, tháng 5 năm 2018
Sinh viên thực hiện

Nguyễn Thị Thu Thủy


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 ............................................................................ 10
1.1.4. Các thành phần trong ứng dụng Android ........................................ 11
1.1.5. Lưu trữ dữ liệu trong Android ......................................................... 14
1.1.6. RSS ................................................................................................... 15
1.2.Ngôn ngữ Java ........................................................................................ 16
1.2.1. Tổng quan về ngôn ngữ Java ........................................................... 16
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 ......................................................................................... 17
1.2.3. Hướng đối tượng trong Java ........................................................... 23
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ............................. 27
2.1. Tìm hiểu hệ thống.................................................................................. 27
2.1.1. Khảo sát hệ thống ............................................................................ 27
2.1.2. Xác định yêu cầu hệ thống ............................................................... 28
2.2. Phân tích hệ thống................................................................................. 29
2.2.1. Biểu đồ Usecase tổng quát ............................................................... 29

2.2.2. Biểu đồ lớp ....................................................................................... 37
2.3. Thiết kế hệ thống ................................................................................... 38
2.3.1. Biểu đồ tuần tự chức năng Tra từ điển ............................................ 38
2.3.2. Biểu đồ tuần tự chức năng Kiểm tra ................................................ 39
2.3.3. Biểu đồ tuần tự chức năng Ngữ pháp .............................................. 40
2.3.4. Biểu đồ tuần tự chức năng Ghi chú ................................................. 41
2.3.5. Biểu đồ tuần tự chức năng Lịch sử kiểm tra .................................... 42


2.3.6. Biểu đồ tuần tự chức năng Truyện ................................................... 43
CHƯƠNG 3 ỨNG DỤNG HỖ TRỢ HỌC TIẾNG ANH CƠ BẢN ............ 46
3.1. Giới thiệu về các giao diện của chương trình ..................................... 46
3.1.1. Giao diện danh mục hệ thống .......................................................... 46
3.1.2. Giao diện chức năng Tra từ điển ..................................................... 48
3.1.3. Giao diện chức năng Kiểm tra ......................................................... 50
3.1.4. Giao diện chức năng Ghi chú .......................................................... 53
3.1.5. Giao diện chức năng Ngữ pháp ....................................................... 54
3.1.6. Giao diện chức năng Lịch sử kiểm tra ............................................. 57
3.1.7. Giao diện chức năng Truyện............................................................ 59
3.1.8. Giao diện chức năng Tin tức............................................................ 61
3.1.9. Giao diện chức năng Cài đặt ........................................................... 63
3.1.10. Giao diện chức năng Giới thiệu ..................................................... 64
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................................... 65
TÀI LIỆU THAM KHẢO ............................................................................... 66
PHỤ LỤC .......................................................................................................... 67


DANH MỤC HÌNH VẼ
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 .................................................................... 5

Hình 1.3. Chỉ số về Internet trên di động tại Việt Nam năm 2014 ...................... 6
Hình 1.4. Thống kê các chỉ số người dùng smartphone tại Việt Nam năm 2014..
.............................................................................................................................. 7
Hình 1.5. Thống kê chỉ số điện thoại di động và các loại hình thanh toán tại
Việt Nam năm 2014. ............................................................................................. 7
Hình 1.6. Kiến trúc Android ............................................................................... 11
Hình 1.7. Các kiểu dữ liệu trong ngôn ngữ Java ............................................... 17
Hình 2.1 Biểu đồ Usecase tổng quát .................................................................. 29
Hình 2.2 Biểu đồ Usecase cho chức năng Tra từ điển ...................................... 30
Hình 2.3. Biểu đồ Usecase cho chức năng Kiểm tra ......................................... 31
Hình 2.4. Biểu đồ Usecase cho chức năng Ngữ pháp........................................ 32
Hình 2.5. Biểu đồ Usecase cho chức năng Ghi chú ........................................... 32
Hình 2.6 Biểu đồ Usecase cho chức năng Lịch sử kiểm tra .............................. 33
Hình 2.7 Biểu đồ Usecase cho chức năng Truyện ............................................. 34
Hình 2.8. Biểu đồ Usecase cho chức năng Tin tức ............................................ 34
Hình 2.9. Biểu đồ Usecase cho chức năng Cài đặt............................................ 35
Hình 2.10. Biểu đồ Usecase cho chức năng Giới thiệu ..................................... 36
Hình 2.11. Biểu đồ lớp chi tiết của hệ thống ..................................................... 37
Hình 2.12. Biểu đồ tuần tự cho chức năng Tra từ điển ..................................... 38
Hình 2.13. Biểu đồ tuần tự chức năng Kiểm tra ................................................ 39
Hình 2.14. Biểu đồ tuần tự chức năng Ngữ pháp .............................................. 40
Hình 2.15. Biểu đồ tuần tự chức năng Ghi chú ................................................. 41


Hình 2.16. Biểu đồ tuần tự chức năng Lịch sử kiểm tra .................................... 42
Hình 2.17. Biểu đồ tuần tự chức năng Truyện ................................................... 43
Hình 3.1. Giao diện màn hình ứng dụng............................................................ 46
Hình 3.2. Giao diện màn hình hệ thống ............................................................. 47
Hình 3.3. Giao diện chức năng Tra từ điển ....................................................... 48
Hình 3.4. Giao diện tra từ .................................................................................. 49

Hình 3.5. Giao diện Bài kiểm tra ....................................................................... 50
Hình 3.6. Giao diện hoàn thành bài thi ............................................................. 51
Hình 3.7. Giao diện kết quả thi .......................................................................... 52
Hình 3.8. Giao diện chức năng Ghi chú ............................................................ 53
Hình 3.9. Giao diện viết ghi chú ........................................................................ 54
Hình 3.10. Giao diện chức năng Ngữ pháp ....................................................... 55
Hình 3.11. Giao diện “Thì hiện tại đơn” ........................................................... 56
Hình 3.12. Giao diện chức năng Lịch sử kiểm tra ............................................. 57
Hình 3.13. Giao diện lịch sử bài thi ................................................................... 58
Hình 3.14. Giao diện chức năng Truyện ............................................................ 59
Hình 3.15. Giao diện truyện cười ...................................................................... 60
Hình 3.16. Giao diện chức năng Tin tức............................................................ 61
Hình 3.17. Giao diện bài báo ............................................................................. 62
Hình 3.18. Giao diện chức năng Cài đặt ........................................................... 63
Hình 3.19. Giao diện chức năng Giới thiệu ....................................................... 64


DANH MỤC BẢNG BIỂU
Bảng 1.1. Các kiểu dữ liệu trong Java ............................................................... 18
Bảng 1.2. Các kiểu toán tử trong Java............................................................... 19
Bảng 1.3. Lớp bao kiểu dữ liệu cơ sở ................................................................ 22
Bảng 2.1 Danh sách các Usecase ...................................................................... 29
Bảng 2.2. Danh sách các thuộc tính chức năng Tra từ điển.............................. 43
Bảng 2.3. Danh sách các thuộc tính chức năng Kiểm tra ................................. 43
Bảng 2.4. Danh sách các thuộc tính chức năng Ghi chú ................................... 44
Bảng 2.5. Danh sách các thuộc tính chức năng Ngữ pháp ................................ 44
Bảng 2.6. Danh sách các thuộc tính chức năng Lịch sử tra từ.......................... 44
Bảng 2.7. Danh sách các thuộc tính chức năng Lịch sử kiểm tra ..................... 45
Bảng 2.8. Danh sách các thuộc tính chức năng Truyện .................................... 45



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, góp một phần không nhỏ vào việc phát triển
kinh tế. 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,...
Tháng 11/2007, hệ điều hành Android xuất hiện lần đầu tiên trên di động.
Trong suốt năm 2009, điện thoại chạy hệ điều hành Android chỉ đếm trên đầu
ngón tay. Đến năm 2010, hàng trăm thiết bị sử dụng nền tảng Android xuất
hiện rầm rộ. Android hiện là hệ điều hành di động phổ biến nhất hiện nay với
87,7% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 2
năm 2017, với tổng cộng 2 tỷ thiết bị đã được kích hoạt và 1,3 triệu lượt kích
hoạt mỗi ngày.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.
Tiếng Anh là một ngôn ngữ thuộc nhánh miền Tây của nhóm ngôn ngữ
German trong ngữ hệ Ấn- Âu, đây là ngôn ngữ được sử dụng rộng rãi nhất thế
giới. Tiếng Anh cũng là ngôn ngữ của thời đại thông tin. Hơn 80% nguồn dự
trữ thông tin của hơn 100 triệu máy tính khắp thế giới là tiếng Anh. 85% các
cuộc trao đổi qua điện thoại quốc tế được sử dụng bằng tiếng Anh, cũng như
vậy lượng lớn mail, các cuộc điện báo và truyền tín hiệu qua dây cáp,các chỉ
dẫn trên máy tính, phần mềm, ứng dụng cũng thường được dùng bằng tiếng
Anh [1]. Chính vì vậy việc học tiếng Anh trở nên cần thiết hơn đối với mỗi
người trong thời buổi này, khi mà Công nghệ Thông tin dần trở nên quan
trọng và chiếm vị trí lớn trong nền kinh tế thế giới.
Bởi các lý do trên, em đã lựa chọn đề tài “Xây dựng ứng dụng hỗ trợ
học tiếng Anh cơ bản trên Android” nhằm mục đích cung cấp lượng kiến
thức cơ bản về tiếng Anh cho người dùng, hỗ trợ việc nâng cao khả năng học,
nâng cao trình độ cho người sử dụng, đặc biệt là những người mới tiếp xúc

với tiếng Anh.
1


2. Mục đích nghiên cứu
Tìm hiểu khái quát về hệ điều hành. Từ đó phân tích và thiết kế ứng
dụng hỗ trợ học tiếng Anh cơ bản nhằm cung cấp lượng kiến thức cơ bản, hỗ
trợ việc học tập, đáp ứng được nhu cầu của người dùng hiện nay.
3. Nhiệm vụ nghiên cứu
Nghiên cứu tổng hợp một số nội dung làm cơ sở lý luận cho đề tài:
- Nghiên cứu lý thuyết về hệ điều hành Android.
- Nghiên cứu lý thuyết về ngôn ngữ Java.
- Xây dựng thiết kế ứng dụng hỗ trợ học tiếng Anh cơ bản và chạy
thử trong môi trường Android.
4. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:hệ điều hành Android, ngôn ngữ Java
Phạm vi nghiên cứu: ứng dụng hỗ trợ học tiếng Anh cơ bản
5. Ý nghĩa khoa học và thực tiễn của đề tài
Nếu việc xây dựng ứng dụng hỗ trợ học tiếng Anh cơ bản trên Android
có tính khả thi cao thì sẽ trợ giúp được người dùng trong việc học tiếng Anh,
khiến việc học trở nên dễ dàng và tiện lợi hơn, đồng thời nâng cao và phát
triển khả năng học tiếng Anh của người sử dụng.
6. Phương pháp nghiên cứu
Phương pháp nghiên cứu lý luận:
- Nghiên cứu các văn bản, tài liệu về hệ điều hành Android.
- Nghiên cứu các video, giáo trình về tiếng Anh.
- Nghiên cứu phương thức, mô hình xây dựng ứng dụng trên
Android.
Phương pháp lấy ý kiến chuyên gia:
Tham khảo các chuyên gia về mô hình phân tích và thiết kế ứng dụng

trên nền tảng Android.
Phương pháp phân tích và thiết kế hệ thống:
Suy luận và phân tích từng mảng của ứng dụng từ đó thiết kế ứng dụng
hỗ trợ học tiếng Anh cơ bản.
2


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 thì
nội dung của khóa luận gồm có ba chương, cụ thể như sau:
Chương 1. Cơ sở lý luận và thực tiễn
Chương 2. Phân tích và thiết kế hệ thống
Chương 3. Ứng dụng hỗ trợ học tiếng Anh cơ bản

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, Android Inc. được thành lập bởi Andy Rubin, Rich Miner,
Nick Sears và Chris White tại California.
-Năm 2005, Google mua lại Android Inc và bắt đầu nuôi ý tưởng tự sản
xuất điện thoại di động.
-Năm 2007, tổ chức OHA (Open Handset Alliance) được thành lập với
hơn 80 công ty trong lĩnh vực kỹ thuật điện tử bao gồm các công ty chuyên về
phần cứng, phân phối thiết bị di động đến các công ty phần mềm, sản xuất
chất bán dẫn… Có thể kể đến một số công ty nổi tiếng như Samsung,
Motorola, LG, HTC, T-Mobile, Vodafone, ARM và Qualcomm…

-Năm 2008, Google ra mắt chiếc di động đầu tiên đồng thời open
source bản SDK (Software Development Kit) phiên bản 1.0.
-Năm 2010, Google khởi đầu dòng thiết bị Nexus với thiết bị đầu tiên
của HTC là Nexus One.
-Năm 2013, ra mắt loạt thiết bị phiên bản GPE (Google Play Edition).
-Năm 2014, Google công báo Android Wear, hệ điều hành dành cho
các thiết bị đeo được.
-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ông nghệ di động
-Theo nhận định của nhiều chuyên gia công nghệ từ các hãng công
nghệ hàng đầu như Microsoft, Google, IBM,… bốn xu hướng trên toàn cầu
hiện nay là: Social and Security (Mạng xã hội và bảo mật), Mobility (Công
nghệ di động), Analytics Big Data (Phân tích dữ liệu lớn), Cloud (Điện toán
đám mây).
- Trên thế giới: Tháng 01/2014, trang WeAreSocial đã đưa ra báo cáo
về “Bối cảnh dữ liệu toàn cầu” với những chỉ số phát triển rất đang kinh ngạc
của Thế Giới Số [3]. Cụ thể số liệu thống kê của WeAreSocial cho thấy:
oSố lượng đăng kí sử dụng di động đang hoạt động vào khoảng 93%
của dân số thế giới.
oTỷ lệ người kết nối Internet toàn cầu đạt 35%, tương đương 2,5 tỉ
người.
oCác kênh Mạng xã hội tiếp tục phát triển mạnh mẽ trong 12 tháng
qua, khi đạt tỷ lệ thâm nhập người dùng là 26%.
oHơn 4 tỉ người trên khắp thế giới hiện đang sở hữu ít nhất một chiếc

điện thoại di động.

Hình 1.2. Bối cảnh dữ liệu toàn cầu - Nguồn: WeAreSocial.
5


-Tại Việt Nam:
oTrong giai đoạn 2014 - 2016, xu hướng Mobile và lượng người
dùng Internet 3G sẽ tiếp tục tăng mạnh. Các dịch vụ kết nối OTT (Over-TheTop)và truyền thông xã hội đóng góp hơn 80% phương thức giao tiếp online,
video online và nội dung số mobile. Điều này góp phần đẩy mạnh xu hướng
truyền thông số đa phương tiện, đa màn hình sẽ bùng nổ với độ phủ hơn 50%
dân số Việt Nam [3].
oDoanh thu điện thoại thông minh và máy tính bảng giờ đây đã vượt
qua máy tính cá nhân và máy tính xách tay.Các doanh nghiệp hoạt động trong
lĩnh vực sản xuất công nghệ cũng đang cố gắng hướng tới các dịch vụ như
“thanh toán di động, nội dung di động, dịch vụ xác định địa điểm hay khai
thác dữ liệu sử dụng của người dùng thiết bị di động”.

Hình 1.3. Chỉ số về Internet trên di động tại Việt Nam năm 2014 Nguồn: 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.
- Tỷ lệ truy cập Internet qua các thiết bị di động: 34% tổng số dân.
- Tỷ lệ truy cập Internet có tham gia mua sắm online 57%.
- 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.
6


Hình 1.4. Thống kê các chỉ số người dùng smartphone tại Việt Nam
năm 2014 - Nguồn: 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.5. Thống kê chỉ số điện thoại di động và các loại hình thanh
toán tại Việt Nam năm 2014 - Nguồn: 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.
Trong thời đại công nghệ hiện nay, nhu cầu sử dụng dữ liệu trên toàn
cầu ngày càng cao, kéo theo đó là nhu cầu sử dụng thiết bị di động cũng tăng
mạnh chính vì vậy xu thế công nghệ di động ngày càng nhanh và mạnh.
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. Nổi
7


bật với các đặc điểm:
oTí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. Android được xây dựng trên nhân Linux mở. Thêm nữa
nó sử dụng một máy ảo mà đã được tối ưu hóa bộ nhớ và phần cứng với môi
trường di động. Android là một mã nguồn mở, nó có thể được mở rộng để kết
hợp tự do giữa các công nghệ nổi trội.
oTí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 cơ bản với ứng dụng của bên thứ ba.
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.
oDễ 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 thật sự là một nền tảng mạnh mẽ 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.
-Kể từ khi bắt đầu được thương mại hóa, ước tính mỗi ngày có khoảng
850 ngàn thiết bị Android được kích hoạt. Nhiều cuộc nghiên cứu đã chỉ ra
rằng phần lớn các thiết bị smartphone mới được xuất xưởng chạy hệ điều
hành Android.
-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 trong quý 1/2014. Điều này một lần nữa
cho thấy, Android đã có được một địa vị cực kỳ vững chắc trên thị trường
smartphone [3].
-Công ty nghiên cứu thị trường Strategy Analytics công bố hôm
31/10/2014 cho biết, số lượng smartphone chạy Android bán ra trên phạm vi
toàn cầu đạt 268 triệu chiếc, tăng mạnh so với thành tích 206 triệu chiếc
8


củacùng kỳ năm ngoái. Nếu xét về thị phần, chú robot xanh của đại gia công
nghệ Google đang giữ 84% thị phần [3].
-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 nhất 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 Android:
oƯu điểm: Google Android là nền tảng mở, cho phép người dùng có
thể tùy biến nền tảng theo ý thích, hơn nữa lại có một liên minh thiết bị cầm
tay hậu thuẫn. Bộ công cụ phát triển phần mềm (SDK) đầy đủ, hỗ trợ đa nền
(Linux, Windows 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.
oNhược điểm: Hệ điều hành phân mảnh, không thống nhất trên các
thiết bị, giới hạn về độ “mở” và nhiều lỗ hổng bảo mật.
-Hệ điều hành Windows Phone:
oƯu nhược: Có thư viện API (Application Programming Interface –
Giao diện lập trình ứng dụng) giống với API trên Win32, công cụ hỗ trợ lập
trình đầy đủ với Visual Studio, điều này làm cho những người phát triển trên
Win32 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.
oNhược điểm: Sự có mặt của iPhone và Android là hai trở ngại lớn
với Windows Mobile. Hai nền tảng này đang hoàn thiện và được người dùng
rất ưa chuộng.
-Hệ điều hành iOS:
oƯu điểm: Màn hình cảm ứng đa điểm: iPhone sử dụng hoàn toàn
bằng cảm ứng và không sử dụng các nút, ta có thể điều khiển trên màn hình
kể cả việc trượt của các ngón tay. Bộ cảm ứng gia tốc: Phản ứng nhanh chóng

9


của bộ cảm nhận gia tốc thay đổi độ phân giải màn hình từ dọc sang ngang tự
động khi ta đặt điện thoại nằm ngang.
oNhược điểm: Việc lập trình cho iPhone phải thực hiện trên hệ điều
hành Mac, do đó không phải ai cũng có thể lập trình cho iPhone. Hơn
thế,nếumuốn đưa chương trình ra máy thật, người lập trình phải trả phí.
1.1.3. Kiến trúc Android [3]
-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. Mỗi tầng đều có chức năng vai trò riêng
biệt với nhau:
o Linux kernel – lõi chính của toàn hệ thống bao gồm các điều khiển

phần cứng, bộ quản lý xử lý và bộ nhớ, bảo mật, kết nối mạng, bộ quản lý
năng lượng.
o Libraries – thực thi trên tầng nhân Linux, bao gồm các thư viện lõi
khác nhau của C/C++ như libc và SSL. Có các dạng sau:
Thư viện hổ trợ phát các tập tin đa truyền thông.
Bộ quản lý hiển thị
Thư viện hổ trợ đồ họa OpenGL 2D và 3D
SQLite hổ trợ lưu trữ cơ sở dữ liệu
SSL và WebKit cho phép tương tác với trình duyệt và bảo mật
Internet.
- 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. Bên trong thành phần này bao gồm máy ảo
Dalvik và thư viện lõi. 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.
o Core Libraries – mặc dù hầu hết các ứng dụng Android viết bằng
ngôn ngữ Java nhưng Dalvik không phải là máy ảo Java. Các thư viện lõi
Android sẽ cung cấp hầu hết các chức năng chính có thể có trong thư viện
Java cũng như thư viện riêng biệt của Android.

10


o Dalvik VM – dạng máy ảo cho phép tối ưu hóa để có thể chạy
được nhiều tiến trình một cách hiệu quả, dựa trên nhân Linux các máy ảo cho
phép quản lý các tiểu trình và quản lý bộ nhớ ở bậc thấp.
- Application Framework – cung cấp các lớp cho việc tạo ra các ứng
dụng. Bên cạnh đó nó cũng chứa các lớp trừu tượng cho phép truy nhập phần
cứng, quản lý giao diện người dùng và tài nguyên của ứ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. Tầng ứng dụng trong Android Run Time sử dụng các

lớp từ tầng Application Framework để thực thi ứng dụng.

Hình 1.6. Kiến trúc Android
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.
11


- 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.
- 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:
12


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).
- 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.
- Nó 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. Có thể nói Context 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 để
13


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.
-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ácquyền cơ
14


bản của hệ thống.
e. SQLite Database
-SQLite có đầy đủ các tính năng cơ bản của một hệ quản trị cơ sở dữ
liệu, 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.
-SQLite tốn ít bộ nhớ lúc chạy (khoảng 250kb) do được tích hợp 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.
-Để có thể thao tác với SQLite, chúng ta có thể sử dụng trình duyệt
FireFox và truy nhập vào đường link:
nhấn “Thêm vào
FireFox”, hệ thống sẽ tải SQLite Manager về. Sau đó bạn nhấn Install để cài
đặt. Tiếp theo mở Menu của FireFox, ấn chuột phải rồi nhấp vào dòng “Add
more items..”, danh sách các items sẽ hiện ra. Nhấp chuột phải vào icon của
SQLite Manager sẽ có hai lựa chọn: “Add to Toolbar (Thêm vào Thanh công
cụ)” và “Add to Menu (Thêm vào Trình đơn)”, bạn chọn lựa chọn thích hợp
sau đó nhấn “Exit Customize” và nhấp vào icon của SQLite Manager để sử
dụng.
1.1.6. RSS
-RSS là viết tắt của cụm từ Really Simple Syndication, có thể hiểu nó là
nguồn tin hay nguồn cung cấp thông tin.
-RSS là một định dạng tập tin thuộc ngôn ngữ XML (là ngôn ngữ xây
dựng cấu trúc tài liệu văn bản) dùng trong việc chia sẻ tin tức web được dùng
bởi nhiều website.
-RSS cho phép người dùng cập nhật được các nội dung mới nhất mà
không phải vào trang web một cách thủ công. Ngoài ra, RSS còn cho phép
người dùng phát hành nội dung trang web của họ một cách tự động, do
15


vậyngười dùng có thể đọc nó trong hộp thư email, phần mềm nhận nguồn tin
RSS hay các thiết bị khác.
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 do Sun Microsystem đưa
ra vào giữa thập niên 90. Chương trình 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).
-Một số đặc điểm nổi bật của ngôn ngữ lập trình Java:
oMá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ột chương
trình viết bằng ngôn ngữ lập trình Java sẽ được biên dịch ra mã của máy ảo
java (mã java bytecode). Sau đó máy ảo Java chịu trách nhiệm chuyển mã
java bytecode thành mã máy tương ứng.
oThông dịch: Java là một ngôn ngữ lập trình vừa biên dịch vừa
thông dịch. Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi
*.java đầu tiên được biên dịch thành tập tin có đuôi *.class và sau đó sẽ được
trình thông dịch thông dịch thành mã máy.
oĐộc lập nền: Một 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).
oHướng đối tượng: Java là một ngôn ngữ lập trình hướng đối tượng
hoàn toàn. Tất cả mọi thứ đề cập đến trong Java đều liên quan đến các đối
tượng được định nghĩa trước. Hướng đối tượng trong Java không có tính đa
kế thừa (multi-inheritance).
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.
oKhả chuyển (Portable): Chương trình ứng dụng 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, hệ điều hành nào có máy ảo Java.
16



×