Tải bản đầy đủ (.docx) (25 trang)

QUẢN Lý d6cntt epu dai

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 (626.6 KB, 25 trang )

MỤC LỤC
LỜI MỞ ĐẦU


DANH MỤC CÁC HÌNH

BẢNG


DANH MỤC SƠ ĐỒ


CHƯƠNG 1:

ỨNG DỤNG NGÔN NGỮ VÀ VĂN HÓA NHẬT
BẢN

Ứng dụng ngôn ngữ và văn hóa Nhật Bản sẽ phải là một ứng dụng giúp người
học tiếng Nhật một cách cụ thể, học từ bảng chữ cái cho đến học từ vựng, ngữ pháp
theo giáo trình. Không chỉ dừng lại ở việc học, mà người muốn thành thạo tiếng Nhật
thì còn phải tìm hiểu văn hóa Nhật Bản, mà việc đọc báo tiếng Nhật là một cách hữu
hiệu. Qua đó, trước tiên việc quan trọng nhất là phải đặt ra những tiêu chí đầu tiên cho
ứng dụng
1.1 Đặt vấn đề.
Ngày nay, smartphone ngày càng trở nên phổ biến, đặc biệt là những smartphone
chạy hệ điều hành android, nó phổ biến đến mức hầu như cứ 10 người trên thế giới thì
có 7 người dùng điện thoại thông minh, đặc biệt hệ điều hành android là hệ điều hành
di động có lượng người dùng đông đảo với trên 80% số điện thoại thông minh trên
toàn thế giới số
Ngày nay, việc học một ngoại ngữ là vấn đề vô cùng quan trọng, đặc biết giới trẻ,
vì thông qua ngoại ngữ mới, chúng ta có khả năng học tập, làm việc tốt hơn trong môi


trường quốc tế. Và Tiếng Nhật cũng không ngoại lệ, nó dần trở thành ngôn ngữ được
đông đảo bạn trẻ Việt Nam học tập trong những năm gần đây
Qua hai vấn đề trên, tôi nhận thấy rằng việc học Tiếng Nhật trên smartphone là
điều vô cùng cần thiết, tiện lợi với giới trẻ, và họ có thể học ở mọi lúc mọi nơi, với chi
phí thấp, điều đó thực sự quan trọng với sinh viên, khi điều kiện về kinh tế eo hẹp
nhưng ham học học hỏi. Từ đó tôi đã quyết định viết chương trình ứng dụng học tiếng
Nhật trên hệ điều hành Android
1.2 Mục đích và ý nghĩa của đề tài.
-

Góp phần tăng tinh thần học tập, tìm hiểu văn hóa Nhật Bản của nhiều người dân
Việt Nam

-

Nắm bắt những thông tin thời sự chính xác

-

Thúc đẩy và phát triển nhiều ứng dụng hữu ích trong đời sống con người trên kho
ứng dụng CH Play của Google

4


1.3 Đề xuất xây dựng ứng dụng.
Từ việc đặt ra vấn đề trên, tôi thiết nghĩ cần xây dựng ra ứng dụng học Tiếng
Nhật trên điện thoại dùng hệ điều hành Android để giải quyết những vấn đề đặt ra.
Vừa tiết kiệm thời gian, chi phí mà rất hiệu quả, sử dụng ở mọi lúc mọi nơi
Ứng dụng này đáp ứng tốt cho những người mới bắt đầu học, cũng như những

học viên học theo giáo trình Minna no Nihongo
1.3.1 Đối tượng sử dụng hệ thống.
-

Sinh viên các trường Đại học chuyên ngành Tiếng Nhật
Sinh viên yêu thích Tiếng Nhật, văn hóa nước Nhật
Nhân viên văn phòng
Những người hạn chế về thời gian nhưng có nhu cầu học thêm ngoại ngữ

1.3.2 Yêu cầu phần cứng, yêu cầu phần mềm.
-

Yêu cầu phần cứng:

• Tối thiểu: màn hình: trên 4.7 in, độ phân giải HD
• Khuyến cáo: màn hình 5.2 in, độ phân giải full HD
-

Yêu cầu phần mềm:

• Tối thiểu: Android 4.0 trở lên
• Khuyến cáo: Android 4.4.2
1.3.3 Yêu cầu chức năng.
-

-

-

Giúp người học tiếng Nhật học từ bảng chữ cái, cho đến khi học hết giáo trình

Minna no Nihongo, trong quá trình đó, người dùng có thể học hết 2 bảng chữ
cái tiếng Nhật, với vốn từ vựng và lượng chữ Hán ở cấp độ trung – sơ cấp
Giúp cho những đối tượng người dùng đang muốn tìm hiểu về văn hóa Nhật
có cái nhìn khác quan, tổng quát về nhiều mặt trong đời sống văn hóa, xã hội
của đất nước Nhật bản cũng như cập nhật nhanh nhất những thông tin liên
quan đến sự hợp tác, những chính sách phát triển của mối quan hệ 2 nước Việt
Nam – Nhật Bản
Có website dành cho admin để cập nhật dữ liệu mới, để từ đó client cập nhật
dữ liệu về điện thoại

1.3.4 Yêu cầu giao diện.
-

