Báo cáo Java Android Eclipse Lập trình ứng dụng học tiếng anh trên Android Cần sản phẩm demo liên hệ facebook nhé. Giao diện của ứng dụng là giao diện dạng menu đơn giản, thân thiện và dễ sử dụng cho người dùng. Sẽ có menu các bài học để người dùng lựa chọn và luyện tập.
Trang 1LỜI CẢM ƠN
Đồ án môn học với những môn lập trình là khá phổ biến với sinh viên khoa Tin để
tự thống kê kiến thức và lên ý tưởng cho những chương trình của mình Đó là yêu cầu vàcũng là thách thức đối với sinh viên khi làm quen với thực hành từ những kiến thức lýthuyết sách vở
Để cho chúng em có thể nắm chắc kiến thức và tiếp cận thực tế với một sản phẩmphần mềm, chúng em đã nhận được sự giúp đỡ tận tình từ thầy Vũ Đức Minh giáo viênhướng dẫn chúng em trong đồ án này, cùng với sự góp ý của một số thành viên trong lớp
để đố án của chúng em được hoàn thành
Nhưng do có những hạn chế về kiến thức và kinh ngiệm tìm hiểu thực tế chưa cónên đồ án của em còn nhiều sai sót Chúng em rất mong nhận được sự chỉ bảo, giúp đỡcủa các thầy cô giáo và các bạn để bài của chúng em được hoàn thiện hơn Điều quantrọng là những ý kiến của thầy cô giáo sẽ giúp chúng em có thêm hiểu biết và kinhnghiệm để phục vụ cho những đồ án sau này
Cuối cùng chúng em xin gửi lời cảm ơn đến thầy hướng dẫn Vũ Đức Minh đã giúpchúng em trong quá trình làm đồ án vừa qua
Chúng em xin chân thành cảm ơn!
Hà Nội, Ngày 28 tháng 12 năm 2014
Sinh viên thực hiện
MỤC LỤC
Trang 2CHƯƠNG 1: GIỚI THIỆU VỀ NGÔN NGỮ JAVA VÀ ANDROID 1
1.1 Ngôn ngữ Java 1
1.1.1 Khái niệm Java 1
1.1.2 Lịch sử 1
1.1.3 Một số đặc điểm nổi bật của ngôn ngữ lập trình Java 2
1.1.4 Công cụ lập trình và chương trình dịch 4
1.2 Khái quát về Android : 4
1.2.1 Giới thiệu khái quát về android : 4
1.2.2 Kiến trúc của android : 4
1.2.3 Máy ảo Dalvik 5
1.2.4 Các thành phần cơ bản để tạo nên một ứng dụng Android 5
1.3 Sơ lược về Google Play Services và sử dụng Google Speech Recognition API để xây dựng ứng dụng 6
1.3.1 Google Play services 6
1.3.2 Thư viện ứng dụng Google Play Services 7
1.3.3 Lợi ích nhận được 7
1.3.4 Tìm hiểu về Google Speech Recognition API 7
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 9
2.1 Phân tích 9
2.1.1 Phân tích yêu cầu người dùng 9
2.1.2 Mô tả quá trình nghiệp vụ 9
2.1.3 Biểu đồ phân cấp chức năng 10
2.1.3 Biểu đồ Usecase 11
2.1.4 Biểu đồ tuần tự 12
2.2 Thiết kế 14
2.2.1 Thiết kế CSDL 14
2.2.2 Thiết kế các lớp 15
Trang 3CHƯƠNG 3 XÂY DỰNG VÀ CÀI ĐẶT ỨNG DỤNG 17
3.1 Xây dựng giao diên và chức năng chính 17
3.2 Xây dựng các chức năng bổ trợ 24
3.3 Yêu cầu cấu hình hệ thống 25
3.4 Giao diện chính của ứng dụng Talk2me 25
KẾT LUẬN 27
DANH MỤC HÌNH ẢNH Hình 2.1.3 Biểu đồ phân cấp chức năng 15
Trang 4Hình 2.1.3 Biểu đồ usecase tổng quát 16
Hình 2.1.4.1 Biểu đồ tuần tự nói to rõ một số câu cho trước 17
Hình 2.1.4.2 Biểu đồ tuần tự nói rõ theo hình ảnh 17
Hình 2.1.4.3 Biểu đồ tuần tự nói theo chủ đề 18
Hình 2.2.1.2 Quá trình xử lý dữ liệu âm thanh của ứng dụng 19
Hình 3.1a Trang welcome và menu 22
Hình 3.1b Home, Core Lessons, Speaking Topics và Challenge Activity 23
Hình 3.1d Nội dung bên trong Speak out loud và More to speak 25
Hình 3.1e More to speak và 2 lựa chọn 26
Hình 3.1f Speaking Topics Activity cùng 2 chủ đề Topic 1 và Topic 2 27
Hình 3.1g Challenge Activity và 2 lựa chọn 28
Hình 3.1h Nội dung Choose the right answerm và Speed test 29
Hình 3.3a Ứng dụng được cài đặt trên điện thoại Android 30
Hình 3.3b Màn hình khời động trên điện thoại Android 31
DANH MỤC BẢNG Bảng 2.2 Quá trình xây dựng ứng dụng 19
Bảng 2.2.2.1 Packege hoanhugiang.app.talk2me 21
Bảng 2.2.2.2 Package hoanhugiang.app.talk2me.adapter 21
Bảng 2.2.2.3 Package hoanhugiang.app.talk2me.util 21
LỜI MỞ ĐẦU
Trang 5Hiện nay tiếng Anh được coi là ngôn ngữ quốc tế số một trên thế giới Hàng triệungười từ các nền văn hóa khác nhau đều nỗ lực học tiếng anh mỗi ngày Ở Việt Nam,tiếng anh cũng đã chiếm đưuọc vị trí quan trọng kể từ khi đất nước mở cửa hội nhập rakhu vực và thế giới Ở nhiều lĩnh vực khác nhau như kinh tế, chính trị, khoa học, du lịchvv… đều rất cần những người có trình độ tiếng Anh giỏi Cùng với đó, sự phát triển củacô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ànhnền tảng điện thoại thong minh phổ biến nhất trên thế giới, với sự kế thừa những ưu việtcủ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ệnnay Đồ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
Trước nhu cầu và lợi thế, chúng em quyến định chọn đề tài “Lập trình Ứng dụng học Tiếng Anh trên Android” nhằm tìm hiểu sâu hơn về ngôn ngữ android, từ đó viết
một ứng dụng cụ thể thử nghiệm làm cơ sở củng cố kiến thức và định hướng, kế hoạchxây dựng những ứng dụng game cụ thể, phát triển theo dịch vụ trong tương lai
Trong quá trình giảng dạy, nhờ có sự hướng dẫn tận tình của thầy giáo Vũ ĐứcMinh chúng em đã hoàn thành được đề tài Lập trình Ứng dụng học Tiếng Anh trênAndroid
Trong quá trình làm đề tài, dù đã rất cố gắng tìm hiểu nhưng vẫn không tránh khỏisai sót và chưa hoàn thiện hết các chức năng Chính vì vậy chúng em mong được sự đónggóp ý kiến của các thầy cô
Chúng em xin chân thành cảm ơn
Trang 6CHƯƠNG 1: GIỚI THIỆU VỀ NGÔN NGỮ JAVA VÀ ANDROID
1.1 NGÔN NGỮ JAVA
1.1.1 Khái niệm Java.
Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) do Sun Microsystem đưa ravà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ênbất kỳ hệ thống nào có cài máy ảo java (Java Virtual Machine)
Java (đọc như "Gia-va") là một ngôn ngữ lập trình dạng lập trình hướng đối tượng(OOP) Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mãnguồnthành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biêndịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtimeenvironment) chạy Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lậptrình thông dịch khác như C++, Python, Perl, PHP, C#
Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng đốitượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn Do đó việc viết một chươngtrình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn Dùng bộ thư việnchuẩn KFC, nhiều đoạn code Java chỉ mất vài dòng trong khi C phải mất cả trang giấy.Lập trình C rất hay xảy ra lỗi và khó sửa Trong Java, hiện tượng dò rỉ bộ nhớ hoàntoàn có thể tránh bằng cách định nghĩa vài preprocessor directives như #define
1.1.2 Lịch sử.
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun
bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này), họ dự định ngôn ngữ
đó thay choC++, nhưng các tính năng giống Objective C Không nên lẫn lộn Java
Microsystems đang giữ bản quyền và phát triển Java thường xuyên Tháng 04/2011,công ti Sun Microsystems tiếp tục cho ra bản JDK 1.6.24
Java được tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write Once,Run Anywhere" (WORA)) Chương trình phần mềm viết bằng Java có thể chạy trênmọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện cómôi trường thực thi thích hợp hỗ trợ nền tảng đó Môi trường thực thi của SunMicrosystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD & Windows Ngoài ra, một
số công ty, tổ chức cũng như cá nhân khác cũng phát triển môi trường thực thi Javacho những hệ điều hành khác như BEA, IBM, HP Trong đó đáng nói đến nhất làIBM Java Platform hỗ trợ Windows, Linux, AIX & z/OS
Trang 7Những chi tiết về ngôn ngữ, máy ảo và API của Java được giữ bởi Cộng đồng
ông James Gosling, một phần củaDự án Xanh(Green Project) Java được phát hànhvào năm 1994, rồi nó trở nên nổi tiếng khi Netscape tuyên bố tại hội thảo SunWorld
trên hầu hết các trình duyệt như Internet Explorer (Microsoft), Firefox (Mozilla),Safari (Apple)…
Java được sử dụng chủ yếu trên môi trường NetBeans và Oracle Saukhi Oracle mua lại công tySun Microsystems năm 2009-2010, Oracle đã mô tả họ là
"người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồngtham gia và minh bạch"
1.1.3 Một số đặc điểm nổi bật của ngôn ngữ lập trình Java
Má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 biên dịch ra mã máy Mã máycủa từng kiến trúc CPU của mỗi máy tính là khác nhau (tập lệnh mã máy của CPUIntel, CPU Solarix, CPU Macintosh… là khác nhau), vì vậy trước đây một chươngtrình sau khi được biên dịch xong chỉ có thể chạy được trên một kiến trúc CPU cụ thểnào đó Đối với CPU Intel chúng ta có thể chạy các hệ điều hành như MicrosoftWindows, Unix, Linux, OS/2,… Chương trình thực thi được trên Windows được biêndịch dưới dạng file có đuôi EXE, còn trên Linux thì được biên dịch dưới dạng file cóđuôi ELF, vì vậy trước đây một chương trình chạy được trên Windows muốn chạyđược trên hệ điều hành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch lại.Ngôn ngữ lập trình Java ra đới, nhờ vào máy ảo Java mà khó khăn trên đã được khắcphục Một chương trình viết bằng ngôn ngữ Java sẽ được biên dịch sang mã của máy
ảo java (mã java bytecode) Sau đó máy ảo Java chịu trách nhiệm chuyển mã javabytecode thành mã máy tương ứng Sun Microsystem chịu trách nhiệm phát triển cácmáy ảo Java chạy trên các hệ điều hành kiến trúc CPU khác nhau
Trang 8 Hướng đối tượng:
Hướng đối tượng trong Java tương tự như C++ nhưng Java là một ngôn ngữ lậptrì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, thậm chí hàm chính của một chương trìnhviết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp Hướng đối tượngtrong Java không có tính đa kế thừa (multi inheritance) như trong C++ mà thay vào đóJava đưa ra khái niệm interface để hỗ trợ tính đa kế thừa
Đ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
Khả 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 ảoJava 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
Hỗ trợ mạnh cho việc phát triển ứng dụng:
Công nghệ Java phát triển mạnh mẽ nhờ vào “đại gia Sun Microsystem” cung cấpnhiề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 Editition) hỗ trợ phát triểnnhững ứng dụng đơn, ứng dụng client-server; J2EE (Java 2 Enterprise Editition) hỗ trợphát triển các ứng dụng thương mại, J2ME (Java 2 Micro Editition) hỗ trợ phát triểncác ứng dụng trên các thiết bị di động, không dây, …
1.2 Dịch và thực thi một chương trình viết bằng Java
Việc xây dựng, dịch và thực thi một chương trình viết bằng ngôn ngữ lập trình java
có thể tóm tắt qua các bước sau:
Viết mã nguồn: dùng một chương trình soạn thảo nào đấy (NotePad hay Jcreator chẳng hạn) để viết mã nguồn và lưu lại với tên có đuôi “.java”
Biên dịch ra mã máy ảo: dùng trình biên dịch javac để biên dịch mã nguồn “.java” thành mã của máy ảo (javabytecode) có đuôi “.class” và lưu lên đĩa
Thông dịch và thực thi: ứng dụng được load vào bộ nhớ, thông dịch và thực thi dùng trình thông dịch Java thông qua lệnh “java”
o Đưa mã java byte code vào bộ nhớ: đây là bước“loading” Chương trình phải được đặt vào trong bộ nhớ trước khi thực thi “Loader” sẽ lấy các files chứa mã java bytecode có đuôi “.class” và nạp chúng vào bộ nhớ
o Kiểm tra mã java bytecode: trước khi trình thông dịch chuyển mã
bytecode thành mã máy tương ứng để thực thi thì các mã bytecode phải được kiểm tra tính hợp lệ
Trang 9o Thông dịch & thực thi: cuối cùng dưới sự điều khiển của CPU và trình thông dịch tại mỗi thời điểm sẽ có một mã bytecode được chuyển sang mã máy và thực thi.
1.1.4 Công cụ lập trình và chương trình dịch
- J2SDK
Download J2SE phiên bản mới nhất tương ứng với hệ điều hành đang sửdụng từ địa chỉ http://java.sun.com và cài đặt lên máy tính (phiên bản được chúngtôi sử dụng khi viết giáo trình này là J2SE 1.4) Sau khi cài xong, chúng ta cần cậpnhật đường dẫn PATH hệ thống chỉ đến thư mục chứa chương trình dịch của ngônngữ java
- Công cụ soạn thảo mã nguồn Java
Để viết mã nguồn java chúng ta có thể sử dụng trình soạn thảo NotePad,Netbean, Eclipse hoặc một số môi trường phát triển hỗ trợ ngôn ngữ java như:Jbuilder của hãng Borland, Visual Cafécủa hãng Symantec, JDevel opercủa hãngOracle, Visual J++ của Microsoft, …
1.2 KHÁI QUÁT VỀ ANDROID :
1.2.1 Giới thiệu khái quát về android :
Thiết bị Android được phân phối đang có tốc độ tăng trưởng nhanh hơn bất kỳnền tảng di động khác, điều đó giúp Android trở thành một sự lựa chọn tuyệt vờitrong hành trình phát triển ứng dụng trên điện thoại di động, đặc biệt là nếu bạn làmột nhà phát triển Java Một nhược điểm lớn của ứng dụng Android là sự phânmảnh, trong đó trình bày những thách thức đáng kể cho các ứng dụng thử nghiệm.Thực tế cho thấy là hầu hết các nhà phát triển ứng dụng gần như không thể kiểm tramột ứng dụng cho mọi thiết bị Android cho đến các phiên bản hệ điều hành (Trongthực tế, làm như vậy theo một cách hiệu quả kinh tế chính là sự phát triển củangành công nghiệp dịch vụ.) Phần sau của bài viết sẽ nhìn vào các vấn đề kỹ thuậtliên quan đến việc xuất ra nhiều phiên bản Android, cộng với các công cụ dựa trênJava để thử nghiệm các ứng dụng Android trên điện thoại di động Bây giờ, chúng
ta hãy cùng khảo sát qua các phiên bản Android để bạn có thể hiểu và phát triểnứng dụng trên nền tảng này
1.2.2 Kiến trúc của android :
Đôi khi không cần phải hiểu rõ kiến trúc của Android ta vẫn có thể viết đượcứng dụng chạy trên hệ điều hành này Đây cũng chính là điều mà nhà sản xuấtmuốn khi họ phát hành bộ SDK đi kèm với framework của họ Và điều này có cả
Trang 10mặt tốt lẫn xấu Framework nằm ở tầng cao cấp dành cho lập trình viên, giúp họ tạo
ra các ứng dụng phổ biến nhưng rất khó dùng nó để tạo ra các ứng dụng đi sâu vào
hệ thống của hệ điều hành Vì thế chúng ta nên tìm hiểu về cấu trúc của android để
có cái nhìn toàn diện hơn về hệ điều hành này
1.2.3 Máy ảo Dalvik
Một trong những thành phần quan trọng của Android là máy ảo Dalvik Thay vì
sử dụng máy ảo Java như trước kia Android sử dùng máy ảo của riêng nó được thiết
kế để bảo đảm rằng đa ứng dụng có thể chạy mượt mà trên một thiết bị di động Máy ảo Dalvik sử dụng lõi Linux để xử lý các chức năng ở mức thấp bao gồmbảo mật, các tiến trình, các luồng và quản lý vùng nhớ Nó cũng có thể viết bằngứng dụng C/C++ để chạy trực tiếp lên lõi Linux bên dưới Giữa phần cứng và cácdịch vụ hệ thống được quản lý bởi máy ảo Dalvik, nó là một thành phần ở giữa.Bằng cách sử dụng máy ảo này để chạy ứng dụng, các nhà phát triển hoàn toànkhông phải bận tâm gì về các phần cứng bên dưới Khi máy ảo này chạy nó sẽ tạo ratập tin có đuôi là dex, tập tin này được SDK tạo ra bởi sự chuyển đổi từ các lớpbiên dịch ngôn ngữ Java
1.2.4 Các thành phần cơ bản để tạo nên một ứng dụng Android
o Activity:hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng Khi khởi
động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi,hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác
o Service: thành phần chạy ẩn trong Android từ lúc chạy đến khi thiết bị cầm tay
tắt đi Service sử dụng để update dữ liệu, đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy
o Content Provider: được tạo ra để quản lý và chia sẻ dữ liệu với các hoạt động,
dịch vụ khác
o Intent: nền tảng để truyền tải các thông báo Intent được sử dụng để gửi các
thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong muốn
o Broastcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới.
o Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng
hoạt động
Vòng đời của một Activity
o onCreate( ): hàm này được gọi khi lớp Activity được khởi tạo, dùng để thiết
lập giao diện ứng dụng và thực thi những thao tác cơ bản
Trang 11o onStart(): hàm này được gọi khi lớp ứng dụng xuất hiện trên màn hình
o onResume(): hàm được gọi ngay sau OnStart hoặc khi người dùng focus ứng dụng, hàm này sẽ đưa ứng dụng lên top màn hình
o onPause(): hàm được gọi khi hệ thống đang focus đến 1 activity trước đó
o onStop(): hàm được gọi khi một activity khác được khởi động và focus
o onRestart(): đưọc gọi khi ứng dụng chuyển sang onStop(), nhưng muốn khởi
động lại bằng onStart()
1.3 SƠ LƯỢC VỀ GOOGLE PLAY SERVICES VÀ SỬ DỤNG GOOGLE
SPEECH RECOGNITION API ĐỂ XÂY DỰNG ỨNG DỤNG.
1.3.1 Google Play services
Google Play services được dùng để cập nhật ứng dụng Google và ứng dụng từGoogle Play Ứng dụng này cung cấp chức năng cốt lõi như xác nhận với dịch vụGoogle, đồng bộ danh bạ, truy cập vào tất cả các cài đặt riêng tư mới nhất và cácdịch vụ dựa trên địa điểm chất lượng cao hơn
Google Play services cho Android cũng sẽ cải thiện trải nghiệm ứng dụng củabạn Nó sẽ tăng tốc khả năng tìm kiếm ngoại tuyến, cung cấp thêm bản đồ cá nhânhóa hơn và cải thiện trải nghiệm chơi game Các ứng dụng sẽ không hoạt động nếubạn gỡ Google Play services khỏi máy
Lưu ý: Ứng dụng có thể không hoạt động nếu bạn gỡ cài đặt các dịch vụ củaGoogle Play Google Play services mang lại thêm các tính năng cho ứng dụng củabạn để thu hút người dùng trên nhiều thiết bị khác nhau Với Google Play services,ứng dụng của bạn có thể tận dụng những tính năng mới nhất do Google cung cấpnhư Maps, Google+, với khả năng tự động cập nhật theo dạng APK trên GooglePlay store Điều này sẽ giúp người dùng của bạn nhận cập nhật và dễ dàng tích hợp
vớ những gì mới nhất của Google
Google Play services mang lại cho người dùng cách đơn giản để truy cập vàocác dịch vụ của Google và được tích hợp chặt chẽ với nền tảng Android Thư việnứng dụng rất dễ sử dụng được cung cấp cho từng dịch vụ, cho phép người dùngtriển khai chức năng mình muốn đơn giản và nhanh chóng hơn
Tất cả các sản phẩm của Google Play services chia sẻ cùng một API cấp quyềngiúp nâng tầm tài khoản Google đang dùng trên thiết bị Bạn và người dùng sẽ có
Trang 12một cách an toàn và ổn định để trao và nhận token truy cập OAuth2 vào dịch vụGoogle.
Những thiết bị chạy Android 2.2 trở lên và ứng dụng Google Play Store sẽ tựđộng nhận các bản cập nhật cho Google Play services Cải thiện ứng dụng của bạnvới phiên bản gần nhất của Google Play services mà không phải lo ngại về phiênbản Android mình đang sử dụng
1.3.2 Thư viện ứng dụng Google Play Services
Thư viện ứng dụng này bao gồm giao diện tới từng dịch vụ của Google và chophép bạn nắm giữ quyền xác nhận từ người dùng để chiếm quyền truy cập vàonhững dịch vụ này bằng thông tin của họ Nó cũng bao gồm API cho phép bạn giảiquyết những vấn đề phát sinh khi chạy, ví như Google Play services APK bị mất,disable hoặc lỗi thời Thư viện này sẽ chỉ ảnh hưởng chút ít nếu người dùng sửdụng ProGuard trong quá trình xây dựng, vậy nên nó sẽ không ảnh hưởng nhiều tớikích thước file của ứng dụng
Nếu người dùng muốn truy cập vào những tính năng hoặc ứng dụng mới thêm,chỉ việc nâng cấp lên phiên bản mới của thư viện Tuy nhiên, việc nâng cấp sẽkhông cần thiết nếu bạn không quan tâm tới tính năng mới hay vá lỗi
- Cải thiện giao diện người dùng đăng nhập của Google+
- Hỗ trợ Google Wallet Instant Buy APIs và Wallet Object
- AdMob APIs và cập nhật cài đặt quảng cáo trong ứng dụng GoogleSettings
- Hiệu ứng hình ảnh Google Maps API mới và cải thiện Location APIgeofencing
Trang 131.3.4 Tìm hiểu về Google Speech Recognition API
1.3.4.1 Google Speech Recognition API
Google Speech Recognition API là ứng dụng nhận dạng giọng nói thườngdùng để ra lệnh cho các thiết bị điện thoại và nhập văn bản không cần bàn phím.Google mới đây đã chính thức hỗ trợ chức năng tìm kiếm giọng nói bằngtiếng Việt trên Android Tuy nhiên, ngoài việc tìm kiếm, người dùng Androidcòn có thể nhập văn bản hay soạn tin nhắn hoàn toàn bằng giọng nói tiếng Việt,với độ chính xác cao Với việc hỗ trợ chức năng giọng nói bằng tiếng Việt trênAndroid, người dùng không chỉ sử dụng chức năng này để có thể tìm kiếm bằngtiếng Việt, mà còn có thể nói trực tiếp với thiết bị Android để có thể soạn thảotin nhắn, soạn thảo văn bản hay lưu lại những ghi chú… hoàn toàn bằng tiếngViệt, thậm chí Android còn tự động bỏ dấu chữ cho phù hợp và chính xác.Trong đề tài này, chúng em đã sử dụng Google Speech Recognition API, đây
là một service của Google cho phép nhận dạng tiếng nói của người dùng
1.3.4.2 Cách sử dụng Google Speech Recognition API của bạn trên Android
Bạn có thể nói vào điện thoại hoặc máy tính bảng Android để làm những việcnhư tìm kiếm, nhận chỉ đường và gửi tin nhắn Nếu thiết bị của bạn đang chạyAndroid 4.1 trở lên, chỉ cần mở ứng dụng Google Tìm kiếm và nói "OkGoogle" (Tính năng này hiện có sẵn bằng tiếng Anh, Pháp và Đức)
Nếu bạn có phiên bản Android cũ hơn, hãy chạm vào biểu tượng Micrô trên màn hình chính hoặc trong ứng dụng Google Tìm kiếm
Hầu hết các ứng dụng này được hỗ trợ bằng tiếng Anh, Pháp, Đức, Ý, Nhật,Hàn, Nga, Tây Ban Nha và Bồ Đào Nha (Braxin), tuy nhiên một số lệnh có thểkhông khả dụng ở từng ngôn ngữ
Để xem ứng dụng trên màn hình Google Hiện hành, hãy nói "Ok Google" rồinói "Help" (Trợ giúp)
Bạn có thể sử dụng nó để giữ liên lạc như: Gọi điện cho bạn bè, nhắn tin chobạn bè, gửi email, nghe thư thoại,…
Bên cạnh đó là việc thực hiện các công việc: đặt lời nhắc, đặt báo thức, truycập trang web, mở ứng dụng, chụp ảnh hoặc quay video…
Trang 14CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 PHÂN TÍCH
2.1.1 Phân tích yêu cầu người dùng
Trong thời kỳ hội nhập và phát triển mạnh mẽ, ngoại ngữ, đặc biệt là tiếng Anh,luôn là một kỹ năng rất quan trọng đối với mỗi chúng ta Biết ngoại ngữ giúp chúng tatiếp cận tốt hơn với kiến thức rộng lớn của nhân loại, qua đó nâng cao trình độ cho bảnthân Tiếng Anh chính là ngông ngữ phổ biến nhất thế giới Nói tiếng Anh tốt giúpchúng ta tự tin khi giao tiếp với người ngoại quốc, là công cụ để chúng ta có cơ hộilàm việc ở những công ty có chất lượng, những công ty liên kết với nước ngoài
Ứng dụng Talk2Me là một ứng dụng cho phép người dùng luyện nói tiếng Anhtrên chính chiếc điện thoại Android của mình Ứng dụng bao gồm một bộ các câu tiếngAnh, yêu cầu người dùng nói lại câu đó, và đưa ra đánh giá về độ chính xác của câunói Qua đó giúp người dùng dần dần sửa được cách phát âm của mình cho đúng
Ứng dụng sử dụng hệ thống nhận dạng tiếng nói của Google, vì vậy độ chínhxác của việc nhận dạng là khá tốt
Trong quá trình xây dựng ứng dụng cần phải có các phương pháp để xác định yêucầu người dùng
- Nghiên cứu các phần mềm đã có: đọc tài liệu, xem ứng dụng
- Thực hiện khảo sát/phỏng vấn: đi khảo sát, đặt câu hỏi
2.1.2 Mô tả quá trình nghiệp vụ
Quá trình luyện nói tiếng anh được chia ra làm 3 bước:
Trang 15Recognition API.
3 Tình kết quả đọc
Khi người dùng đọc xong, ứng dụng sẽ gủi bài học lên Google Speech Recognition API, và Google Speech Recognition API xử lý trả về kết quả
Bảng 2.1.2 Bảng mô tả quá trình nghiệp vụ
2.1.3 Biểu đồ phân cấp chức năng
Nói các câu cho trước theo chủ đề 2 Kiểm tra tốc độ nói
Hình 2.1.3 Biểu đồ phân cấp chức năng
Mô tả các chức năng.
Nói theo các bài cơ bản: Tại các bài học chính sẽ có 2 hình thức học
o Một là nói to và rõ các câu theo các chủ đề
o Hai là nói thêm một số câu theo hình ảnh cho trực quan sinh động
Nói theo chủ đề: Tại nói theo chủ đề có 2 chủ để, trong các chủ để có các mức độtăng dần theo độ khó
Nói theo các bài nâng cao: Tại các bài thử thách sẽ tạo cho bạn khả năng phản xạtốt hơn gồm 2 hình thức học sau
o Một là đọc câu hỏi và chọn câu trả lời đúng
o Hai là kiểm tra tốc độ nói
Trang 162.1.3 Biểu đồ Usecase
2.1.3.1 Biểu đồ Usecase tổng quát
Noi to ro theo hinh anh
Noi to ro theo chu de 2
Noi to ro theo chu de 1
Noi theo chu de
User
Kiem tra toc do noi Chon cau tra loi dung
Noi theo cac bai nang cao
Noi to ro mot so cau cho truoc
Noi theo cac bai co ban
+ Người dùng chọn các chức năng trên giao diện của hệ thống
+ Khi người dùng chọn chức năng, màn hình sẽ hiển thị danh sách cấp độhọc Khi chọn tiếp một trong các cấp độ học thì màn hình sẽ hiển thị danh sách cácbài học, khi chọn tiếp một trong các bài học thi hệ thống sẽ phản hồi lại bằng cáchhiển thị nội dung mà người dùng cừa chọn, người dùng thực hiện học và hệ thốngtrả về kết quả cho người dùng