Ngày nay, với sự phát triển nhanh chóng của xã hội, trong mọi lĩnh vực như y, giáo dục, y tế, giải trí, thể thao và trong kinh doanh cũng không ngoại lệ. Vì sự hiệu quả tiện lợi của việc áp dụng công nghệ thông tin vào thực tế, ở đây là nền tảng Android, vì vậy em đã quyết định chọn đề tài “Xây dựng ứng dụng App Learn Japanese” trên hệ điều hành Android và trên server để có thể đáp ứng được nhu cầu của người đọc mọi lúc mọi nơi, dễ dàng cập nhật những truyện mới nhất.
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN HỮU NGHỊ VIỆT - HÀN KHOA: CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CHUYÊN ĐỀ NGÀNH: LẬP TRÌNH MÁY TÍNH KHÓA HỌC: 2013-2016 TÊN ĐỀ TÀI : “App Learn Japanese” Sinh viên thực hiện: Lê Thế Đô Lớp: CCLT07B Họ tên GVHD: Đoàn Thanh Sơn Đà Nẵng , tháng năm 2016 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến gia đình thân yêu em Những người bên em dõi theo đoạn đường của em Gia đình động viên, chia động lực em phấn đấu để vượt qua khó khăn, thử thách thời gian qua Em xin gửi lời cảm ơn đến thầy Đoàn Thanh Sơn tận tình hướng dẫn em làm đề tài Và qua đây, em xin chân thành cảm ơn thầy (cô) Khoa: Công Nghệ Thông Tin – Trường Cao đẳng CNTT hữu nghị Việt Hàn truyền đạt kiến thức cho em, toàn thể bạn Sinh viên năm qua Với vốn kiến thức tiếp thu trình học tập, không tảng cho trình nghiên cứu đề tài này, mà hành trang quý báu để em bước vào đời cách vững tự tin Cảm ơn tất người bạn động viên, khích lệ em suốt thời gian vừa qua Cuối cùng, em xin kính chúc thầy (cô) gia đình dồi sức khỏe, hạnh phúc thành công ! Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn MỤC LỤC LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH ẢNH LỜI MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.2 NGHIÊN CỨU MÁY ẢO DALVIK .9 1.3 KIẾN TRÚC CỦA ANDROID Linux Kernel 10 LINUX KERNEL 10 Android Runtime 10 ANDROID RUNTIME .10 Libraries 10 LIBRARIES 10 Application Framework 11 APPLICATION FRAMEWORK .11 Applications 12 APPLICATIONS 12 1.4 ANDROID EMULATOR 12 1.5 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT .12 Thư mục src 12 THƯ MỤC SRC 12 Thư mục res 12 THƯ MỤC RES .12 2.5.3 File R.Java 13 2.5.4 Android Manifest.xml 14 1.6 CHU KỲ ỨNG DỤNG CỦA ANDROID 16 Chu kỳ sống thành phần .16 CHU KỲ SỐNG THÀNH PHẦN 16 Activity stack 17 ACTIVITY STACK 17 Các trạng thái chu kỳ sống 18 CÁC TRẠNG THÁI CỦA CHU KỲ SỐNG 18 Chu kỳ sống ứng dụng 18 CHU KỲ SỐNG CỦA ỨNG DỤNG 18 Các kiện chu kỳ sống ứng dụng .19 CÁC SỰ KIỆN TRONG CHU KỲ SỐNG CỦA ỨNG DỤNG 19 Thời gian sống ứng dụng .19 THỜI GIAN SỐNG CỦA ỨNG DỤNG 19 Thời gian hiển thị Activity 19 THỜI GIAN HIỂN THỊ CỦA ACTIVITY 19 Các phương thức chu kỳ sống .20 CÁC PHƯƠNG THỨC CỦA CHU KỲ SỐNG 20 1.7 CÁC THÀNH PHẦN GIAO DIỆN TRONG ANDROID 21 View 21 VIEW 21 ViewGroup 22 Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn VIEWGROUP 22 Button 25 BUTTON 25 ImageButton 26 IMAGEBUTTON .26 ImageView 26 IMAGEVIEW 26 ListView 27 LISTVIEW .27 TextView .28 TEXTVIEW 28 EditText 28 EDITTEXT .28 CheckBox 29 CHECKBOX 29 MenuOptions 30 MENUOPTIONS 30 ContextMenu 31 CONTEXTMENU 31 Quick Search Box 32 QUICK SEARCH BOX 32 Activity Intent .33 ACTIVITY INTENT 33 2.7.13.1 Activity .33 2.7.13.2 Intent .34 1.8 NGÔN NGỮ PHP VÀ MYSQL 36 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ 39 2.1 MÔ HÌNH HÓA YÊU CẦU 39 2.1.1 Xác định tác nhân 39 2.1.2 Xác định trường hợp sử dụng (use case) 39 2.1.2.1 Liệt kê trường hợp sử dụng 39 2.1.2.2 Đặc tả trường hợp sử dụng 39 2.2 MÔ HÌNH HÓA KHÁI NIỆM 40 2.2.1 Các gói hệ thống .40 2.2.1.1 Các lớp biên 40 2.2.1.2 Các lớp điều khiển 41 2.4 MỘT SỐ THUẬT TOÁN SỬ DỤNG TRONG CHƯƠNG TRÌNH .44 CHƯƠNG : XÂY DỰNG CHƯƠNG TRÌNH 46 3.1 TỔNG QUAN VỀ APP LEARN JAPANESE 46 3.2 GIAO DIỆN APP MUSIC 46 3.2.1Giao diện .46 3.3 HƯỚNG DẪN SỬ DỤNG 48 3.3.1 Yêu cầu cấu hình 48 KẾT LUẬN 49 TÀI LIỆU THAM KHẢO 50 Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn DANH MỤC HÌNH ẢNH HÌNH 2.1 ANDROID TIMELINE HÌNH 2.2 CẤU TRÚC STACK HỆ THỐNG ANDROID 10 HÌNH 2.3 ANDROID EMULATOR 12 HÌNH 2.4 CHU KỲ SỐNG THÀNH PHẦN 17 HÌNH 2.5 ACTIVITY STACK 17 HÌNH 2.6 CHU KỲ SỐNG CỦA ACTIVITY 18 HÌNH 2.7 CÁC SỰ KIỆN TRONG CHU KỲ SỐNG CỦA ỨNG DỤNG 19 HÌNH 2.8 CẤU TRÚC MỘT GIAO DIỆN ỨNG DỤNG ANDROID .22 HÌNH 2.9 BỐ TRÍ CÁC WIDGET SỬ DỤNG LINEARLAYOUT 22 HÌNH 2.10 BỐ TRÍ CÁC WIDGET TRONG FRAMELAYOUT 23 HÌNH 2.11 BỐ TRÍ CÁC WIDGET TRONG RETALIVELAYOUT 24 HÌNH 2.12 BỐ TRÍ WIDGET TRONG TABLELAYOUT 24 HÌNH 2.13 IMAGEBUTTON 26 HÌNH 2.14 IMAGEVIEW VÀ IMAGEBUTTON 27 HÌNH 2.15 MINH HỌA CHO MỘT LISTVIEW 28 HÌNH 2.16 MINH HỌA MENUOPTIONS 30 HÌNH 2.17 MINH HỌA CHO CONTEXTMENU 32 HÌNH 2.18 MINH HỌA QUICK SEARCH BOX 33 HÌNH 2.19 TRUYỀN DỮ LIỆU GIỮ ACTIVITY 35 HÌNH 2.20 CÁC THUỘC TÍNH CỦA INTENT 35 HÌNH 2.21 CÁC ACTION ĐÃ ĐƯỢC ĐỊNH NGHĨA TRONG INTENT 36 HÌNH 2.1 BIỂU ĐỒ TRƯỜNG HỢP SỬ DỤNG 40 HÌNH 2.2 BIỂU ĐỒ CÁC LỚP BIÊN 40 HÌNH 2.3 BIỂU ĐỒ CÁC LỚP ĐIỀU KHIỂN 41 HÌNH 2.3.2: BIỂU ĐỒ HOẠT ĐỘNG CHỌN SPEAKING 42 HÌNH 2.3.3: BIỂU ĐỒ HOẠT ĐỘNG CHỌN LESSON .42 HÌNH 2.3.4: BIỂU ĐỒ HOẠT ĐỘNG CHỌN GRAMMER 43 HÌNH 2.3.5: BIỂU ĐỒ HOẠT ĐỘNG CHỌN ALPHABET 43 HÌNH 2.3.6: BIỂU ĐỒ HOẠT ĐỘNG GRAMMER 43 Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn LỜI MỞ ĐẦU Lý chọn đề tài Công nghệ thông tin (CNTT) ngày có vai trò quan trọng sống hàng ngày Việc ứng dụng CNTT vào lĩnh vực đời sống giúp công việc tiến hành nhanh chóng hiệu Có nhiều công việc phát triển song song với CNTT, số lập trình ứng dụng, hướng dịch vụ mang lại hiệu kinh tế lớn Trong vài năm trở lại hệ điều hành Android đời bùng nổ mạnh mẽ giới, ước tính Việt Nam có khoảng 12 triệu người sử dụng điện thoại android, số lớn Android tảng mạnh mẽ chạy điện thoại di động, Android ngày chiếm lĩnh nhiều thị trường thiết bị di động, phát triển ứng dụng đặc biệt ứng dụng thực tế cho doanh nghiệp ngày trở nên hội phát triển lớn cho nhà phát triển Ngày nay, với phát triển nhanh chóng xã hội, lĩnh vực y, giáo dục, y tế, giải trí, thể thao kinh doanh không ngoại lệ Vì hiệu tiện lợi việc áp dụng công nghệ thông tin vào thực tế, tảng Android, em định chọn đề tài “Xây dựng ứng dụng App Learn Japanese” hệ điều hành Android server để đáp ứng nhu cầu người đọc lúc nơi, dễ dàng cập nhật truyện Mục tiêu nhiệm vụ nghiên cứu Mục tiêu nghiên cứu - Nghiên cứu ngôn ngữ lập trình Android - Nghiên cứu ngôn ngữ php html - Xây dựng website với mysql - Xây dựng ứng dụng Android - Đảm bảo chương trình hiệu - Chương trình chạy ổn định - Giao diện thân thiện dễ sử dụng - Tối ưu hóa thao tác dư thừa, đơn giản cho người bắt đầu - Hạn chế thấp sai sót xảy trình sử dụng Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn Nhiệm vụ nghiên cứu - Nghiên cứu ngôn ngữ lập trình Android mySQL Đối tượng phạm vi nghiên cứu Đối tượng - Ứng dụng đọc truyện hệ điều hành Android - MySQL server Phạm vi nghiên cứu - Trên điện thoại Android Server Phương pháp nghiên cứu - Tìm hiểu cách viết xây dựng ứng dụng cho Android - Tìm hiểu phương pháp lập trình web đưa website lên server - Cài đặt ứng dụng Dự kiến kết quả: Ứng dụng đọc truyện online android, quản lí sở liệu servser Lời cảm ơn Em xin gửi lời cảm ơn đến thầy cô tận tình dạy dỗ giúp đỡ em ba năm học trường cao đẳng Công nghệ thông tin Hữu nghị Việt – Hàn, cảm ơn hướng dẫn tận tình thầy Đoàn Thanh Sơn cho việc hoàn thành đồ án chuyên đề Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Lịch sử Android Ban đầu, Android hệ điều hành cho thiết bị cầm tay dựa lõi Linux công ty Android Inc (California, Mỹ) thiết kế Công ty sau Google mua lại vào năm 2005 bắt đầu xây dựng Android Platform Các thành viên chủ chốt Android Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White Hình 2.1 Android timeline Và sau tiếp, vào cuối năm 2007, thuộc Liên minh Thiết bị Cầm tay Mã Nguồn mở (Open Handset Alliance) gồm thành viên bật ngành viễn thông thiết bị cầm tay như: Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group,… Mục tiêu Liên minh nhanh chóng đổi để đáp ứng tốt cho nhu cầu người tiêu dùng kết tảng Android Android thiết kế để phục vụ nhu cầu nhà sản xuất thiết, nhà khai thác lập trình viên thiết bị cầm tay Phiên SDK lần phát hành vào tháng 11 năm 2007, hãng T Mobile công bố điện thoại Android T-Mobile G1, smartphone dựa tảng Android Một vài ngày sau đó, Google lại tiếp tục công bố mắt phiên Android SDK release Candidate 1.0 Trong tháng 10 năm 2008, Google cấp giấy phép mã nguồn mở cho Android Platform Khi Android phát hành số mục tiêu kiến trúc cho phép ứng dụng tương tác với sử dụng lại thành phần từ ứng dụng khác Việc tái sử dụng không áp dụng cho Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn dịch vụ mà áp dụng cho thành phần liệu giao diện người dùng Vào cuối năm 2008, Google cho phát hành thiết bị cầm tay gọi Android Dev Phone chạy ứng dụng Android mà không bị ràng buộc vào nhà cung cấp mạng điện thoại di động Mục tiêu thiết bị cho phép nhà phát triển thực thí nghiệm thiết bị thực chạy hệ điều hành Android mà ký hợp đồng Vào khoảng thời gian Google cho phát hành phiên vản vá lỗi 1.1 hệ điều hành Ở hai phiên 1.0 1.1 Android chưa hỗ trợ soft-keyboard mà đòi hỏi thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề cách phát hành SDK 1.5 vào tháng Tư năm 2009, với số tính khác Chẳng hạn nâng cao khả ghi âm truyền thông, vật dụng, live folder 1.2 Nghiên cứu máy ảo Dalvik Dalvik máy ảo giúp ứng dụng java chạy thiết bị động Android Nó chạy ứng dụng chuyển đổi thành file thực thi Dalvik (dex) Định dạng phù hợp cho hệ thống mà thường bị hạn chế nhớ tốc độ xử lý Dalvik thiết kế viết Dan Bornstein, người đặt tên cho sau đến thăm làng đánh cá nhỏ có tên Dalvík đảo Eyjafjörður, nơi mà số tổ tiên ông sinh sống Từ góc nhìn nhà phát triển, Dalvik trông giống máy ảo Java (Java Virtual Machine) thực tế hoàn toàn khác Khi nhà phát triển viết ứng dụng dành cho Android, thực đoạn mã môi trường Java Sau đó, biên dịch sang bytecode Java, nhiên để thực thi ứng dụng Android nhà phát triển phải thực thi công cụ có tên dx Đây công cụ dùng để chuyển đổi bytecode sang dạng gọi dex bytecode "Dex" từ viết tắt "Dalvik executable" đóng vai trò chế ảo thực thi ứng dụng Android 1.3 Kiến trúc Android Mô hình sau thể cách tổng quát thành phần hệ điều hành Android Mỗi phần đặc tả cách chi tiết Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn Hình 2.2 Cấu trúc stack hệ thống Android Linux Kernel Android dựa Linux phiên 2.6 cho hệ thống dịch vụ cốt lõi security, memory management, process management, network stack, and driver model Kernel Linux hoạt động lớp trừu tượng hóa phần cứng phần lại phần mềm stack Android Runtime Android bao gồm tập hợp thư viện mà cung cấp hầu hết chức có sẵn thư viện lõi ngôn ngữ lập trình Java Tất ứng dụng Android chạy tiến trình riêng Máy ảo Dalvik viết thiết bị chạy nhiều máy ảo hiệu Các VM Dalvik thực thi tập tin thực thi Dalvik (dex) Định dạng tối ưu hóa cho nhớ tối thiểu VM dựa registerbased, chạy lớp biên dịch trình biên dịch Java để chuyển đổi thành định dạng dex Các VM Dalvik dựa vào nhân Linux cho chức luồng quản lý nhớ thấp Libraries Android bao gồm tập hợp thư viên C/C++ sử dụng nhiều thành phần khác hệ thống Android Điều thể thông qua tảng ứng dụng Android Một số thư viện liệt kê đây: - System C library: Thư viện chuẩn C - Media Libraries: Dựa PacketVideo's OpenCORE; thư viên hỗ trợ Lê Thế Đô - CCLT07B 10 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn Hình 2.21 Các Action định nghĩa Intent 1.8 Ngôn ngữ PHP Mysql PHP - viết tắt hồi quy "Hypertext Preprocessor", ngôn ngữ lập trình kịch chạy phía server nhằm sinh mã html client PHP trải qua nhiều phiên tối ưu hóa cho ứng dụng web, với cách viết mã rõ rãng, tốc độ nhanh, dễ học nên PHP trở thành ngôn ngữ lập trình web phổ biến ưa chuộng PHP chạy môi trường Webserver lưu trữ liệu thông qua hệ quản trị sở liệu nên PHP thường kèm với Apache, MySQL hệ điều hành Linux (LAMP) • Apache phần mềm web server có nhiệm vụ tiếp nhận request từ trình duyệt người dùng sau chuyển giao cho PHP xử lý gửi trả lại cho trình duyệt • MySQL tương tự hệ quản trị sở liệu khác (Postgress, Oracle, SQL server ) đóng vai trò nơi lưu trữ truy vấn liệu • Linux: Hệ điều hành mã nguồn mở sử dụng rộng rãi cho webserver Thông thường phiên sử dụng nhiều RedHat Enterprise Linux, Ubuntu PHP hoạt động nào? Khi người sử dụng gọi trang PHP, Web Server triệu gọi PHP Engine để thông dịch dịch trang PHP trả kết cho người dùng hình bên Lê Thế Đô - CCLT07B 36 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn MySQL hệ quản trị sở liệu mã nguồn mở miễn phí nằm nhóm LAMP (Linux – Apache -MySQL – PHP) >< Microsoft (Windows, IIS, SQL Server, ASP/ASP.NET), MySQL tích hợp sử dụng chung với apache, PHP nên phổ biến giới Vì MySQL ổn định dễ sử dụng (đối với tui ko chắc.), có tính khả chuyển, hoạt động nhiều hệ điều hành cung cấp hệ thống lớn hàm tiện ích mạnh(vì nhiều người hỗ trợ mã nguồn mở mà) Mysql có cách truy xuất mã lệnh tương tự với ngôn ngữ SQL nên MySQL sử dụng hỗ trợ lập trình viên yêu thích mã nguồn mở Nhưng Mysql không bao quát toàn câu truy vấn cao cấp SQL Server Vì Mysql đáp ứng việc truy xuất đơn giản trình vận hành website, thích hợp cho ứng dụng có truy cập CSDL internet giải hầu hết toán PHP, Perl MySQL miễn phí hoàn toàn bạn tải MySQL từ trang chủ Nó có nhiều phiên cho hệ điều hành khác nhau: phiên Win32 cho hệ điều hành dòng Windows,Linux, Mac OSX, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS, … MySQL ví dụ Hệ Quản trị Cơ sở liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL) Một số đặc điểm MySQL MySQL phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server Microsoft) Lê Thế Đô - CCLT07B 37 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn MySQL quản lý liệu thông qua CSDL, CSDL có nhiều bảng quan hệ chứa liệu MySQL có chế phân quyền người sử dụng riêng, người dùng quản lý nhiều CSDL khác nhau, người dùng có tên truy cập (user name) mật tương ứng để truy xuất đến CSDL Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập mật tài khỏan có quyền sử dụng CSDL Nếu không, không làm giống quyền chứng thực người dung SQL Server Lê Thế Đô - CCLT07B 38 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ 2.1 Mô hình hóa yêu cầu 2.1.1 Xác định tác nhân Vì ứng dụng điện thoại cá nhân, nên tác nhân có người sử dụng điện thoại Người sử dụng: người muốn học tiếng nhật 2.1.2 Xác định trường hợp sử dụng (use case) 2.1.2.1 Liệt kê trường hợp sử dụng - Khởi động ứng dụng - Tùy chọn chức - Bắt đầu sử dụng - Đóng ứng dụng 2.1.2.2 Đặc tả trường hợp sử dụng Khởi động ứng dụng Người dùng khởi động ứng dụng cách nhấn vào biểu tượng ứng dụng hình điện thoại Chọn chức Người dùng lựa chọn chức bảng chữ cái, từ vững, ngữ pháp Bắt đầu sử dụng Sau lựa chọn các chức thì Đóng trò chơi Khi không muốn chơi nữa, người dùng đóng ứng dụng Lê Thế Đô - CCLT07B 39 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn 2.1.2.3 Biểu đồ ca sử dụng Hình 2.1 Biểu đồ trường hợp sử dụng 2.2 Mô hình hóa khái niệm 2.2.1 Các gói hệ thống 2.2.1.1 Các lớp biên Lớp biên lớp nằm đường biên hệ thống với phần giới lại Nó biểu mẫu, báo cáo giao diện App Learn Japanese có lớp biên sau: Hình 2.2 Biểu đồ lớp biên Lê Thế Đô - CCLT07B 40 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn 2.2.1.2 Các lớp điều khiển Hình 2.3 Biểu đồ lớp điều khiển 2.3 Biểu đồ hoạt động Nhan nut Vocabulary Chon bai Chon Primary Chon Primary Chon Primary Hình 2.3.1: Biểu đồ hoạt đồng chọn Vocabulary Lê Thế Đô - CCLT07B 41 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn Nhan nut Speaking Chon bai Chon Primary Chon Primary Chon Primary Hình 2.3.2: Biểu đồ hoạt động chọn Speaking Nhan nut Lesson Chon bai Tu vung Ngu phap Hình 2.3.3: Biểu đồ hoạt động chọn Lesson Lê Thế Đô - CCLT07B 42 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn Nhan nut Grammer Chon bai ngu phap Hình 2.3.4: Biểu đồ hoạt động chọn Grammer Nhan nut Alphabet Chon kieu chu Hình 2.3.5: Biểu đồ hoạt động chọn Alphabet Nhan nut Grammer Chon bai ngu phap Chon Test Hiragana Chon Test Katakana Hình 2.3.6: Biểu đồ hoạt động Grammer Lê Thế Đô - CCLT07B 43 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn 2.4 Một số thuật toán sử dụng chương trình Kết nối sở dữ liệu bằng SQL Lite public class DBHelper extends SQLiteOpenHelper { private static String DB_PATH =null; public static final String DATABASE_NAME = "StydyJAP12"; public static final String CONTACTS_TABLE_NAME = "dsbaihoc"; public static final String CONTACTS_COLUMN_TV = "tuvung"; public static final String CONTACTS_COLUMN_NAME = "name"; public static final String CONTACTS_COLUMN_1 = "doan1"; public static final String CONTACTS_COLUMN_2 = "doan2"; public static final String CONTACTS_COLUMN_3 = "doan3"; public static final String CONTACTS_COLUMN_HIRAGANA = "hiragana"; public static final String CONTACTS_COLUMN_ROMANJ = "romanj"; public static final String CONTACTS_COLUMN_ROMANJ1= "romaj"; public static final String CONTACTS_COLUMN_VNESE = "vietnamese"; public static final String CONTACTS_COLUMN_VNESE1="vnese"; public static final String CONTACTS_COLUMN_KANJ = "kanj"; public static final String CONTACTS_COLUMN_NN = "nguphap"; private final Context myContext; private SQLiteDatabase myDataBase; public DBHelper(Context context) { super(context, DATABASE_NAME, null, 1); this.myContext = context; this.DB_PATH="/data/data/" +context.getPackageName() +"/"+"databases/"; Log.e("Path 1",DB_PATH); } public void createDataBase() throws IOException{ boolean dbExist = checkDataBase(); if(dbExist){ Lê Thế Đô - CCLT07B 44 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn //do nothing - database already exist }else{ //By calling this method and empty database will be created into the default system path //of your application so we are gonna be able to overwrite that database with our database this.getReadableDatabase(); try { copyDataBase(); } catch (IOException e) { throw new Error("Error copying database"); } } } Lê Thế Đô - CCLT07B 45 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn CHƯƠNG : XÂY DỰNG CHƯƠNG TRÌNH 3.1 Tổng quan App Learn Japanese Giới thiệu toán Ngày công nghệ thông tin phát triển ứng dụng hầu hết lĩnh vực sống Đặc điểm bật - Một App Learn Japanese giao diện thân thiện, đơn giãn, dễ sử dụng 3.2 Giao diện App music 3.2.1 Giao diện Lê Thế Đô - CCLT07B 46 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn Giao diện Home : giao diện chính của ứng dụng Giao diện Menu : giao diện của bảng chữ cái Lê Thế Đô - CCLT07B 47 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn Giao diện của các câu nói thông dụng Giao diện các câu tiếng nhật 3.3 Hướng dẫn sử dụng 3.3.1 Yêu cầu cấu hình -yêu cầu API 15 , android 4.0.3 trở lên Lê Thế Đô - CCLT07B 48 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn KẾT LUẬN Sau thời gian nghiên cứu phát triển đề tài “App Story Online” em hoàn thành theo yêu cầu thời gian định Trong trình nghiên cứu thực đề tài với nỗ lực cao hạn chế kinh nghiệm, kiến thức nên đề tài em chắn không tránh khỏi thiếu xót Em mong nhận góp ý từ thầy cô để đề tài hoàn thiện Kết đạt được: - Xây dựng “App Learn Japanses” đơn giản - Giao diện đơn giản, dễ sử dụng - Hiểu sâu ngôn ngữ lập trình Java lập trình android ,có thêm nhiều kiến thức, kinh nghiệm việc lập trình ứng dụng kết nối với sở dữ liệu với SQL Lite - Củng cố thêm kiến thức học lớp, tiếp xúc với thực tế Hạn chế: − Chức chưa tối ưu: Hướng phát triển − Xây dựng App hoàn thiện − Thêm chương cho truyện dài − Xây dựng ứng dụng chạy thiết bị di động khác − Xây dụng thêm chức xem video ứng dụng Đà Nẵng, Ngày ,tháng , năm 2016 Sinh viên thực Lê Thế Đô Lê Thế Đô - CCLT07B 49 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn TÀI LIỆU THAM KHẢO Trang thông tin wikipedia.org Trang http://www.w3schools.com/ Trang http://www.viethanit.edu.vn/ Trang http://sinhvienit.net Lê Thế Đô - CCLT07B 50 ... 29 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn MenuOptions Có cách tạo MenuOptions: Tạo code: Hình 2.16 Minh họa MenuOptions Lê Thế Đô - CCLT07B 30 Lập trình ứng dụng Learn Japanese. .. cảm ơn hướng dẫn tận tình thầy Đoàn Thanh Sơn cho việc hoàn thành đồ án chuyên đề Lê Thế Đô - CCLT07B Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Lịch... dụng nhằm mục đích giảm lượng tài nguyên sử dụng load đồng thời đẩy nhanh trình xử lý Lê Thế Đô - CCLT07B 23 Lập trình ứng dụng Learn Japanese GVHD: Đoàn Thanh Sơn Hình 2.11 Bố trí widget