Để người dùng hứng thú với việc học tiếng Nhật trên smartphone, việc sử
dụng những hình ảnh đáng yêu, có nguồn gốc từ Nhật Bản khiến người học
5


-

hứng thú, tạo cảm giác thân thiện đối với người học, cũng như màu xanh da
trời làm chủ đạo, tạo cảm giác tốt cho người sử dụng
Đối với website dành cho admin, cần tiện lợi, dễ sử dụng, thao tác đơn giản

1.4 Kết luận
Về cơ bản. việc đặt ra yêu cầu của đề tài, đặt ra mục đích, ý nghĩa của đề tài sẽ
giúp cho việc tiếp cận vấn đề, đề xuất ra những cách thức triển khai, phân tích, thiết kế
cũng như biết rõ quá trình xây dựng ứng dụng trên nền tảng mobile

6



CHƯƠNG 2:

TỔNG QUAN VỀ LẬP TRÌNH TRÊN NỀN TẢNG
DI ĐỘNG

Vài năm trở lại đây ngay trên thị trường smartphone, người dùng đang chứng
kiến sự phát triển mạnh mẽ của cả đơn vị phát triển hệ điều hành cho di động, sự phát
triển của các công ty phần cứng, cung cấp các mẫu smartphone cho thị trường đến
những công ty phát triển ứng dụng trên di động, điều đó cho thấy kỷ nguyên của
smartphone đang mở ra và việc bắt kịp xu hướng công nghệ, để từ đó mang đến những
trải nghiệm tốt nhất cho người dùng là điều mà tất cả các đơn vị phát triển smartphone
đang hướng tới
2.1 Tổng quan về lập trình di động.
Người lập trình ứng dụng cho thiết bị di động truyền thống luôn luôn phải nhớ
trong đầu nguyên tắc "tiết kiệm tối đa tài nguyên" của thiết bị, dùng mọi cách để tối ưu
hóa độ phức tạp tính toán cũng như lượng bộ nhớ cần sử dụng. Tuy nhiên, cùng với sự
phát triển nhanh chóng của phần cứng, các thiết bị di động hiện đại thường có cấu hình
rất tốt, với chip xử lý mạnh mẽ, bộ nhớ (RAM) lớn, khiến việc lập trình cho thiết bị di
dộng trở nên dễ dàng hơn bao giờ hết. Các bộ kit phát triển của các hãng sản xuất hệ
điều hành di động hiện nay cũng thường làm trong suốt hầu hết các tác vụ liên quan
đến quản lý bộ nhớ, quản lý tiến trình... Lập trình viên có thể ít quan tâm hơn đến việc
tối ưu hóa sử dụng tài nguyên và tập trung vào việc "lập trình", phát triển tính năng
cho ứng dụng như khi lập trình cho máy tính cá nhân.
Tuy nhiên, đặc trưng di động của các thiết bị này cũng đem đến nhiều vấn đề mà
người lập trình cần phải quan tâm như:
Tính "di động" của các thiệt bị này khiến kết nối mạng trở nên rất bất ổn định và
khó kiểm soát. Các ứng dụng phụ thuộc nhiều vào kết nối Internet cần chú ý điểm này.
Lưu lượng Internet trền thiết bị di động thường có chi phí cao hơn so với Internet

cố định. Điều này cũng cần lưu ý khi phát triển các ứng dụng sử dụng nhiều tài nguyên
Internet như phim trực tuyến, nhạc trực tuyến...
So với máy tính cá nhân, các thiết bị di động hiện đại được trang bị thêm rất
nhiều tính năng giúp việc tương tác với người dùng trở nên thuận tiện (màn hình cảm
ứng đa điểm, tương tác giọng nói, cử chỉ...), các loại kết nối đa dạng (NFC, GPS, 3G,
4G, bluetooth, IR...), các cảm biến phong phú giúp trải nghiệm rất đa dạng (cảm biến
ánh sáng, cảm biến tiệm cận, la bàn, cám biến chuyển động, gia tốc kế...). Người lập
7


trình, tùy thuộc vào ứng dụng cụ thể, có thể sử dụng đến các tính năng đặc biệt này để
đem đến cho người dùng trải nghiệm tốt nhất trên thiết bị di động của mình.
Ngoài ra các hãng phát triển hệ điều hành di động đều làm ra bộ công cụ phát
triển (SDK) và môi trường phát triển tích hợp (IDE) rất thuận tiện cho việc viết mã
nguồn, biên dịch, gỡ rối, kiểm thử cũng như xuất bản phần mềm.
Xét theo thị phần trên thị trường, ba hệ điều hành phổ biến nhất cho thiết bị di
động hiện nay là Google's Android, Apple's iOS và Microsoft's Windows Phone. Mỗi
ứng dụng thành công thường được phát triển cho cả 3 hệ nền này. Mỗi hệ nền đều có
một chợ ứng dụng chính hãng (Google có Google Play Store, Apple có Apple
AppStore, Microsoft có Windows Phone Store) với rất nhiều khách hàng tiềm năng,
giúp người phát triển có thể phân phối ứng dụng miễn phí hoặc có phí với chi phí nhất
định.
Bảng dưới đây liệt kê các hệ điều hành cùng với ngôn ngữ lập trình và IDE phổ
biến nhất của nó.

