Hiện nay, tiếng Nhật được coi là ngôn ngữ khó nhất nhì trên thế giới. Hàng triệu người từ các nền văn hóa khác nhau đều nỗ lực học tiếng Nhật mỗi ngày. Ở Việt Nam, tiếng Nhật cũng đã chiếm được vị trí quan trọng kể từ khi đất nước bắt đầu thực hiện chính sách mở cửa hội nhập ra khu vực và thế giới. Ở nhiều lĩnh vực khác nhau trong xã hội như kinh tế, chính trị, khoa học, du lịch, vv... đều rất cần những người có trình độ tiếng Nhật giỏi. Người ta học và sử dụng tiếng Nhật với nhiều mục đích khác nhau để đáp ứng nhu cầu giao tiếp ngày càng lớn trong xã hội, để kiếm được công việc tốt, để được thăng chức, hay để giành được cơ hội đi du học và làm việc ở nước ngoài. Cùng với đó, sự phát triển của công nghệ di động đã bùng nổ trong vài năm qua. Các thiết bị cầm tay đã trở nên mạnh mẽ và rất phổ biến. Trong vài năm trở lại đây, hệ điều hành Android ra đời và trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay. Những ưu điểm dễ thấy nhất của Android chính là khả năng tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ trợ phong phú, tương thích với đa cấu hình phần cứng của các nhà sản xuất. Dù đã hay chưa từng sử dụng smartphone Android thì bạn cũng không cần quá lo lắng về việc thay đổi. Hầu như tất cả những smartphone sử dụng hệ điều hành Android đều rất dễ sử dụng, đơn giản trong tùy biến theo sở thích cá nhân, cũng như có rất nhiều ứng dụng để thỏa mãn nhu cầu của từng người dùng. Đồng thời Android có mã nguồn mở đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên được điều chỉnh và phân phối Android một cách tự do. Bởi vậy trước nhu cầu và lợi thế đó, nhóm em quyết định nghiên cứu và xây dựng ứng dụng: Xây dựng ứng dụng hỗ trợ học tiếng Nhật trên thiết bị di động chạy nền tảng Android.
Trang 1MỞ ĐẦU
Hiện nay, tiếng Nhật được coi là ngôn ngữ khó nhất nhì trên thế giới Hàng triệu người từ các nền văn hóa khác nhau đều nỗ lực học tiếng Nhật mỗi ngày Ở Việt Nam, tiếng Nhật cũng đã chiếm được vị trí quan trọng kể từ khi đất nước bắt đầu thực hiện chính sách mở cửa hội nhập ra khu vực và thế giới Ở nhiều lĩnh vực khác nhau trong xã hội như kinh tế, chính trị, khoa học, du lịch, vv đều rất cần những người có trình độ tiếng Nhật giỏi Người ta học và sử dụng tiếng Nhật với nhiều mục đích khác nhau để đáp ứng nhu cầu giao tiếp ngày càng lớn trong xã hội, để kiếm được công việc tốt, để được thăng chức, hay để giành được cơ hội đi du học và làm việc ở nước ngoài Cùng với đó, sự phát triển của công nghệ di động đã bùng nổ trong vài năm qua Các thiết bị cầm tay đã trở nên mạnh mẽ và rất phổ biến Trong vài năm trở lại đây, hệ điều hành Android ra đời và trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay Những ưu điểm dễ thấy nhất của Android chính là khả năng tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ trợ phong phú, tương thích với đa cấu hình phần cứng của các nhà sản xuất Dù
đã hay chưa từng sử dụng smartphone Android thì bạn cũng không cần quá lo lắng về việc thay đổi Hầu như tất cả những smartphone sử dụng hệ điều hành Android đều rất dễ sử dụng,
Trang 2đơn giản trong tùy biến theo sở thích cá nhân, cũng như có rất nhiều ứng dụng để thỏa mãn nhu cầu của từng người dùng Đồng thời Android có mã nguồn mở đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên được điều chỉnh
và phân phối Android một cách tự do Bởi vậy trước nhu cầu và lợi thế đó, nhóm em quyết định nghiên cứu và xây dựng ứng
dụng: Xây dựng ứng dụng hỗ trợ học tiếng Nhật trên thiết bị
di động chạy nền tảng Android.
Trang 3CHƯƠNG 1: TỔNG QUAN
1.Sơ lược về tiếng nhật
Tiếng Nhật Bản, hay tiếng Nhật (日本語 (にほんご) Nihongo?, Nhật Bản ngữ) là một ngôn ngữ được hơn 130 triệu người sử dụng ở Nhật Bản và những cộng đồng dân di
cư Nhật Bản khắp thế giới Nó là một ngôn ngữ chắp dính(khác biệt với tiếng
việt vốn thuộc vào loại ngôn ngữ đơn lập phân tích cao) và nổi bật với một hệ thống các nghi thức nghiêm ngặt và rành mạch, đặc biệt là hệ thống kính ngữ phức tạp thể hiện bản chất thứ bậc của xã hội Nhật Bản, với những dạng biến đổi động từ và sự kết hợp một số từ vựng để chỉ mối quan hệ giữa người nói, người nghe và người được nói đến trong cuộc hội thoại Kho ngữ âm của tiếng Nhật khá nhỏ, với một hệ thống ngữ điệu rõ rệt theo từ
Từ vựng Nhật chịu ảnh hưởng lớn bởi những từ mượn từ các ngôn ngữ khác Một số lượng khổng lồ các từ vựng mượn từ tiếng Hán, hoặc được tạo ra theo kiểu của tiếng Hán, qua giai đoạn ít nhất 1.500 năm Từ cuối thế kỷ 19, tiếng Nhật đã mượn một lượng từ vựng đáng kể từ hệ ngôn ngữ Ấn-Âu, chủ yếu là tiếng Anh Do mối quan hệ thương mại đặc biệt giữa Nhật Bản và Hà Lan vào thế kỷ thứ 17, tiếng Hà Lan cũng
có ảnh hưởng, với những từ như bīru (từ bier; "bia") và kōhī (từ koffie; "cà phê")
2 Sự thông dụng của tiếng nhật
Số người sử dụng
Ngày nay có khoảng một trăm triệu người nói tiếng Nhật trên khắp thế giới và con số này ngày càng tăng lên Tiếng Nhật là ngôn ngữ được sử dụng rộng rãi nhưng lại không thay thế các ngôn ngữ khác, thay vào đó nó hỗ trợ các ngôn ngữ với các yếu tố sau:
Là một trong 10 ngôn ngữ phổ biến nhất trên thế giới.
Việt Nam tiếng nhật là ngôn ngữ phổ biến thứ 2 sau tiếng anh hơn 1.7 triệu người theo học.
Số lượng người Việt Nam sang nhật ngày càng tăng.
3 Lý do chọn đề tài:
Trang 4 Ứng dụng hỗ trợ đầy đủ tính năng của một chương trình học tiếng Nhật qua hội thoại nano nihongo.
Mi- Phần mềm có thể nghe hội thoại,học từng câu một cách riêng biệt
Xem từng câu theo nghĩa Kanji,hiragana,romaji,dịch tiếng việt.
=>Giúp người học dẽ dàng học tiếng nhật qua hội thoại hơn
4 Giới thiệu hệ điều hành Android
Android là một hệ điều hành chạy trên điện thoại di động được phát triển từnhân Linux Được phát triển vào năm 2005 với một dự án cùng tên “Android” Trongmột phần chiến lược của mình để lấn sâu vào lĩnh vực di động Google đã mua về toàn
bộ quá trình phát triển cũng như đội phát triển của Android
Google phát hành Android dưới dạng mã nguồn mở và miễn phí, do đó bất cứ
ai muốn sử dụng đều có thể tải về mã nguồn Android đầy đủ Hơn nữa các nhà cungcấp (thường là những nhà phát triển phần cứng) có thể phát triển thêm phần mở rộng
và tùy biến cho Android để tạo những sản phẩm riêng biệt của họ so với sản phẩm củanhững công ty khác Điều này làm cho mô hình phát triển Android rất hấp dẫn và do
đó khơi dậy sự quan tâm của nhiều nhà cung cấp Điều này rất phù hợp với các công
ty bị ảnh hưởng bởi hiện tượng này như là Iphone của Apple, một sản phẩm cực kìthành công trong công cuộc cách mạng hóa ngành công nghiệp Smartphone Các công
ty như SamSung, Motorola, SonyEricsson và một số những nhà sản xuất đã tìm đượcmột con đường mới để làm sống dậy sản phẩm của họ Những nhà sản xuất này coiAndroid như một giải pháp – họ sẽ tiếp tục thiết kế phần cứng của riêng mình và sửdụng Android như một hệ điều hành chính
5 Lược sử về Android
Android được phát hành phiên bản đầu tiên 11/11/2007, là một môi trường hệđiều hành hoàn chỉnh dựa trên hệ điều hành nhân Linux V2.6 Lúc đầu, đích triển khaiđối với Android là lĩnh vực điện thoại di động, gồm các loại điện thoại thông minh vàcác loại thiết bị điện thoại kiểu gập chi phí thấp Tuy nhiên, phạm vi đầy đủ các dịch
vụ điện toán của Android và sự hỗ trợ chức năng phong phú của nó có tiềm năng mởrộng ra ngoài thị trường điện thoại di động Android còn có thể hữu ích đối với cácnền tảng và ứng dụng khác
Trang 5Nền Android là sản phẩm của Open Handset Alliance (Liên minh thiết bị cầmtay mở), một tập đoàn các tổ chức cùng hợp tác với nhau để xây dựng nên một loạiđiện thoại di động tốt hơn Tập đoàn do Google đứng đầu này gồm các nhà vận hành(điện thoại) di động, các nhà sản xuất thiết bị cầm tay, sản xuất linh kiện, các nhàcung cấp nền và giải pháp phần mềm và các công ty tiếp thị Từ một quan điểm pháttriển phần mềm, Android trở thành trung tâm của thế giới mã nguồn mở và rất có tiềmnăng phát triển.
Thiết bị cầm tay có khả năng Android đầu tiên trên thị trường là thiết bị G1 doHTC sản xuất và được bán trên T-Mobile Nó trở nên sẵn có sau gần một năm đồn đại,khi mà các công cụ phát triển phần mềm sẵn có duy nhất chỉ là một số bản phát hành
Bộ công cụ phát triển phần mềm (SDK) được cải tiến dần từng bước Khi ngày pháthành G1 gần đến, nhóm Android đã phát hành SDK V1.0 và các ứng dụng bắt đầuvượt lên nhằm hướng tới nền tảng mới này
Để kích thích đổi mới và phát triển các ứng dụng của Android, Google đã tàitrợ hai vòng cuộc thi “Các thách thức nhà phát triển Android”, và hàng triệu đô la đãđược đổ vào các ứng dụng dự thi hàng đầu Vài tháng sau G1, Android Market đượcphát hành, cho phép người sử dụng duyệt và tải về các ứng dụng trực tiếp vào điệnthoại của họ Trong vòng 18 tháng, một nền di động mới đã chính thức có mặt trên thịtrường và sẽ là đối thủ cạnh tranh nặng ký của các nền di động phổ biến trước đó nhưSymbian hay Window Mobile
Android cung cấp khá đầy đủ các công cụ cơ bản và được thiết kế sao cho cácnhà phát triển có thể tận dụng tối đa lợi thế của thiết bị cầm tay để xây dựng nên cácứng dụng thực sự thuyết phục Họ có thể tạo một ứng dụng có thể gọi thực hiện cácchức năng lõi trong điện thoại như thực hiện cuộc gọi, gửi tin nhắn SMS, dùngcamera… hay chia sẻ thông tin cá nhân lên trang web chẳn hạn như thông tin liên lạc,
vị trí địa lí, lịch biểu… Các nhà phát triển còn có thể làm bất cứ việc gì trên thiết bị
Trang 6Android bởi vì hệ thống Android giao tiếp thông qua các Intents – nó đơn giản là mộtchuỗi mô tả một hành động nào đó
ví dụ: “android.provider.Telephony.SMS_RECEIVED” Android còn cung cấpsẵn các dịch vụ định vị (và đây là một thế mạnh của Google) cùng với một tập các ứngdụng về “Map” với các tính năng rất ấn tượng như dò đường, tính khoảng cách địađiểm, tìm bạn… Ngoài ra còn có một số tính năng nổi bật khác như Animation vàđồng thời cũng hỗ trợ media-playback
6 Nền tảng Android
Với khả năng rộng rãi của Android, sẽ rất dễ dàng nhầm lẫn nó với một hệ điềuhành máy tính để bàn Android là một môi trường phân tầng, xây dựng trên nền của hệđiều hành nhân Linux, và nó bao hàm nhiều chức năng phong phú Hệ thống giao diệnngười sử dụng gồm có:
Trang 7Về mặt lịch sử, có hai lĩnh vực mà các ứng dụng di động đã gắng sức theo kịpcác đối tác máy tính để bàn là đồ họa/đa phương tiện và phương thức lưu trữ dữ liệu.Android giải quyết thách thức về đồ họa bằng sự hỗ trợ dựng sẵn cho đồ họa 2D và3D, gồm cả thư viện OpenGL Gánh nặng lưu trữ dữ liệu được giảm nhẹ vì nềnAndroid có gồm cả cơ sở dữ liệu SQLite mã nguồn mở phổ biến Hình 1.4 cho thấymột khung hình đơn giản hóa về các tầng phần mềm Android.
Hình 1.4 Cấu trúc Android
7.Kiến trúc ứng dụng Android
7.1 Máy ảo Dalvik
Các ứng dụng Android được viết bằng ngôn ngữ lập trình Java và chúng chạytrong một máy ảo (VM) Điều quan trọng phải lưu ý rằng VM không phải là một máy
ảo Java mà là máy ảo Dalvik (Dalvik Virtual Machine), một công nghệ mã nguồn mở.Chiếc máy ảo này dựa trên việc đăng kí (register-based) và được thiết kế bởi DanBornstein và một vài kĩ sư của Google Thuật ngữ “register-based” đã nói lên sự khácbiệt giữa máy ảo Android với máy ảo JAVA thông thường Tương tự như máy ảoJAVA, đây cũng chỉ là một máy ảo thông dịch, nhưng thông dịch các file có địnhdạng dex (Dalvik Execute) – một định dạng giúp tối ưu bộ nhớ và khả năng lưu trữcủa máy ảo – Các máy ảo JAVA ngày nay chủ yếu dựa trên ngăn xếp (Stack-based),với tính chất này cho phép rút ngắn thời gian thực thi chương trình.Mỗi ứng dụng
Trang 8Android chạy trong một cá thể của máy ảo Dalvik, khi đến lượt, cá thể máy ảo nàynằm trong một tiến trình do nhân Linux quản lý, như trình bày dưới đây.
Hình 1.5 Máy ảo Dalvik
8 Vòng đời của ứng dụng Android:
Không giống như các ứng dụng trên các nền tảng khác, các ứng dụng Androidkhông có một điều khiển đến vòng đời của chúng Thay vào đó, các thành phần ứngdụng phải lắng nghe việc thay đổi trạng thái bên trong của ứng dụng đó và tác độngtrở lại một cách hợp lý Mỗi một ứng dụng Android ở trong chính tiến trình của nó,chạy một thể hiện riêng biệt của Dalvik.Việc quản lý bộ nhớ và tiến trình của mỗi ứngdụng Android được điều khiển một cách riêng trong lúc runtime
Android quản lý tài nguyên một cách chặt chẽ, nó sẽ làm bất cứ việc gì để đảmbảo cho thiết bị duy trì đáp ứng Điều này có nghĩa là các tiến trình sẽ bị hủy đi màkhông có một cảnh báo nào nếu cần giải phóng tài nguyên cho các ứng dụng có độ ưutiên cao
Trang 9CHƯƠNG 2: CÁC THÀNH PHẦN CƠ BẢN CỦA MỘT ỨNG DỤNG ANDROID
1 Activity
1.1 Tạo một Activity
Để tạo một Activity mới, cần thừa kế từ lớp Activity, sử dụng các View đểcung cấp các tương tác với người dùng, khai báo các thành phần giao diện và thực thicác chức năng của ứng dụng
package com.paad.myapplication;
import android.app.Activity;
import android.os.Bundle;
public class MyActivity extends Activity {
/** Called when the activity is first created */
@Override public void onCreate(Bundle icicle) {
super.onCreate(icicle);
} }
Một lớp Activity cơ bản đưa ra một màn hình rỗng chứa cửa sổ hiển thị Vì vậyviệc cần thực hiện đầu tiên là khai báo bố cục cho nó bằng cách sử dụng các View vàLayout Activity UI được tạo thành bởi các View View là các điều khiển giao diệnngười dùng, hiển thị dữ liệu và cung cấp tương tác đến người dùng
Để gắn một giao diện cho một Activity, sử dụng phương thức setContentView
trong lớp Activity được kế thừa
Trang 10Có 2 cách để thiết lập giao diện cho Activity: bằng code hoặc thông qua fileđịnh nghĩa layout Ở trên là cách tạo giao diện bằng code, sau đây là cách tạo giao
diện người thông qua layout, truyền tham số vào cho phương thức setContentView là
Để dùng một Activity cần khai báo bên trong file manifest Thêm vào một thẻ
activity mới bên trong nút application Thẻ activity này bao gồm các thuộc tính cho
siêu dữ liệu (label, icon,…) Một Activity mà không được khai báo một thẻ activity
tương ứng sẽ không được khởi chạy
Ví dụ sau mô tả cách làm thế nào để khai báo Activity đã được tạo ở phần trên:
Trang 11Hình 2.1 Vòng đời của Activity
1.3 Khởi động một Activity
Để khởi động một Activity, chúng ta dùng Intent:
o Khai báo tường minh: cung cấp chính xác thông tin của activity cần gọi (nếucùng ứng dụng chỉ cần cung cấp tên class, nếu ứng dụng khác nhau thì cung cấp tênpackage, tên class) Ví dụ: đoạn code bên dưới sẽ khởi động activity tên làTargetActivity
Intent intent = new Intent(getApplicationContext(),TargetActivity.class);
startActivity(intent);
o Khai báo không tường minh: cung cấp thao tác cần làm gì, với loại dữ liệunào, thao tác thuộc nhóm nào… hệ thống sẽ tìm activity tương ứng để khởi động Vídụ: đoạn code bên dưới sẽ khởi động một activity nào đó đăng có khả năng xem ảnh
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivity(intent);
Trang 12Với cách khởi động activity không tường minh, chúng ta cần phải biết mộtchút về Intent-filter.Intent-filter sẽ giúp một activity đăng ký với hệ thống mình có thểlàm được thao tác gì, trong nhóm nào, với loại dữ liệu nào Như vậy khi intent vàintent-filter khớp nhau, activity sẽ được hệ thống khởi động.
1.4 Liên lạc giữa 2 Activity.
Có thể khởi động một activity với một yêu cầu nào đó và activity kia khi làmxong công việc sẽ trả lại kết quả cho activity trước Ví dụ activity A yêu cầu mộtactivity làm giúp việc chụp ảnh, activity B đáp ứng được việc này, sau khi user chụpảnh xong sẽ trả lại file ảnh cho activity A Để liên lạc 2 activity chúng ta làm nhu sau:
- Khi khởi động một activity, ta có thể gửi kèm dữ liệu trong intent như ví dụsau:
intent.putExtra("value1", new String("Hello"));
intent.putExtra(“value2", new Long(100));
- Bên phía activity được khởi động, có thể lấy dữ liệu được gửi như sau:
getIntent().getExtras().getString("value1");
getIntent().getExtras().getLong("value2");
2 Một số lớp hỗ trợ thiết kế giao diện cho ứng dụng Android
Android cung cấp một số công cụ thiết kế giao diện:
Views: là lớp UI cơ bản cho các control giao diện Tất cả các control giaodiện người dùng, các lớp layout đều được dẫn xuất từ lớp Views
ViewGroups: được mở rộng từ lớp View và có thể chứa nhiều Views.ViewGroups cũng được kế thừa để cung cấp các lớp quản lý bố cục nhưLinearLayout ViewGroup được dùng để xây dựng nên các component có thể dùng lại(widget) hoặc để quản lý bố cục cho các control
Activity: dùng để hiển thị giao diện người dùng Lớp này do người phát triểnứng dụng viết
Trang 13Hình 2.4 Quan hệ giữa các thành phần trên
3.Android Widget Toolbox
Android cung cấp một bộ công cụ các View chuẩn để tạo các giao diện ngườidùng đơn giản,giúp đơn giản hóa việc phát triển và tạo sự đồng nhất giữa các ứngdụng
• Spinner: là một control kết hợp, hiển thị một TextView và một ListView kếthợp dùng để chọn một item từ danh sách Nó được tạo thành từ một TextView chứagiá trị hiện tại đang được chọn kết hợp với một nút mà khi nhấn vào sẽ đưa ra mộtdanh sách lựa chọn
Trang 14LayoutManager (thường gọi là layout) là mở rộng của lớp ViewGroup, được
thiết kế để điều chỉnh vị trí của các control trên màn hình ứng dụng Layout có thểlồng nhau để tạo nên các giao diện phức tạp Android có một số các layout đơn giảngiúp xây dựng UI Để tạo nên một bố cục hợp lý thì nên kết hợp các layout với nhau
Các lớp layout cơ bản:
• FrameLayout: là layout đơn giản nhất trong Layout Manager,
FrameLayout đặt mỗi View con vào góc trái trên của màn hình Việc thêm nhiềucontrol sẽ chồng một cái mới lên trên cái trước đó
• LinearLayout: thêm mỗi View theo một đường thẳng, theo chiều dọc hoặc
ngang Một layout theo chiều dọc sẽ có một control trên một dòng, layout theo chiềungang chỉ có một dòng cho nhiều View Nó cho phép chỉ định giá trị “weight” chomỗi View con để điều chỉnh kích thước bên trong không gian cho phép
• RelativeLayout: dùng để định vị trí cho các View cân xứng với các control
khác cũng như với đường biên của màn hình
• TableLayout: giúp bố trí các View theo một lưới có các dòng và các cột.
Các cột có thể được thiết lập để co lại hoặc giản ra
• AbsoluteLayout: trong layout này, vị trí mỗi View sẽ là tọa độ tuyệt đối,
đảm bảo bố cục chính xác cho các thành phần Do đó, không thể có được sự linh hoạtđối với các màn hình có kích thước khác nhau
Sử dụng Layout:
Để sử dụng layout người ta thường dùng phương pháp là sử dụng resource bênngoài từ file XML Một layout XML phải chứa một nút gốc.Nút gốc này có thể chứacác layout và các View lồng nhau để xây dựng nên các giao diện phức tạp
5.Tạo các View:
5.1 Chỉnh sửa các View có sẵn
Chỉnh sửa hoặc kế thừa một control sẳn có nếu nó cung cấp các chức năng cần
thiết, bằng cách ghi đè các handler và onDraw của nó Để định nghĩa lại giao diện
cũng như các ứng xử của control mới tạo, cần phải ghi đè và thừa kế các điều khiển sựkiện (event handler) kết hợp với các hành vi muốn thay đổi
5.2 Tạo các điều khiển ghép (compound control)