1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

77 282 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

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

Nội dung

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 1

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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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

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 14

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

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 16

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

Trang 17

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

Trang 18

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

Trang 19

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

Trang 20

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:

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 22

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 để

Trang 23

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ơ

Trang 24

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:

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 25

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

Trang 26

oHỗ 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 27

Bả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 28

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

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 30

Else { <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 31

Ví 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 33

class <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 35

if (s_model.equals(“2005”)) return (2000);

else return (1500);

} public String chobietnhasx()

{ return (nhasx); } }

Trang 36

CHƯƠ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 37

sử 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 38

hà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

Ngày đăng: 22/06/2018, 14:56

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w