Do đó, cùng với sự phát triển của các thiết bị thông minh cũng như hệ điều hành Android, có rất nhiều sản phẩm được cung cấp để nhằm hỗ trợ cho việc học tiếng Nhật.. Hệ điều hành Android
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM
Trang 2LỜI CẢM ƠN
Trước hết em xin chân thành cảm ơn đến quý thầy cô khoa Tin học trường Đại Học Sư Phạm Đà Nẵng, đặc biệt là những thầy cô đã tận tình dạy bảo em trong suốt quá trình học tập tại trường
Em xin gởi lời biết ơn sâu sắc đến PGS.TSKH Trần Quốc Chiến đã dành nhiều thời gian và tâm huyết để giúp em hoàn thành luận văn tốt nghiệp
Em xin gởi lời cảm ơn chân thành đến công ty CP Công Nghệ Tâm Hợp Nhất đã tạo điều kiện thuận lợi, hỗ trợ em hoàn thành luận văn Em cũng xin gởi lời cảm ơn đến anh Nguyễn Lê Sĩ Nguyên và các anh chị trong công ty đã tận tình hướng dẫn và chỉ bảo em trong thời gian vừa qua
Trong quá trình thực hiện luận văn tốt nghiệp, em đã luôn cố gắng hoàn thành luận văn của mình một cách tốt nhất Nhưng kinh nghiệm cũng như vốn kiến thức còn hạn chế nên không tránh khỏi những thiếu xót của bản thân Rất mong thầy cô, các bạn nhận xét và góp ý thêm để em ngày càng hoàn thiện tốt hơn
Xin trân trọng cảm ơn!
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy PGS.TSKH Trần Quốc Chiến
2 Mọi tham khảo dùng trong báo cáo này đề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á, tôi xin chịu hoàn toàn trách nhiệm
Sinh viên
Trương Thị Ngọc Ánh
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày tháng năm 2015
Chữ ký của giảng viên hướng dẫn
Trang 5MỤC LỤC
DANH MỤC BẢNG BIỂU i
DANH MỤC HÌNH VẼ ii
MỞ ĐẦU 1
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1
2 MỤC TIÊU NGHIÊN CỨU 2
3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 2
4 PHƯƠNG PHÁP NGHIÊN CỨU 2
5 BỐ CỤC ĐỀ TÀI 3
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 4
1.1.1 Giới thiệu hệ điều hành Android 4
1.1.2 Lịch sử phát triển 5
1.1.3 Các phiên bản của hệ điều hành Android 6
1.1.4 Ưu nhược điểm của hệ điều hành Android 6
1.1.5 Kiến trúc của hệ điều hành Android 7
1.1.6 Các thành phần của ứng dụng 10
1.1.7 Các thành phần của một Android Project 13
1.1.8 Lưu trữ dữ liệu với SQLite 14
1.2 GOOGLE CLOUD MESSAGING 15
1.2.1 Giới thiệu Google Cloud Messaging 15
1.2.2 Quy trình hoạt động 16
1.3 WEB SERVICE 17
1.3.1 Giới thiệu về Web Service 17
1.3.2 Đặc điểm của Web Service 17
1.3.3 Ưu và nhược điểm 17
Trang 61.4 JSON 18
1.4.1 Json là gì ? 18
1.4.2 Json Object 19
1.4.3 Json Array 19
1.4.4 Các bước để parse Json 19
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ 20
2.1 XÁC ĐỊNH YÊU CẦU 20
2.2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG 21
2.2.1 Sơ đồ phân rã chức năng 21
2.2.2 Sơ đồ ngữ cảnh 21
2.2.3 Sơ đồ dòng dữ liệu mức đỉnh 22
2.2.4 Biểu đồ Activity 22
2.2.5 Một số kịch bản đa sử dụng 25
2.3 PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 26
2.3.1 Sơ đồ thực thể liên kết (ERD) 26
2.3.2 Sơ đồ quan hệ dữ liệu 27
2.3.3 Các lược đồ quan hệ 27
CHƯƠNG 3 KẾT QUẢ ĐẠT ĐƯỢC 34
3.1 WEBSITE QUẢN LÝ ỨNG DỤNG HỌC TIẾNG NHẬT 34
3.1.1 Bài học 34
3.1.2 Từ vựng 34
3.1.3 Ngữ pháp 35
3.1.4 Ví dụ ngữ pháp 36
3.1.5 Gởi thông báo 36
3.1.6 Câu hỏi luyện tập 37
3.1.7 Web API 37
3.2 GIAO DIỆN ỨNG DỤNG HỌC TIẾNG NHẬT TRÊN ANDROID 39
Trang 73.2.1 Splash screen 39
3.2.2 Menu 40
3.2.3 Menu bài học 40
3.2.4 Popup menu 41
3.2.5 Học bảng chữ cái 42
3.2.6 Học phát âm 43
3.2.7 Học chào hỏi cơ bản 43
3.2.8 Học số đếm 44
3.2.9 Học cách nói thời gian 45
3.2.10 Học từ vựng 46
3.2.11 Học ngữ pháp 47
3.2.12 Notification 48
3.2.13 Học Hán Tự 49
3.2.14 Menu luyện tập 49
3.2.15 Luyện tập bảng chữ cái 50
3.2.16 Luyện tập chào hỏi 51
3.2.17 Luyện tập số đếm 52
3.2.18 Luyện tập thời gian 53
3.2.19 Luyện tập từ vựng 54
3.2.20 Luyện tập ngữ pháp 55
3.2.21 Luyện tập Hán Tự 56
3.2.22 Tìm kiếm 57
3.2.23 Thông báo kết quả luyện tập 58
KẾT LUẬN VÀ KIẾN NGHỊ 59
TÀI LIỆU THAM KHẢO 60
Trang 9DANH MỤC HÌNH VẼ
Số hiệu
Trang 103.11 Popup menu 41
Trang 11MỞ ĐẦU
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Hiện nay, rất nhiều các công ty của Nhật đang chuyển hướng trọng tâm hoạt động kinh doanh sang thị trường Việt Nam Khi đó, nhân lực cần thiết là những người có khả năng nói tiếng Nhật và hầu hết những người như thế đều trở thành nhà điều hành quản lý Trong tương lai các doanh nghiệp Nhật Bản
sẽ càng ngày càng hướng tới Việt Nam và khi đó, khả năng giao tiếp tiếng Nhật sẽ là điểm lợi cho công cuộc tìm kiếm việc làm
Do đó, cùng với sự phát triển của các thiết bị thông minh cũng như hệ điều hành Android, có rất nhiều sản phẩm được cung cấp để nhằm hỗ trợ cho việc học tiếng Nhật Tuy nhiên, bản thân nhận thấy rằng đa số các ứng dụng
đó đều xây dựng theo dạng giáo trình, chưa hướng đến đối tượng người bắt đầu học Nếu những người mới bắt đầu học khi học qua những ứng dụng này thì họ sẽ không nắm được kiến thức sơ cấp, không biết được mình sẽ tiếp tục học lên mức độ nào Một số ứng dụng thì có hướng đến người bắt đầu học nhưng lại chưa đáp ứng đủ nội dung học tập cần thiết Nội dung cần thiết cho người học mới bắt đầu học thì lại được xây dựng bởi nhiều ứng dụng riêng lẻ Chính vì vậy, đề tài được xây dựng để thực hiện được hai mục đích là hỗ trợ cho những người đang học tiếng Nhật tại các trung tâm và giúp cho những người đi làm, những sinh viên, học sinh… có thể tự học tiếng Nhật tại nhà
Từ kinh nghiệm bản thân đã từng học qua lớp sơ cấp tiếng Nhật và vốn ngoại ngữ tiếng Nhật sẽ xây dựng một ứng dụng học tiếng Nhật hiệu quả Nội dung ứng dụng sẽ hướng đến đối tượng mới bắt đầu học Trong ứng dụng, người dùng sẽ được học bảng chữ cái Hiragana, bảng chữ Katakana, cách phát âm, cách nói số đếm, thời gian, chữ hán tự cơ bản, bộ hán tự cơ bản, từ vựng, ngữ pháp và người dùng sẽ được luyện tập những phần mà mình đã học
Trang 122 MỤC TIÊU NGHIÊN CỨU
Nghiên cứu về nền tảng Android và xây dựng ứng dụng bẳng ngôn ngữ Android
Nghiên cứu và thiết kế giao diện phù hợp cho tất cả các thiết bị
Tìm hiểu ngôn ngữ lập trình PHP và áp dụng vào xây dựng Web Service trả về cơ sở dữ liệu dưới dạng chuỗi Json
Tìm hiểu cách tương tác dữ liệu giữa điện thoại Android và Web Service
Tìm hiểu, nghiên cứu Google Cloud Messaging để push notification về điện thoại khi có dữ liệu mới được cập nhật
Tìm hiểu cách triển khai một ứng dụng trên Google play store
3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu:
- Kiến trúc hệ điều hành Android
- Lập trình ứng dụng trên nền tảng Android
- Xây dựng Web Service bằng ngôn ngữ PHP
- Kỹ thuật Push Notifications sử dụng Google Cloud Messaging
Phạm vi nghiên cứu:
- Ngôn ngữ lập trình Android và PHP
- Web Service
- Cách tương tác dữ liệu giữa Web Service và điện thoại
- Cách sử dụng Google Cloud Messaging
4 PHƯƠNG PHÁP NGHIÊN CỨU
Tìm hiểu, khảo sát các ứng dụng trên nền tảng Android sử dụng Web Service, Google Cloud Messaging, nghiên cứu và ứng dụng kỹ thuật vào đề tài
Trang 13 Phân tích các yêu cầu của người dùng, từ đó thiết kế giao diện ứng dụng đơn giản, dễ sử dụng nhưng hiệu quả cao
Đề xuất các chức năng cho ứng dụng, cũng như nhận phản hồi chức năng từ giảng viên hướng dẫn và từ đó đưa ra các giải pháp hợp lý phù hợp với xu thế phát triển của phần mềm
Tham khảo ý kiến của giáo viên dạy tiếng Nhật để xây dựng nội dung của ứng dụng phù hợp và đạt hiệu quả cao
Ngoài ra sử dụng các phương pháp nghiên cứu khác như nghiên cứu tài liệu, giáo trình hay các tài liệu tham khảo có liên quan đến hệ thống cần xây dựng
5 BỐ CỤC ĐỀ TÀI
Bố cục đề tài gồm 3 chương với các nội dung cơ bản sau:
Chương 1: Cơ sở lý thuyết
- Tổng quan về hệ điều hành Android
- Giới thiệu Web Service, cấu trúc Json
- Giới thiệu các kỹ thuật và công nghệ sử dụng trong đề tài
Chương 2: Phân tích thiết kế
- Phân tích hệ thống, trình bày rõ các chức năng của ứng dụng
- Phân tích thiết kế cơ sở dữ liệu
- Thiết kế giao diện người dùng
Chương 3: Kết quả đạt được
- Demo website quản lý ứng dụng học tiếng Nhật
- Demo Web API
- Demo ứng dụng B-Japanese
Trang 14CHƯƠNG 1
CƠ SỞ LÝ THUYẾT
1.1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID
1.1.1 Giới thiệu hệ điều hành Android
đời năm 2008 Hệ điều hành Android được xây dựng trên một nền tảng mở,
và một bộ thư viện đa năng, mạnh mẽ với nguyên lý mở, nên Android đã nhanh chóng được cộng đồng lập trình viên di động hưởng ứng mạnh mẽ Nền tảng Android được tích hợp nhiều tính năng nổi bật:
Android là một hệ điều hành nhân Linux, đảm bảo sự tương tác với các phần cứng, quản lý bộ nhớ, điều khiển các tiến trình tối ưu cho các thiết bị di động
Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành phần riêng lẻ
Máy ảo Dalvik được tối ưu cho các thiết bị di động, chạy các ứng dụng lập trình trên ngôn ngữ Java
Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm SQLite, WebKit, OpenGL và trình quản lý đa phương tiện
Hỗ trợ các chuẩn đa phương tiện phổ biến, thoại trên nền GSM, Bluetooth EDGE, 3G và Wifi
Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc …
Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa lỗi, tích hợp với Eclipse SDK
Android cung cấp một tập hợp đầy đủ các phần mềm cho thiết bị di động bao gồm: hệ điều hành, các khung ứng dụng và các ứng dụng cơ bản
Trang 151.1.2 Lịch sử phát triển
Tháng 10/2013, Android được thành lập tại Palo Alto, California, Hoa
Kỳ do Andu Rubin, Rich Miner và một số thành viên khác chủ trì, với mục đích để phát triển hay tạo ra các thiết bị di động thông minh hơn
phục vụ cho các mục đích cho lợi ích con người
Tháng 8/2005, Google mua lại Android Inc với giá 50 triệu USD Các nhân viên chính của Android Inc, trong đó có Andy Rubin, Rich
Miner vẫn tiếp tục làm việc tại công ty
Tháng 9/2007, Information Week đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế
trong lĩnh vực điện thoại di động
Tháng 11/2007, Liên minh thiết bị cầm tay mở rộng (Open Handset Alliance) đã 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 họ vào Android và bán chúng mà không
cần phải hỏi ý kiến Google
Tháng 11/2008, Liên minh Open Handset Alliance ra mắt gói phát triển
phần mềm Android SDK cho nhà lập trình
Tháng 12/2008, có thêm 14 thành viên mới gia nhập dự án Android được công bố, gồm có ARM Holdings, Atheros Communications, Asutek Computer Inc, Vodafone Group Pic, Garmin Ltd, Softbank,
Sony Ericsson và Toshiba Corp
Từ năm 2009 đến nay, số lượng smartphone nền tảng Android tăng
trưởng mạnh mẽ
Trang 161.1.3 Các phiên bản của hệ điều hành Android
Từ lúc ra mắt phiên bản đầu tiên cho tới nay, Android đã có rất nhiều bản nâng cấp Đa số đều tập trung vào việc vá lỗi và thêm những tính năng mới
Android những thế hệ đầu tiên 1.0 (9/2008) và 1.1 (2/2009) chưa có tên gọi chính thức Từ thế hệ tiếp theo, mỗi bản nâng cấp đều được đặt với những mã tên riêng dựa theo các món ăn hấp dẫn theo thứ tự bảng chữ cái từ “C – D – E – F – G – H – I ” Hiện tại các phiên bản chính của Android [7] bao gồm:
Android 4.0 Ice Cream Sandwich, cuối 2011
Android Jelly Bean 4.1 +4.2, 2012
Android 4.3 Jelly Bean 4.3, 24/4/2013
Android 4.4 KitKat, 15/10/2013
Android L, 26/06/2014
1.1.4 Ưu nhược điểm của hệ điều hành Android
a Ưu điểm của hệ điều hành Android
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 mở hậu thuẫn, Google Android đang là đối thủ xứng tầm của iPhone
Trang 17 Google đang tích cự mở rộng cộng đồng phát triển các ứng dụng cho Android 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
b Nhược điểm của hệ điều hành Android
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ở”
Nhiều lỗ hổng bảo mật
1.1.5 Kiến trúc của hệ điều hành Android
Hình 1 1 Mô hình kiến trúc nền tảng Android
Trang 18a Applications
Hệ điều hành Android tích hợp sẵn một số ứng dụng cơ bản như Email Client, SMS, lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một số ứng dụng khác.Ngoài ra tầng này cũng chính là tầng chứa các ứng dụng được phát triển bằng ngôn ngữ Java
b Application Framwork
ứng dụng mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các ứng dụng vô cùng sáng tạo và phong phú Các nhà phát triển ứng dụng được
tự do sử dụng các tính năng cao cấp của thiết bị phần cứng như: thông tin định vị địa lý, khả năng chạy dịch vụ dưới nền, thiết lập đồng hồ báo thức, thêm notification vào status bar của màn hình thiết bị
- Tầng này bao gồm một tập các services và thành phần sau:
Một tập phong phú và có thể mở rộng bao gồm các đối tượng View được dùng để xây dựng ứng dụng như: list, grid, textbox, button và thậm chí là một trình duyệt web có thế nhúng vào ứng dụng
Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng khác hoặc chia sẽ dữ liệu của chúng
Resource Manager: Cung cấp khả năng truy xuất các tài nguyên code như hình ảnh hoặc file layout
non- Notification Manager: Cung cấp khả năng hiển thị custom alert trên thanh status bar
Activity Manager: Giúp quản lý vòng đời của một ứng dụng
c Libraries
Media libraries: Bộ thư viện hỗ trợ trình diễn và ghi các định dạng
âm thanh và hình ảnh phổ biến
Trang 19 Surface manager: Quản lý hiển thị nội dung 2D và 3D
LibWebCore: Một web browser engine hiện đại được sử dụng trong trình duyệt của Android lần trong trình duyệt nhúng web view được
sử dụng trong ứng dụng
SGL: Engine hỗ trợ đồ họa 2D
3D libraries: Một thể hiện được xây dựng dựa trên các APIs của OpenGL ES 1.0 Những thư viện này sử dụng các tăng tốc 3D bằng phần cứng lẫn phần mềm để tối ưu hóa hiển thị 3D
FreeType: Bitmap và vector font rendering
SQLite: Cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu của ứng dụng
System C library: Tối ưu hóa cho các thiết bị chạy trên nền Linux
d Android runtime
- Hệ điều hành Android tích hợp sẳn một tập hợp các thư viện cốt lõi cung cấp hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java Mọi ứng dụng của Android chạy trên một tiến trình của riêng
nó cùng với một thể hiện của máy ảo Dalvik Máy ảo Dalvik thực tế là một biến thể của máy ảo Java được sửa đổi, bổ sung các công nghệ đặc trưng của thiết bị di động Nó được xây dựng với mục đích làm cho các thiết bị di động
có thể chạy nhiều máy ảo một cách hiệu quả Trước khi thực thi, bất kì ứng dụng Android nào cũng được convert thành file thực thi với định dạng nén Dalvik Executable (.dex) Định dạng này được thiết kế để phù hợp với các thiết bị hạn chế về bộ nhớ cũng như tốc độ xử lý Ngoài ra máy ảo Dalvik sử dụng bộ nhân Linux để cung cấp các tính năng như thread, low-level memory management
Trang 20e Linux Kernel
- Android sử dụng nhân Linux 2.6 làm nhân cho các dịch vụ hệ thống như bảo mật, quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp mạng và trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không dây, …) Nhân Linux này cũng có vai trò như một lớp trừu tượng giữa phần cứng và phần mềm
bộ nhớ
Trang 21+ Killed hay Shut down khi 1 activity đang paused hay stopped,
hệ thống sẽ xóa activity ấy ra khỏi bộ nhớ
Trình diễn các tập tin đa truyên thông như nhạc, phim…
Kết nối và thực hiện tải các nội dung thông qua Internet
Truy xuất đọc ghi tập tin
c Broadcast Receivers
Thành phần ứng dụng 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:
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…
Ứ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
d Content Provider
Content Provider xây dựng cách thức truy xuất tập hợp 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ử dụng riêng
Trang 22 Trong Android, một số Content Provider được xây dựng sẵn: danh
bạ, tài nguyên đa truyền thông, lịch
e View
View được sử dụng để tạo ra các điều khiển trên màn hình cho phép nhận các tương tác từ người dùng cũng như hiển thị các thông tin cần thiết
View bao gồm hai dạng: các điều khiển đơn lẻ (View) và tập hợp nhiều điều khiển đơn lẻ (ViewGroup)
Một số View thường dùng:
TextView: Hiển thị 1 khung text và cho phép người dùng thay đổi
ImageView: Hiển thị 1 hình ảnh xác định từ file tài nguyên hay qua 1 content provider
Button: Hiển thị 1 nút nhấn
Checkbox: Hiển thị 1 nút nhấn với 2 trạng thái khác nhau
KeyboardView: Hiển thị bàn phím ảo để nhập liệu
WebView: Hiển thị các trang web bằng Webkit
Một số ViewGroup thường dùng:
LinearLayout: Các view được xếp theo 1 hàng hay 1 cột duy nhất
AbsoluteLayout: Cho phép xác định chính xác vị trí của từng view
TableLayout: Sắp xếp các view theo các cột và hàng Mỗi hàng có thể có nhiều view, mà mỗi view sẽ tạo nên 1 ô
RelativeLayout: Cho phép xác định vị trí các view theo mối quan
hệ giữa chúng (VD; canh trái, phải, )
FrameLayout: Là 1 placeholder cho phép đặt lên đó 1 view duy nhất View đặt lên FrameLayout luôn được canh lề trái phía trên
Trang 23 ScrollView: Là 1 FrameLayout đặc biệt cho phép trượt (scroll) 1 danh sách dài hơn kích thước màn hình
f Intent
Intent là đối tượng mang thông điệp, cho phép tạo ra các yêu cầu hành động giữa các thành phần trong ứng dụng, hoặc giữa các ứng dụng với nhau
Được sử dụng nhiều trong ba trường hợp sau:
1.1.7 Các thành phần của một Android Project
a Src
Đây là thư mục chứa mã nguồn
Nơi chứa tất cả các lớp do người dùng xác định, bao gồm lớp hoạt động mặc định
b Gen
Nơi chứa các file R tự sinh ra trong project
Tệp R.java bên trong thư mục này chứa các tham chiếu tĩnh tới tất cả tài nguyên hiện có trong thư mục res
Trang 24c Bin
Chứa file cài đặt apk để chép vào thiết bị
d Res
Thư mục chứa tất cả các tài nguyên cho dự án
Nó bao gồm các tài nguyên sau:
- Drawable – hdpi: Tài nguyên cho mảng hình phân giải cao
- Drawable – ldpi: Tài nguyên cho mảng hình phân giải thấp
- Drawable – mdpi: Tài nguyên cho mảng hình phân giải trung bình
- Layout: chứa file xml giao diện Activity
- Value: strings.xml khai báo các ánh xạ cho chuỗi
Ta có thể tạo thêm các thư mục để chứa tài nguyên trong thư mục res
e AndroidManifest.xml
Chứa các cấu hình chung cho toàn bộ project
File này được tự động sinh ra khi tạo một Android Project
1.1.8 Lưu trữ dữ liệu với SQLite
a SQLite là gì?
SQLite [7] là phần mềm quản lý cơ sở dữ liệu SQL nhưng không giống như hầu hết các cơ sở dữ liệu SQL khác, SQLite không có một máy chủ riêng biệt để xử lý
Đặc điểm:
SQLite gọn, nhẹ, đơn giản Chương trình gồm 1 file duy nhất, không cần cài đặt, không cần cấu hình mà có thể sử dụng ngay
Dữ liệu database cũng được lưu ở một file duy nhất
Không có khái niệm user, password hay quyền hạn trong SQLite Database
Trang 25b Cài đặt và sử dụng SQLite trong Android
SQLiteOpenHelper: Một lớp trợ giúp để hỗ trợ việc tạo ra CSDL và quản lý phiên bản cho chúng
SQLiteDatabase: Lớp chứa các phương thức dùng để quản lý CSDL như INSERT, UPDATE, DELETE, SELECT…
c Một số chú ý
Version: Phải lớn hơn 0 (throw IllegalAgrumentException)
DB_NAME: Nếu thay đổi tên database sẽ gọi lại onCreate() và tạo 1 database mới
Hàm onCreate() chỉ được gọi khi file database được tạo mới
Hàm onUpgrade() chỉ được gọi khi version có sự thay đổi so với phiên bản hiện tại
1.2 GOOGLE CLOUD MESSAGING
1.2.1 Giới thiệu Google Cloud Messaging
Google Cloud Messaging (GCM) [8] là một dịch vụ cho phép gửi dữ liệu từ máy chủ của bạn đến các thiết bị Android của người dùng, và ngược lại
GCM được sử dụng cho hoạt động giao dịch giữa các ứng dụng và máy chủ hỗ trợ đầu cuối Cloud Messaging hiện đang được tích hợp vào Google Play Services
GCM là hoàn toàn miễn phí và không giới hạn băng thông Dịch vụ hoạt động trên các gói dữ liệu có dung lượng nhỏ hơn 4kb và tin nhắn tới thiết bị Android là tức thời (Push notification)
GCM là phù hợp cho việc xây dựng các ứng dụng nhắn tin tức thời hoặc tương tác giữa người dùng và nhà phát triển ứng dụng
Trang 261.2.2 Quy trình hoạt động
Hình 1.2 Quy trình hoạt động Google Cloud Messaging
Thiết bị di động gửi request từ thiết bị đến GCM
GCM đăng ký cho thiết bị và gửi về RegID
Thiết bị di động gửi GCM RegID đến Web Server của chúng ta để lưu lại và sử dụng
Web Server lưu GCM RegID trong cơ sở dữ liệu, RegID sẽ được dùng
để gửi thông báo
Khi Web Server muốn gửi thông báo đến thiết bị di động thì sẽ dùng RegID từ cơ sở dữ liệu để gửi request đến GCM (gồm RegID và nội dung)
GCM gửi đi một thông báo đẩy về thiết bị sau khi nhận một request từ Web Server
Trang 271.3 WEB SERVICE
1.3.1 Giới thiệu về Web Service
năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML Web service có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra thông tin mà người dùng yêu cầu Web Service được xây dựng dựa trên SOAP Web Service cho phép máy chủ cũng cấp dịch vụ trao đổi và truyền dữ liệu với máy client Khi phía máy client gửi yêu cầu truy vấn, phía server kiểm tra yêu cầu và trả lời yêu cầu dữ liệu của client bằng cách truyền
dữ liệu dựa trên chuẩn SOAP
1.3.2 Đặc điểm của Web Service
- Web Service cho phép client và server tương tác được với nhau trong những môi trường khác nhau
- Web Service được xây dựng dựa trên mã nguồn mở bà được phát triển
từ các chuẩn đã được công nhận
- Web Service bao gồm nhiều mô đun và có thể đưa lên mạng Internet
- Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client – server
1.3.3 Ưu và nhược điểm
Trang 28 Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện Web service
Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán
Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với
hệ thống của các doanh nghiệp khác
Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Web service, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành
Có quá nhiều chuẩn cho Web service khiến người dùng khó nắm bắt
Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật
1.4 JSON
1.4.1 Json là gì ?
Json (JavaScript Object Notation) [10] là định dạng trao đổi dữ liệu độc lập Json chỉ cho phép lưu trữ dữ liệu dưới dạng chữ và số Json được
hỗ trợ trực tiếp trong JavaScript
Cấu trúc dữ liệu của Json được dựa trên các cặp Key / Value Trong đó, Key là một chuỗi còn Value có thể là chuỗi, số, giá trị boolean hoặc object
Một Json Object bao gồm các cặp Key / Value và được bắt đầu bởi dấu
“{” và kết thúc bởi dấu “}”
Một mảng các giá trị được nằm trong cặp dấu ngoặc vuông [ ] và cách nhau bởi dấu phẩy “,”
Trang 291.4.2 Json Object
Json Object là class đại diện cho một đối tượng trong chuỗi Json
Một đối tượng trong chuỗi Json được bọc trong cặp dấu ngoặc nhọn
“{”, “}”
Để tạo ra đối tượng Json Object chúng ta sử dụng phương thức khởi tạo
và truyền chuỗi Json biểu diễn đối tượng đó vào tham số thứ nhất
Json Object cung cấp các phương thức getter để chúng ta truy xuất đến các thuộc tính của nó
1.4.3 Json Array
Là class đại diện cho array trong chuỗi Json
Array trong chuỗi Json là một đối tượng được bọc trong cặp ngoặc vuông “[”, “]”
Để tạo ra đối tượng Json Array chúng ta sử dụng phương thức khởi tạo
và truyền chuỗi Json biểu diễn nó vào tham số thứ nhất
Json Array cũng cung cấp các phương thức getter giống như Json Object để truy xuất giá trị các thuộc tính
1.4.4 Các bước để parse Json
Tạo Json Array từ chuỗi Json đã cho
Sử dụng vòng lặp for để xử lý cho các Json Object bên trong
Lấy Json Object từ Json Array qua các bước lặp
Sử dụng phương thức getter phù hợp để lấy giá trị
Trang 30CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ
2.1 XÁC ĐỊNH YÊU CẦU
Yêu cầu chức năng
- Cung cấp nhiều bài học tiếng Nhật cho phép người dùng chọn bài học
- Người dùng có thể tìm kiếm từ theo nghĩa tiếng Việt
- Ghi nhớ những từ vựng, ngữ pháp đã học qua và thông báo cho người dùng
- Tra cứu từ vựng nhanh chóng
- Tự động cập nhật dữ liệu khi mở ứng dụng nếu dữ liệu thay đổi
- Gởi thông báo đẩy về điện thoại khi thay đổi dữ liệu trên server
- Đăng ký Google Cloud Messaging tự động
- Tự động tải dữ liệu khi mở ứng dụng lần đầu tiên
Yêu cầu phi chức năng
Trang 312.2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG
2.2.1 Sơ đồ phân rã chức năng
Hình 2.1 Sơ đồ phân rã chức năng
2.2.2 Sơ đồ ngữ cảnh
Hình 2.2 Sơ đồ ngữ cảnh
Trang 33b Luyện tập
Hình 2.5 Biểu đồ Activity “Luyện tập”
c Tải dữ liệu từ Web API
Hình 2.6 Biểu đồ Activity “Tải dữ liệu”
Trang 34d Tìm kiếm
Hình 2.7 Biểu đồ Activity “Tìm kiếm”
e Đăng ký Google Cloud Messaging
Hình 2.8 Biểu đồ Activity “Đăng ký GCM”
Trang 352.2.5 Một số kịch bản đa sử dụng
a Chức năng học tiếng Nhật
Luồng sự kiện chính:
1 Hệ thống sẽ hiện ra danh sách các bài học
2 Người dùng chọn bài học muốn học
3 Hệ thống sẽ hiện ra nội dung bài học mà người dùng chọn Ngoại lệ: Người dùng có thể chọn bài học khác bằng cách bấm nút menu
Bảng 2.1 Kịch bản sử dụng chức năng học tiếng Nhật
b Chức năng luyện tập
Luồng sự kiện chính:
1 Hệ thống sẽ hiện ra danh sách các bài luyện tập
2 Người dùng chọn bài luyện tập muốn luyện tập
3 Hệ thống sẽ hiện ra bài luyện tập mà người dùng chọn
Ngoại lệ: Người dùng có thể chọn bài học khác bằng cách bấm nút menu
Bảng 2.2 Kịch bản sử dụng chức năng luyện tập