Bảng 2.: Giới thiệu về các HĐH di động

Ngoài việc phát triển ứng dụng cho từng hệ điều hành như kể trên, lập trình viên
có thể lựa chọn các thư viện lập trình đa nền tảng để phát triển ứng dụng, phổ biến
nhất trong các ứng dụng đa nền là các ứng dụng viết bằng ngôn ngữ Web (HTML5,

CSS & Javascript). Trình duyệt web của các thiết bị di động hiện nay có đầy đủ tính
năng lẫn hiệu năng để chạy tốt các ứng dụng web hiện đại. Một ứng dụng Web có thể
được đặt trên máy chủ hoặc được đóng gói thành native app (ứng dụng cho từng hệ
điều hành) qua một số công cụ đóng gói của các hãng thứ ba.
Công cụ đóng gói ứng dụng Web cho thiết bị di động phổ biến nhất hiện nay là
PhoneGap ( được phát triển bởi Nitobi, sau được Adobe mua
lại. PhoneGap cho phép lập trình viên phát triển ứng dụng di động sử dụng ngôn ngữ
Web phổ biến (HTML5, CSS3 và Javascript), với các tính năng bổ sung, cho phép ứng
dụng truy cập vào phần cứng của thiết bị như gia tốc kế, máy ảnh, GPS... và đóng gói

8


thành ứng dụng cho nhiều hệ điều hành khác nhau, bao gồm Android, iOS, Blackberry,
BlackBerry 10, Windows Phone, Windows 8, Tizen, Bada. Tuy nhiên, nhược điểm của
các ứng dụng loại này là hiệu suất thấp (chạy không được "mượt mà" như ứng dụng
native) và không đồng nhất giữa tất cả các trình duyệt Web di động (có thể chạy hoặc
hiển thị khác nhau trên các hệ điều hành với các trình duyệt khác nhau).
Việc chọn hệ điều hành/thư viện nào để phát triển tùy thuộc vào nhiều yếu tố
khác nhau như mục đích của ứng dụng, đối tượng sử dụng, tiềm năng của hệ điều
hành, các yêu cầu kỹ thuật cụ thể cũng như thói quen và kỹ năng của lập trình viên.
Trong khuôn khổ giáo trình này, chúng tôi tập trung đi sâu vào việc phát triển ứng
dụng cho hệ điều hành di động phổ biến nhất hiện nay - Google's Android.
Tổng quan về hệ điều hành Android.
Android là mộ hệ điều hành di động mã nguồn mở miễn phí và được ưa chuộng
trên thế giới dựa trên nền tảng Linux kernel do Google phát triển dành cho các dòng
điện thoại Smartphone và máy tính bảng.
Tháng 11/2007, Liên minh thiết bị cầm tay mở rộng (Open Handset Alliance) với
sự đồng thuận của Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG,
Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics,

Sprint Nextel và T-Mobile đã thành lập với mục đích phát triển các tiêu chuẩn mở cho
thiết bị di động.
Từ tháng 10/2008, hệ điều hành Android đã chính thức trở thành phần mềm mã
nguồn mở. Theo đó, các công ty thứ ba được phép thêm những ứng dụng của riêng của
họ vào Android và bán chúng
Đến năm 2010, số lượng smartphone nền tảng Android tăng trưởng mạnh mẽ.
Hàng loạt nhà sản xuất hàng đầu đã bắt tay sản xuất smartphone như Samsung, HTC,
Motorola…
2.1.1 Cấu trúc, công nghệ áp dụng trong hệ điều hành android.
Hệ điều hành Android có 4 tầng đó là tầng Application, tầng Application
Framework, tầng Libraries & Android runtime, tầng cuối cùng là Linux kernel

9


Hình 2.: Cấu trúc hệ điều hành Android
Application
Đây là tầng ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng cơ bản
được cài đặt gắn liền với hệ điều hành như: phone, contacts, web, SMS, Calendar ….
Các ứng dụng trong tầng Application được phát triển bằng ngôn ngữ java, phần
mở rộng là file apk
Khi một ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng
lên để phục vụ cho nó. Nó có thể là một Active Program: chương trình có giao diện
với người sử dụng hoặc là một Background: chương trình chạy nền hay là dịch vụ
Application Framework
Tầng này cung cấp một nền tảng phát triển ứng dụng mở và xây dựng bộ công cụ
các phần tử ở mức cao qua đó cho phép nhà phát triển ứng dụng có thể nhanh chóng
xây dựng ứng dụng và khả năng tạo ra các ừng dụng mới phong phú hơn.
Các lợi ích mà tầng này cung cấp cho nhà phát triển:


10


Với các nhà sản xuất phần cứng điện thoại: có thể tùy biến hệ điều hành để phù
hợp với cấu hình phần cứng điện thoại mà họ sản xuất cũng như để có nhiều mẫu mã
điện thoại để phù hợp với thị hiếu của người tiêu dùng.
Với nhà phát triển ứng dụng: Cho phép các lập trình viên có thể sử dụng các API
ở tầng trên mà không cần phải hiển rõ cấu trúc bên dưới. Một tập hợp các API rất hữu
ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các
ứng dụng, các thành phần giao diện, điều này tạo điều kiện thuận lợi cho các lâp trình
viên làm việc vì họ chỉ cần quan tâm đến nội dung mà ứng dụng của họ mà không cần
phải quan tâm đến những thứ liên quan khác.
Các thành phần của Application Framework
-

Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung

-

cấp công cụ điều khiển các Activity.
Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc gọi điện

-

thoại.
Location Manager: Cho phép xác định vị trí của điện thoại dựa vào hệ thống

-

định vị toàn cầu GPS và Google Maps.

Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người

-

dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng.
Notication Manager: Quản lý việc hiển thị các thông báo như tin nhắn,

-

email….
Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các

-

file hình ảnh, âm thanh, layout
View System: được dùng để xây dựng giao diện một ứng dụng bao gồm các

-

văn bản, nút bấm và cả những web nhúng.
Content Providers :Cho phép truy cập dữ liệu từ các ứng dụng khác như quản
lý danh bạ hoặc chia sẽ dữ liệu của riêng mình
Libraries & Android runtime

Libraries chứa các thư viện viết bằng C/C++ để các phần mềm có thể sử dụng.
Những tính năng này được cung cấp cho các lập trình viên thông qua bộ framework
của Android, các thư viện đó được tập hợp thành một số nhóm như:
System C library: thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều hành.
-


Media Libraries: Có nhiều codec để hỗ trợ việc phát và ghi lại các loại định
dạng âm thanh, hình ảnh, video.

11


-

LibWebCore: Đây là thành phần để xem nội dung trên web, được sử dụng để
xây dựng phần mềm duyệt web (Android Browse) và các ứng dụng nhúng vào

-

web. Nó hỗ trợ các công nghệ như HTML5, javaScript, CSS, Flash…
Surface Manager: quản lý truy cập vào các hệ thống hiển thị và tổng hợp đồ

-

họa 2D và 3D các lớp từ nhiều ứng dụng trên thiết bị.
SGL: công cụ đồ họa 2D cơ bản.
3D libraries: Dựa trên OpenGL ES 1.0 API, dùng để tăng tốc phần cứng 3D

-

hoặc để tối ưu hóa các phần mềm 3D.
SQLite : Hệ cơ sở dữ liệu dùng cho tất cả các ứng dụng

Android runtime. Phần này chứa các thư viện mà một chương trình viết bằng
ngôn ngữ Java có thể hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạy
Java trên máy tính:

-

Các thư viện lõi (Core Library) chứa các lớp như Java IO, collections, File

-

Access.
Một máy ảo java (Dalvik Virtual Machine).
Linux kernel

Hệ điều hành Android được phát triển dựa trên nhân của Linux phiên bản 2.6. Tất
cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp
thấp ở lớp này bao gồm quản lý bộ nhớ (Memory Management), giao tiếp với phần
cứng (Driver model), thực hiện bảo mật (Security), quản lý tiến trình (Process).
Các thành phần chủ yếu của tầng này:
-

Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận

-

những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng…).
Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ

