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
Trang 1TRƯỜ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
Trang 2TRƯỜ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
Trang 3LỜ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
Trang 4LỜ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
Trang 5MỤ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
Trang 62.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
Trang 7DANH 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
Trang 8Hì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
Trang 9DANH 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
Trang 10MỞ ĐẦ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
Trang 112 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
Trang 127 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
Trang 13-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
Trang 141.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
Trang 15-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-The-Top)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
Trang 16Hì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
Trang 17bậ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
Trang 18củ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
Trang 19củ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
Trang 20o 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:
Trang 21- 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 đó
- 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,…
Trang 22o 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 để
Trang 23thô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ơ
Trang 24bả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:
https://addons.mozilla.org/fr/firefox/addon/sqlite-manager/, 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
-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
Trang 25vậ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
Trang 26oHỗ trợ mạnh cho việc phát triển ứng dụng: Công nghệ Java phát triển mạnh mẽ 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ư: J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng đơn, ứng dụng client-server; J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các ứng dụng thương mại, J2ME (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
Char Boolean
Byte Short Int Long Float Double
Trang 27Bảng 1.1 Các kiểu dữ liệu trong Java
Kiểu
Kích thước (bytes)
Giá trị min Giá trị max Giá trị
-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
Trang 28Bê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
Toán tử trên bit Ý nghĩa
Toán tử quan hệ
và logic
Ý nghĩa
+ Cộng & And == So sánh bằng _ Trừ | Or != So sánh khác
% Chia dư >> Dịch phải >= So sánh lớn
hơn hay bằng
Trang 29++ Tăng 1 >>> Dịch phải và
điền 0 bit trống <=
So sánh nhỏ hơn hay bằng Giảm 1 ~ Bù bit
Int iCount = (int)fNum; //(iConut=2)
-Toán tử điều kiện:
oCú pháp: <điều_kiện>?<biểu_ thức_1>:<biểu_thức_2>
oNế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<y)? 30:40 //Kết quả z=30 do biểu thức (x<y) là đúng
f Cấu trúc điều khiển
-Cấu trúc điều kiện if else
oDạng 1:
If(<điều_kiện>) { <khối_lệnh>; } oDạng 2:
If (<điều_kiện>) { <khối_lệnh1>; }
Trang 30Else { <khối_lệnh2>; } -Cấu trúc switch case
Switch (<biến>)
{ case<giá_trị_1>:
oDạng 1: while( )
While (điều_kiện_lặp) { <khối_lệnh>; } oDạng 2: do{ } while;
Do { <khối_lệnh>; } while (điều_kiện);
oDạng 3: for( )
For (khởi_tạo_biến_đếm; điều_kiện_lặp; tăng_biến) { <khối_lệnh>; }
-Cấu trúc lệnh nhảy:
oLệnh break: thoát khỏi cấu trúc chứa nó
oLệnh continue: tiếp tục vòng lặp trong cùng chứa nó
oNhãn (label): kết hợp với khóa break hoặc continue để nhảy đến một vị trí nào đó trong chương trình
Trang 31Ví dụ:
label:
for (…) { for (…)
{ if (<biểu thức điều kiện>) break label;
else continue label;
} }
g Lớp bao kiểu dữ liệu cơ sở (Wrapper Class)
Bảng 1.3 Lớp bao kiểu dữ liệu cơ sở
Short Short Char Character Int Integer
Float Float Double Double
h Kiểu dữ liệu mảng
-Mảng là tập hợp nhiều phần tử có cùng tên, cùng kiểu dữ liệu và mỗi phần tử trong mảng được truy xuất thông qua chỉ số của nó trong mảng
-Khai báo mảng: <kiểu_dữ_liệu><tên mảng>[];
Hoặc <kiểu_dữ_liệu>[] <tên mảng>;
Ví dụ:
int arrInt[]; hoặc int[] arrInt;
Trang 32-Cấp phát bộ nhớ cho mảng: sử dụng từ khóa new
Ví dụ:
int arrInt = new int[100];
-Khởi tạo mảng: chúng ta có thể khởi tạo giá trị ban đầu cho các phần
tử của mảng khi nó được khai báo
Ví dụ:
Int arrInt[] ={1,2,3};
String arStrng[] ={ “ABC”,”DEF”};
-Truy cập mảng: Chỉ số mảng bắt đầu từ 0 vì vậy phần tử đầu tiên có
chỉ số là 0 và phần tử thứ n có chỉ số là n-1
Ví dụ:
Int arrInt[] = {1,2,3};
Int x = arrInt[0]; // x sẽ có giá trị là 1;
Int y = arrInt[1]; // y sẽ có giá trị là 2;
Int z = arrInt[2]; // z sẽ có giá trị là 3;
1.2.3 Hướng đối tượng trong Java
a Đặc điểm hướng đối tượng trong Java
- Đóng gói: Cơ chế đóng gói trong lập trình hướng đối tượng giúp cho các đối tượng dấu đi một phần các chi tiết cài đặt, cũng như phần dữ liệu cục
bộ của nó, và chỉ công bố ra ngoài những gì cần công bố để trao đổi với các đối tượng khác Đơn vị đóng gói cơ bản của ngôn ngữ java là class
-Tính đa hình: Tính đa hình cho phép cài đặt các lớp dẫn xuất khác nhau từ một lớp nguồn Một đối tượng có thể có nhiều kiểu khác nhau gọi là tính đa hình
-Tính kế thừa: Một lớp con (subclass) có thể kế thừa tất cả những vùng
dữ liệu và phương thức của một lớp khác
b Lớp (Class)
-Là một khuôn mẫu của đối tượng gồm dữ liệu của đôi tượng và các phương thức
-Khai báo:
Trang 33class <ClassName>// class là từ khóa, classname là tên đặt cho lớp
{
<kiểu dữ liệu><field_1>;
<kiểu dữ liệu><field_2>; // field1, field2 là các thuộc tính, các
biến hay các thành phần dữ liệu
constructor // xây dựng, khởi tạp đối tượng lớp
method_1
method_2 // method_1, method_2 là các phương thức, hàm thể
hiện thao tác xử lý, tác động lên các thành phần dữ liệu của lớp
<tiền tố><kiểu dữ liệu> field1;
// … } -Hàm – phương thức lớp (Method): là khối lệnh thực hiện các chức năng, các hành vi xử lý của lớp lên vũng dữ liệu
Trang 34-Để khai báo một lớp thuộc một gói nào đấy ta phải dùng từ khóa
package
Ví dụ:
package phuongtiengiaothong;
class xemay {
// … }
class xega extends xemay {
// … }
d Giao diện (interface)
-Như chúng ta đã biết một lớp trong java chỉ có một siêu lớp trực tiếp hay một cha duy nhất (đơn thừa kế) Để tránh đi tính phức tạp của đa thừa kế (multi-inheritance) trong lập trình hướng đối tượng, Java thay thế bằng giao tiếp (interface)
-Interface được khai báo như một lớp Nhưng các thuộc tính của interface là các hằng (khai báo dùng từ khóa final) và các phương thức của giao tiếp là trừu tượng (mặc dù không có từ khóa abstract)
Ví dụ:
public interface sanpham
{ static final String nhasx = “Honda VN”;
static final String dienthoai = “08-8123456”;
public int gia(String s_model); }
//khai báo 1 lớp có cài đặt interface
public class xemay implements sanpham
{ // cài đặt lại phương thức của giao diện trong lớp
public int gia(String s_model)
{
Trang 35if (s_model.equals(“2005”)) return (2000);
else return (1500);
} public String chobietnhasx()
{ return (nhasx); } }
Trang 36CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Tìm hiểu hệ thống
2.1.1 Khảo sát hệ thống
Qua sự tìm hiểu và quan sát về cách học tiếng Anh tại nơi học tập, em
đã thu được một số kết quả như sau:
-Tài liệu học tập, ôn thi đều được viết trên sách vở, giáo trình
-Các thao tác ghi chép trong quá trình học hầu như là được ghi trên giấy
-Các thao tác tra cứu từ mới đa phần sử dụng từ điển giấy hoặc từ điển điện tử
Từ đó, em đặt ra bài toán: Xây dựng ứng dụng học tiếng Anh cơ bản trên Android Bài toán đã được giải quyết với trên 5 đồ án tốt nghiệp, em đã tham khảolý thuyết về những vấn đề cần nghiên cứu, về các chức năng chính cần có trong một ứng dụng hỗ trợ học tiếng Anh của các đồ án sau:
- Trần Võ Khôi Nguyên, Huỳnh Thái Dương, Xây dựng ứng dụng hỗ
trợ học tiếng Anh cho thiết bị di động chạy trên nền tảng Android, trường Đại
học Công nghệ Thông tin – Đại học Quốc gia TP.Hồ Chí Minh, 2014
- Thân Văn Nam, Xây dựng chương trình hỗ trợ học tiếng Anh trên
Android, trường Đại học Công nghệ Thông tin và Truyền Thông – Đại học
Thái Nguyên, 2016
Nhìn chung các ứng dụng hỗ trợ học tiếng Anh của các đồ án tốt nghiệp trên đều có các chức năng chính như: Đăng ký – đăng nhập tài khoản, Tra từ điển, Kiểm tra trắc nghiệm, Kết quả thi, Ghi chú, Ngữ pháp Trong đồ án
“Xây dựng ứng dụng hỗ trợ học tiếng Anh cho thiết bị di động chạy trên nền
tảng Android” của Trần Võ Khôi Nguyên và Huỳnh Thái Dương, ngoài các
chức năng chính trên, ứng dụng còn có thêm các chức năng Bài Nghe, Video, liên kết sang các trang web như Facebook, Twitter, Google+, nhưng ứng dụng được xây dựng bằng ngôn ngữ PHP Trong ứng dụng em nghiên cứu và xây dựng, ngoài các chức năng chính Tra từ điển, Kiểm tra trắc nghiệm, Lịch
Trang 37sử kiểm tra, Ghi chú, Ngữ pháp, em còn bổ sung thêm các chức năng khác như Truyện, Tin tức, Cài đặt và Giới thiệu về ứng dụng
có trong cơ sở dữ liệu để người dùng làm, sau đó hệ thống sẽ kiểm tra số câu
đã làm đúng và chưa đúng hiện lên cho người dùng Đồng thời hệ thống lưu lại kết quả vào phần lịch sử kiểm tra để xem lại
-Chức năng ghi chú: Cho phép người dùng có thể ghi chú lại những tài liệu hay nhắc nhở quan trọng Hệ thống sẽ lưu lại thông tin đó trong cơ sở dữ liệu
-Chức năng ngữ pháp: Hệ thống cung cấp các ngữ pháp quan trọng cho người dùng
-Chức năng lịch sử kiểm tra: Người dùng có thể xem lại các bài kiểm tra đã làm
-Chức năng truyện: Hệ thống cung cấp cho người dùng những mẩu truyện ngắn để đọc và dịch
-Chức năng tin tức: Người dùng có thể đọc các bài báo tiếng Anh, tin tức nước ngoài trên trang báo NBC NEWS
-Chức năng cài đặt: Người dùng có thể xóa toàn bộ lịch sử, cài đặt ngôn ngữ của ứng dụng
-Chức năng giới thiệu: Toàn bộ thông tin về ứng dụng được cung cấp ở chức năng này
Ngoài ra, hệ thống ứng dụng đáp ứng các yêu cầu phi chức năng như giao diện đẹp, dễ sử dụng, tốc độ xử lý nhanh, cài đặt cho hầu hết các hệ điều
Trang 38hành Android
2.2 Phân tích hệ thống
2.2.1 Biểu đồ Usecase tổng quát
a Biểu đồ Usecase tổng quát
Hình 2.1 Biểu đồ Usecase tổng quát
b Danh sách các Usecase
Bảng 2.1 Danh sách các Usecase STT Tên Usecase Actor liên quan Ghi chú
1 Tra từ điển User
Giúp người dùng tra nghĩa tiếng Việt của từ tiếng Anh và lưu vào lịch sử tra từ
2 Kiểm tra User
Giúp người dùng kiểm tra trình độ bằng những câu trắc nghiệm tiếng Anh
Tra từ điển
Kiểm tra
Ghi chú Ngữ pháp
Cài đặt
Lịch sử kiểm tra Truyện Tin tức
Giới thiệu