-

camera trả về.
Keypad Driver: Điều khiển bàn phím.
Wifi Driver: Điều khiển việc thu phát song Wifi.
Audio Driver: Điều khiển các bộ thu phát song âm thanh, giải mã các tín hiệu


-

dạng audio thành tín hiệu và ngược lại.
Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô
tuyến CDMA, GSM, 3G, 4G để đảm bảo những chức năng truyền thông được

-

thực hiện.
Power Madagement: Giám sát việc tiêu thụ năng lượng.
Flash Memory Driver: Điều khiển quản lý bộ nhớ.

12


2.1.2 Các thành phần trong một Android Project.
Activity: Có thể nói đây là thành phần tối quan trọng của bất kì ứng dụng
Android nào. Activity đảm nhiệm công việc tạo ra một cửa sổ (window) để người lập
trình đặt lên đó một giao diện thông qua phương thức setContentView(View), phương
thức này được gọi trong phương thức onCreate() của class được extends từ Activity.
Activity nó có thể tạo ra nhiều loại cửa sổ khác nhau như: full screen windows (toàn
màn hình), floating (khi dùng windowsIsFloating), nằm lồng bên trong một Activity
khác khi sử dụng ActivityGroup.
Khi một Class được kế thừa từ Activity hầu như đều được viết đè hai phương
thức cơ bản là:
-

onCreate(Bundle) viết các lệnh khởi tạo activity, nạp giao diện, khởi gọi
các widget, gọi phương thức xử lý chính của ứng dụng…


-

onPause() viết các lệnh giải quyết sự kiện người dùng thoát khỏi activity
(lúc này dữ liệu người dùng hiện tại thường được lưu trữ lại trong
ContentProvider).

Mỗi activity mà muốn hoạt động, nó đều phải khai báo trong trong file
AndroidMaintifest.xml, và được viết trong tag activity
Qua đó ta thấy rằng vòng đời của một ứng dụng android chính là vòng đời của
một Activity, để hiểu rõ về vòng đời các bạn xem bài trước nhé.
Service: là một thành phần luôn luôn chạy ẩn trong hệ thống android mà người
dùng không thể thấy được. Service dùng để cập nhật dữ liệu, đưa ra các cảnh báo cần
thiết, chơi nhạc,… ví dụ đơn giản thì khi bạn mở một bài hát sau đó mở trình duyệt
web thì giao diện hiện tại là trình duyệt còn giao diện chơi nhạc đã biến mất nhưng bài
hát đó thì vẫn đang được chơi đó là nhờ có service.
Tóm lại, service là các tác vụ (task) chạy ngầm trong hệ thống android nhằm thực
hiện một công việc nào đó. Cũng như Activity, mỗi class kế thừa từ Service đều phải
khai báo thẻ trong file AndroidMaintifest.xml. Service là một tác vụ nên nó cũng có
vòng đời như Activity nhưng có 2 kiểu vòng đời với mỗi kiểu ta có một cách khởi tạo
service riêng để hiểu rõ hơn về service thì mình sẽ có một bài hướng dẫn cụ thể về
cách tạo service và quản lý nó.

13


Broadcast Receiver: Đây là thành phần phổ biến, nó luôn chạy ngầm trong hệ
thống android với mục đích thu thập các Intent thông báo từ hệ điều hành ví dụ như:
có một sms gửi đến, pin yếu, có cuộc gọi,…
Ví dụ đơn giản thế này cho dễ hiểu: khi bạn viết một ứng dụng nhắn tin thì bạn

cần đặt vấn đề làm thế nào để biết được có một tin vừa gửi đến, Broadcast Receiver sẽ
làm điều này, nó luôn luôn lắng nghe xem có thông tin mới nào từ hệ thống không nếu
có thông tin mà bạn mong muốn nó sẽ thông báo cho bạn.
Content Provider: Là một kho dữ liệu chia sẻ nó cung cấp cách truy cập dữ liệu
và giúp chia sẻ dữ liệu giữa các ứng dụng.
Android cung cấp sẵn cho lập trình viên một số kiểu content providers cho các
loại dữ liệu phổ dụng như thông tin danh bạ, dữ liệu lưu trữ trên SQL Lite, dữ liệu lưu
trữ trong các tập tin. Ngoài ra, các lập trình viên có thể tự định nghĩa các kiểu Content
Providers mới. Để hoạt động được Content Provider cũng cần phải khai báo trong
AndroidMaintifest.xml
Intent: Intent là thành phần tối quan trọng trong một ứng dụng android, nó là
một định dạng chuẩn dùng để đưa dữ liệu lên đó và khởi tạo một Activity hay truyền
dữ liệu giữa các Activity, thậm chí là truyền dữ liệu giữa các ứng dụng đang thực thi,
hoặc nó có thể được dùng để khởi tạo một Service.
Ví dụ: Khi bạn mở một trang web, thì phải có một thành phần nào đó gửi dữ liệu
đi để tạo một activity hiển thị trang web, đó chính là intent.
Notification: Nó đưa ra các thông báo khi ứng dụng android đang được thực thi
và không làm ảnh hưởng gì đến ứng dụng thực thi. Thông thường các lập trình viên
hay dùng dạng thông báo là Toast và AlertDialog.
2.2 Đặc điểm về hệ điều hành Android.
Không phải ngẫu nhiên mà hệ điều hành Android lại có thể chiếm đến 75% thị
phần Smartphone hiện nay. Để có được những thành quả như vậy chắc hẳn hệ điều
hành Android có những điểm mạnh và lợi thế riêng so với các hệ điều hành khác như
IOS, WindowPhone, BlackBerry …
2.2.1 Ưu điểm của hệ điều hành Android.
2.2.1.1 Mã nguồn mở.
Trong khi các hệ điều hành như iOS, WindowPhone sử dụng mã nguồn đóng thì
Android lại đi ngược lại bằng cách mở mã nguồn và cung cấp cho người dùng tùy ý
14



chỉnh sửa, mặc sức “xào nấu” mà không có sự can thiệp hay cấm cản từ Google. Do
đó, trước khi các nhà sản xuất lớn như Samsung, Sony, LG, HTC, Oppo … cài đặt hệ
điều hành Android trên thiết bị của mình thì họ đã tinh chỉnh và bổ sung rất nhiều thứ
từ giao diện, đến vô số những tính năng thông minh, tiện lợi.

Hình 2.2: Mỗi hãng có một cách tùy biến giao diện khác nhau
Thêm một điều mà các hệ điều hành khác như iOS, WindowPhone không có
được đó là việc tự thiết kế giao diện màn hình HomeScreen. Bạn có thể tự kéo thả
những icon,
2.2.1.2 Giá cả hợp lý từ bình dân đến cao cấp.
Mức giá để sở hữu một thiết bị là vấn đề mà không ít người quan tâm đến. Với
các thiết bị Android, trong khoảng từ 1 – 20 triệu đồng, bạn sẽ có muôn vàn những lựa
chọn, từ những thiết bị bình dân vừa túi tiền đến những thiết bị cao cấp sở hữu vô số
những tính năng hữu ích. Trên thị trường hiện nay có rất nhiều hãng điện tử như
Samsung, LG, Sony, Lenovo, Oppo, Huawei … tung ra hàng loạt các sản phẩm đủ mọi
kích cỡ, đủ mọi mức giá vì vậy người dùng sẽ có nhiều sự để lựa chọn hơn so với các
thiết bị sử dụng hệ điều hành khác.
2.2.1.3 Kho ứng dụng Google Play Store đồ sộ.
Trước đây, khi mới ra mắt kho ứng dụng Google Play chỉ vỏn vẹn có một số ứng
dụng. Nhưng đến nay, kho ứng dụng này đã đạt đến hơn 650.000 ứng dụng, trong đó
có rất nhiều ứng dụng miễn phí mà vô cùng tiện dụng. Đây cũng là lý do để giải thích
cho sự phát triển chóng mặt của hệ điều hành Android trong thế giới di động. Nếu bạn
15


sử dụng một thiết bị Android, chắc hẳn bạn sẽ không phải bận tâm vì “thiếu ứng dụng
để cài” mà cái bạn sẽ bận tâm đó là “không đủ bộ nhớ để cài”.
2.2.2 Nhược điểm của hệ điều hành Android.
2.2.2.1 Khả năng dọn rác kém.

Sau một thời gian sử dụng thiết bị Android, các dữ liệu của ứng dụng đã được
lưu trong bộ nhớ đệm, mà máy không có quá trình tự động để dọn dẹp chúng đi.
Những dữ liệu này nếu không được dọn dẹp sẽ vẫn nằm ở đó và chiếm bộ nhớ của
máy, đặc biệt là bộ nhớ RAM, vì vậy nếu sử dụng các thiết bị có bộ nhớ RAM thấp
bạn sẽ thường xuyên gặp phải tình trạng giật, lag khi đang sử dụng. Tuy nhiên, nhược
điểm này cũng có cách để khắc phục, nếu máy không tự “quét nhà” thì bạn sẽ phải
“quét” bằng cách cài đặt các ứng dụng dọn dẹp như: History Eraser, Android System
Cleaner, Clean MasterNhưng vấn đề giật, lag chỉ gặp ở những máy có cấu hình thấp,
đối với những máy tầm trung hoặc cao cấp hiện nay thì hiện tượng đó rất hiếm.
2.2.2.2 Quá nhiều phiên bản dẫn đến việc phân mảnh.

Sơ đồ 2.: Sơ đồ thể hiện các thiết bị chạy các phiên bản Android
“Đem con bỏ chợ” là những gì mà đa phần người dùng than phiền Google khi sử
dụng hệ điều hành Android phiên bản cũ và không được hỗ trợ nâng cấp lên phiên bản
mới. Do tốc độ phát triển nhanh, kèm theo việc nâng cấp phiên bản thường xuyên dẫn
đến việc có rất nhiều phiên bản Android trên thị trường. Thêm vào đó là rất nhiều hãng
sử dụng hệ điều hành Android mà không thể nào hỗ trợ nâng cấp hết cho tất cả các
thiết bị. Một phần cũng dễ hiểu vì họ luôn chạy theo và tập trung phát triển cho cái
mới nên việc bỏ quên các thiết bị cũ là không hề tránh khỏi.
16


2.2.2.3 Bảo mật.
Do đặc điểm là mã nguồn mở, nên đây là điều kiện để những người có ý đồ xấu
tìm hiểu và khai thác lỗ hổng bảo mật trên thiết bị Android. Ví dụ: trước đây có một
ứng dụng tên là iCalendar là một ứng dụng lịch báo thông thường với những icon và
hiệu ứng lạ mắt, nhưng ẩn bên dưới là những đoạn mã độc dùng để “móc túi” người
dùng, những đoạn mã độc này sẽ tự động gửi tin nhắn về tổng đài đã được định sẵn khi
chạm 5 lần trên màn hình mà người dùng không hề hay biết. Sau khi vụ việc được phát
hiện thì ứng dụng đó đã bị gỡ bỏ khỏi Google Play. Dần dần qua các phiên bản,

Google cũng đã cải thiện khả năng bảo mật, nhưng “liệu có còn tồn tại những lỗ hổng
nữa không?” thì vẫn chưa thể trả lời chính xác được.
2.3 Tổng quan về quy trình hoạt động của một ứng dụng trên hệ điều hành
Android.
Windows vẫn duy trì chương trình, “đối đãi” với chúng như nhau dù bạn có thu
nhỏ cửa sổ. iOS chỉ cho phép 1 ứng dụng duy nhất hoạt động tại một thời điểm.
Android nằm đâu đó ở giữa, ứng dụng đang chạy được ưu tiên nhưng những ứng dụng
khác không bị “siết chặt” như iOS.
2.3.1 Hệ thống phân cấp.
Thứ bậc của process trong Android được chia thành 5 cấp theo 5 mức độ quan
trọng từ cao đến thấp:
Foreground process (tạm dịch: tiến trình nổi bật): Đây chính là những process
dùng để chạy ứng dụng (app) bạn đang dùng. Những process khác cũng có thể được
xem là foreground khi chúng có liên hệ trức tiếp với process “xử lý” app đang chạy.
Tại một thời điểm cũng chỉ có vài foreground process mà thôi.
Visible process (tạm dịch: tiến trình nhìn thấy được): Visible process không liên
quan đến app đang chạy nhưng có tác động đến những gì thể hiện trên màn hình. Ví
dụ, foreground process có tính năng “trong suốt” (transparent) và những ứng dụng
được hiển thị đằng sau chính là visible process. Dễ thấy nhất là khi cài các theme hỗ
trợ khả năng “làm mờ” ứng dụng hoặc “ghim” ứng dụng lên màn hình.
Service process (tạm dịch: tiến trình dịch vụ): Tiến trình dạng này không liên
quan đến bất kì ứng dụng cả đang chạy và “dưới” đang chạy nào. Chúng thực hiện
công việc một cách âm thầm như chơi nhạc hay tải tập tin. Ví dụ bạn đang nghe nhạc
và muốn chuyển sang chơi game, khi bạn mở game cũng là lúc process phát nhạc trở
thành service process, vẫn tiếp tục chơi nhạc khi bạn làm việc khác.
17


Background process (tạm dịch: tiến trình nền): Background process không xuất
hiện, cũng không thực hiện vai trò dễ nhận ra (như chơi nhạc), chúng không ảnh

hưởng đến trải nghiệm sử dụng. Tại một thời điểm, có rất nhiều background process
đang chạy và bạn có thể xem chúng là những ứng dụng đang “tạm dừng”. Background
process vẫn sử dụng RAM, cho phép bạn nhanh chóng chuyển đổi trở lại nhưng không
sử dụng thêm tài nguyên phần cứng nào khác. Ví dụ khi dùng Chrome và bấm phím
Home, Chrome trở thành background process và khi mở lại Chrome, nó cũng lập tức
mở lại tab đang xem.
2.3.2 Tính năng tự động quản lý tiến trình của Android.
Android có khả năng quản lý process một cách tự động, do đó bạn không cần cài
đặt bất kì ứng dụng “quản lý ứng dụng” nào.
Khi cần nhiều tài nguyên, Android tự động xóa các process ít quan trọng nhất,
bắt đầu từ empty và background process. Khi cần nhiều tài nguyên hơn nữa như lúc
chơi game nặng, hệ thống tự động loại bỏ thêm service process. Chơi game nặng, nhạc
của bạn sẽ tự tắt, tập tin tải về tự động dừng.
Trong đa số trường hợp, bạn không cần lo về lượng RAM của máy. Nhiều người
lo rằng máy mình chỉ còn 1 ít RAM và “đổ thừa” cho hệ thống là không đúng. Cơ chế
quản lý thông minh của Android tự động lưu giữ các ứng dụng và dữ liệu khác trên
RAM cho bạn trải nghiệm tốt nhất có thể.
Dĩ nhiên, sự linh hoạt cũng có điểm yếu. Nếu một ứng dụng được lập trình không
tốt, một service process có thể tiếp tục sử dụng tài nguyên CPU và RAM khiến máy
nóng lên và tụt pin nhanh chóng. Về mặt kĩ thuật, tình trạng này được gọi là “memory
leaked” (rò rỉ bộ nhớ).

2.4 Kết luận
Qua việc tìm hiểu việc lập trình trên nền tảng di dộng, đặc biệt là hệ điều hành
Android, hiểu được những ưu, nhược điểm của nó, chúng ta hoàn toàn có thể xây dựng
ứng dụng tốt nhất cho người dùng, đem lại cho người dùng những trải nghiệm tốt nhất

Hình 4.18: Giao diện đọc báo

18



2.4.1 Giao diện tìm kiếm địa điểm.

Hình 4.19: Giao diện tìm kiếm địa điểm
2.5 Cài đặt và thử nghiệm chương trình.
2.5.1 Môi trường cài đặt.
2.5.1.1 Môi trường cài đặt Website.
-

Website được xây dựng trên Visual Studio 2012, bằng ngôn ngữ ASP.NET
Cơ sở dữ liệu được xây dựng trên SQL Server 2008
Cài đặt website trên hosting ASP.NET của somme.com

2.5.1.2 Môi trường cài đặt Ứng dụng.
-

Yêu cầu phần cứng:
• Tối thiểu: màn hình: trên 4.7 in, độ phân giải HD
• Khuyến cáo: màn hình 5.2 in, độ phân giải full HD

-

Yêu cầu phần mềm:
• Tối thiểu: Android 4.0 trở lên
• Khuyến cáo: Android 4.4.2

19



2.5.2 Thu thập dữ liệu.
2.5.2.1 Dữ liệu từ vựng.
Dữ liệu từ vựng được thu thập, biên soạn từ giáo trình Minano Nihongo Tập 1.
Với 25 bài học trong giáo trình, cùng với đó là số lượng từ vựng phong phú, sẽ giúp
ích rất nhiều cho người học trong việc học tập và củng cố kiến thức

Hình 4.20: Giáo trình Minano Nihongo 1
Dữ liệu từ vựng được thêm vào database SQLite, bảng learnjapanes với 914 bản
ghi với nghĩa tiếng Việt, tiếng Nhật, bài học số bao nhiêu sẽ hệ thống hóa lượng từ
vựng có trong giáo trình

20


Hình 4.21: Dữ liệu từ vựng trong SQLite
2.5.2.2 Dữ liệu ngữ pháp.
Dữ liệu ngữ pháp được thu thập, biên soạn từ giáo trình Minano Nihongo Tập 1.
Với 25 bài học trong giáo trình, cùng với đó là số lượng mẫu câu phong phú, sẽ giúp
ích rất nhiều cho người học trong việc học tập và củng cố kiến thức ngữ pháp Tiếng
Nhật
Dữ liệu từ vựng được biên soạn thành 25 file HTML, sau đó sẽ được hiển thị lên
WebView

21


Hình 4.22: Dữ liệu ngữ pháp
2.5.2.3 Dữ liệu đọc báo.
Dữ liệu đọc báo được lấy từ Rss của trang NHK với những chuyên đề: tin chính,
chính trị, văn hóa, xã hội, kinh tế, ngoại giao…


Hình 4.23: Dữ liệu RSS của trang NHK
2.5.2.4 Dữ liệu địa điểm.
-

Dữ liệu địa điểm được quản trị viên thêm vào SQL server quan trang quản trị.
Các địa điểm được quản trị viên tìm kiếm bằng cách: tìm kiếm những địa điểm

22


được mọi người đánh giá cao, cũng như có trang web hiển thị đối với địa điểm
đó
-

Tọa độ địa điểm được tìm trên bản đồ Google Map với độ chi tiết và chính xác
cao, thuận lợi cho việc tính toán và hiển thị

2.5.3 Thử nghiệm và đánh giá chương trình.
2.5.3.1 Thử nghiệm.
-

Các chức năng quản trị về địa điểm, thông tin địa điểm, và loại địa điểm chạy
ổn định, không phát sinh lỗi, đáp ứng tốt yêu cầu đề ra đối với website quản trị
địa điểm của Admin

-

Đối với ứng dụng: các chức năng chạy ổn định, không phát sinh lỗi, đáp ứng
tốt yêu cầu đặt ra. Các chức năng đòi hỏi kết nối network hay GPS có sự kiểm

tra kết nối trước khi thực hiện yêu cầu, Nhiều lỗi cơ bản của người dùng được
kiểm tra trước khi thực hiện, tránh các lỗi phát sinh

2.5.3.2 Đánh giá kết quả.
Về cơ bản chương trình đã đạt được một số kết quả nhất định:
-

Tìm hiểu và áp dụng được việc viết chương trình trên hệ điều hành Android

-

Tìm hiểu về quy trình, học và nghiên cứu tiếng Nhật

-

Thời gian xử lý yêu cầu rất nhanh và kết quả chính xác.

-

Các chức năng của hệ thống cả trên website và ứng dụng hoạt động tốt

-

Giao diện thân thiện, dễ sử dụng.

2.6 Kết luận
Từ việc phân tích thiết kê, cho đến xây dựng chương trình hoàn chỉnh, đến việc
cài đặt chương trình, và kiểm thử, cho thấy ứng dụng hoạt động tốt, đáp ứng tốt những
yêu cầu mà đặt vấn đề đưa ra. Tạo tiền đề cho việc phát triển ứng dụng sau này hoàn
thiện hơn trong quá trình nâng cấp.


23


KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Báo cáo “Xây dựng ứng ngôn ngữ và văn hóa Nhật Bản” là một đề tài khá
rộng, các kiến thức về lĩnh vực này nặng về tính chuyên môn. Trong thời gian nghiên
cứu và tìm hiểu, và thực hiện báo cáo, em đã cố gắng để hoàn thành về việc tìm hiểu
về mong muốn của người dùng về một ứng dụng tiện ích, hiệu quả và tiết kiệm nhất
nhưng cũng đồng thời mang lại hiệu quả cao nhất cho người dùng
Không chỉ vậy hệ thống này còn đáp ứng nhu cầu cập nhật tin tức về nhiều mặt
của đời sống xã hội Nhật bản cho nhiều người, sinh viên ... quan tâm đến văn hóa,
ngôn ngữ Nhật bản
Để đưa đến người dùng những chức năng và trải nghiệm tốt hơn và có thể đưa
ứng dụng lên Google Play thì trong tương lai, tôi dựng định sẽ có thêm những module
mới giúp hỗ trợ tốt hơn cho người dùng: tìm kiếm địa điểm theo tên, học tiếng Nhật
qua đoạn văn ngắn.... Và các tính năng này, tôi sẽ hoàn thiện trong thời gian tới

24


TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]

ThS. Trương Thị Ngọc Phượng, “Giáo trình lập trình Android”, Đại học Quốc
gia Tp.HCM

[2] Lê Hoàng Sơn, “Giáo trình lập trình Android”, NXB Xây dựng
[3] Đỗ Lâm Thiên, “Lập trình ứng dụng Web với ASP.NET”, Đại học quốc gia thành

phố Hồ Chí Minh, trường Đại học khoa học tự nhiên
[4] ThS. Nguyễn Minh Đạo, ”Giáo trình lập trình web với ASP.NET”, Trường đại
học sư phạm kỹ thuật thành phố Hồ Chí Minh
Tiếng Anh:
[5] Kyle Merrifield Mew, “Android 3.0 Application Development Cookbook”
[6]

Lauren Darcey and Shane Conder, “SamsTeach Yourself Android ™ Application
Development Second Edition 24 in Hours”

[7]

Marziah Karch, “Android for Work Productivity for Professionals”

[8]

Johannes Knutsen, “Web Service Clients on Mobile Android”
Website:

[9]
[10]
[11]
[12]
[13]

/>o/
/> /> />
25



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×