Ngày nay các thiết bị số cầm tay như điện thoại di động, điện thoại thông minh, máy tính bảng có rất nhiều trên thị trường. Với giá thành ngày càng rẻ và các lợi ích đem lại, các thiết bị đó ngày càng được sử dụng nhiều và phổ biến. Một nền tảng được sử dụng trong các thiết bị đó là hệ điều hành thông minh Android của Google. Do vậy đi cùng việc phát triển và sử dụng các thiết bị phần cứng một cách hiệu quả thì việc phát triển các ứng dụng phần mềm chạy trên nền Android càng lúc càng tăng cao. Các thiết bị di động ngày càng mạnh mẽ với khả năng xử lí các tác vụ mà chúng ta khó có thể tưởng tượng trước đây vài năm. Những chiếc điện thoại thời trang và tiện dụng với những tính năng về phần cứng như GPS, gia tốc kế và màn hình cảm ứng là một nền tảng hấp dẫn cho các ứng dụng di động đột phá. Trong khi việc phát triển nền tảng di động hiện nay chủ yếu xây dựng trên các hệ điều hành độc quyền, hạn chế các ứng dụng của bên thứ ba, sự ra đời của Android đã mang lại một giải pháp mở. Không bị hạn chế, các lập trình viên Android tự do viết các ứng dụng tận dụng tối đa sự phát triển mạnh mẽ của phần cứng cho điện thoại di động. Android nhanh chóng trở thành hệ điều hành thu hút nhiều lập trình viên và chiếm một thị phần lớn trong thị trường di động.
Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android LỜI CẢM ƠN Trước hết em xin bày tỏ lòng biết ơn đến toàn thể thầy cô Trường Cao Đẳng Công Nghệ Thông Tin Hữu Nghị Việt – Hàn đã giúp đỡ và tạo mọi điều kiện tốt nhất trong thời gian qua để em có thể có đủ tinh thần, kiến thức vững chắc học tập cũng như thực hiện đồ án này Trong thời gian làm đồ án em đã gặp không ít khó khăn nhưng được sự giúp đỡ hướng dẫn tận tình của các thầy giáo, cô giáo trong bộ môn lập trình – Khoa Khoa Học Máy Tính – Trường Cao Đẳng Công Nghệ Thông Tin Hữu Nghị Việt – Hàn đã giúp em hoàn thành được đồ án này Em xin chân thành cảm ơn giảng viên Đoàn Thanh Sơn – người trực tiếp hướng dẫn đã tận tình hướng dẫn và giúp đỡ em thực hiện tốt cho đồ án Mặc dù đã rất cố gắng nhưng không thể tránh những sai sót trong đồ án cũng như ứng dụng, mong thầy cô và các bạn đóng góp để đồ án này được hoàn thiện hơn nữa Em xin chân thành cảm ơn! Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 1 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android MỤC LỤC LỜI CẢM ƠN 1 MỤC LỤC 2 DANH MỤC CÁC TỪ VIẾT TẮT 4 DANH MỤC HÌNH 5 MỞ ĐẦU 7 CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 9 1.1 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID 9 1.1.1 Tổng quan cấu trúc của Android 9 1.1.2 Sơ lược các phiên bản Android 11 1.1.3 Các thành phần cơ bản của ứng dụng Android 12 1.2 LẬP TRÌNH TRÊN HỆ ĐIỀU HÀNH ANDROID 16 1.2.1 Ngôn ngữ JAVA 16 1.2.1.1 Tổng quan về ngôn ngữ JAVA 16 1.2.1.2 Một số tính chất ngôn ngữ JAVA 16 1.2.2 Ngôn ngữ JSON 19 1.2.3 Ngôn ngữ XML 20 1.2.4 Ngôn ngữ PHP 21 1.3 MÁY ẢO DALVIK VÀ ANDROID SDK .22 1.3.1 Máy ảo Dalvik 22 1.3.2 Android SDK 22 1.3.3 Android Emulator 23 CHƢƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 25 2.1 MÔ TẢ VỀ HỆ THỐNG 25 2.1.1.Yêu cầu chức năng .25 2.1.2 Yêu cầu phi chức năng 25 Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 2 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android 2.1.3 Yêu cầu hệ thống 25 2.2 PHÂN TÍCH THIẾT KẾ 25 2.2.1 Mô hình hóa yêu cầu 25 2.2.2 Mô hình hóa khái niệm .28 2.2.3 Mô hình hóa tương tác 32 2.2.3.1 Biểu đồ trình tự 32 2.2.3.2 Biểu đồ cộng tác 35 2.2.4 Mô hình hóa hành vi 37 2.2.4.1 Biểu đồ trạng thái 37 2.2.4.2 Biểu đồ hoạt động 39 2.2.5 Thiết kế chi tiết biểu đồ lớp 44 2.2.6 Thiết kế kiến trúc vật lý .45 2.2.6.1 Biểu đồ thành phần 45 2.2.6.2 Biểu đồ triển khai 46 CHƢƠNG 3: XÂY DỰNG ỨNG DỤNG 47 3.1 DEMO CHƢƠNG TRÌNH .47 3.1.1 Xây dựng chức năng cập nhật dữ liệu của Web Services 47 3.1.2 Xây dựng chức năng xử lý của Web Services 47 3.1.3 Truyền dữ liệu qua các form .49 3.1.4 Đọc dữ liệu từ file JSON .50 3.2 GIAO DIỆN ỨNG DỤNG 51 KẾT LUẬN 57 DANH MỤC TÀI LIỆU THAM KHẢO 58 NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN 59 Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 3 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt API Application Programming Interface Giao diện lập trình ứng dụng CPU Central Processing Unit Đơn vị xử lý trung tâm CSDL Cơ sở dữ liệu GPS Global Positioning System High-definition Hệ thống định vị toàn cầu HD Truyền hình độ nét cao HyperText Markup Language HTML Ngôn ngữ đánh dấu siêu văn JavaScript Object Notation bản JSON Định dạng trao đổi dữ liệu cực nhẹ OOP object-oriented programming Lập trình hướng đối tượng OHA Open Handset Alliance Liên minh thiết bị cầm tay mở rộng XML eXtensible Markup Language Ngôn ngữ Đánh dấu Mở rộng SDK Software Development Kit Bộ công cụ phát triển phần mềm Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 4 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android DANH MỤC HÌNH Hình 1.1: Các thành phần của hệ điều hành Android 10 Hình 1.2: Logo và tên các phiên bản Android 12 Hình 1.3: Mô hình hoạt động của Activity 15 Hình 1.4: Cách biên dịch chương trình truyền thống 17 Hình 1.5: Cơ chế biên dịch chương trình của Java 18 Hình 1.6: Môi trường phát triển ứng dụng Android trong Eclipse 23 Hình 1.7: Android Emulator 24 Hình 2.1: Biểu đồ trường hợp sử dụng tổng quát 27 Hình 2.2: Biểu đồ trường hợp sử dụng cập nhật danh mục thực đơn 27 Hình 2.3: Biểu đồ trường hợp sử dụng cập nhật danh sách đặt món .28 Hình 2.4: Biểu đồ trường hợp sử dụng cập nhật danh sách tài khoản .28 Hình 2.5: Các lớp biên 29 Hình 2.6: Các lớp điều khiển .30 Hình 2.7: Các lớp thực thể mức phân tích 31 Hình 2.8: Biểu đồ trình tự Mở hệ thống .32 Hình 2.9: Biểu đồ trình tự Đóng hệ thống 32 Hình 2.10: Biểu đồ trình tự Cập nhật danh mục thực đơn 33 Hình 2.11: Biểu đồ trình tự Cập nhật danh sách đặt món .33 Hình 2.12: Biểu đồ trình tự Cập nhật danh sách tài khoản .34 Hình 2.13: Biểu đồ trình tự Góp ý .34 Hình 2.14: Biểu đồ cộng tác Mở hệ thống 35 Hình 2.15: Biểu đồ cộng tác Đóng hệ thống .35 Hình 2.16: Biểu đồ cộng tác Cập nhật danh mục thực đơn .36 Hình 2.17: Biểu đồ cộng tác Cập nhật danh sách đặt món 36 Hình 2.18: Biểu đồ cộng tác Cập nhật danh sách tài khoản .37 Hình 2.19: Biểu đồ cộng tác Góp ý 37 Hình 2.20: Biểu đồ trạng thái Mở hệ thống 38 Hình 2.21: Biểu đồ trạng thái Góp ý 38 Hình 2.22: Biểu đồ trạng thái Xem góp ý 38 Hình 2.23: Biểu đồ hoạt động Mở hệ thống .39 Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 5 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android Hình 2.24: Biểu đồ hoạt động Đóng hệ thống 39 Hình 2.25: Biểu đồ hoạt động Cập nhật danh mục thực đơn 40 Hình 2.26: Biểu đồ hoạt động Cập nhật sách đặt món 41 Hình 2.27: Biểu đồ hoạt động Cập nhật sách tài khoản 42 Hình 2.28: Biểu đồ hoạt động Góp ý 43 Hình 2.29: Biểu đồ lớp mức chi tiết 44 Hình 2.30: Biểu đồ thành phần 45 Hình 2.31: Biểu đồ triển khai 46 Hình 3.1: Hình ảnh minh họa quản lý qua Web Services 47 Hình 3.2: Hình ảnh minh họa cập nhật dữ liệu 47 Hình 3.3: Quá trình xử lý của Web Services .48 Hình 3.4: Mô hình trao đổi dữ liệu giữa 2 Activity 49 Hình 3.5: Cấu trúc 1 Intent 49 Hình 3.6: Mô hình xác định mảng giá trị trong JSON 50 Hình 3.7:Giao diện chính chương trình .51 Hình 3.8: Giao diện đăng nhập tài khoản 52 Hình 3.9: Giao diện từng món ăn 53 Hình 3.10: Giao diện chi tiết món ăn hoặc đồ uống 54 Hình 3.11: Giao diện đặt món 55 Hình 3.12: Giao diện góp ý 56 Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 6 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android MỞ ĐẦU Lý do chọn đề tài Ngày nay các thiết bị số cầm tay như điện thoại di động, điện thoại thông minh, máy tính bảng có rất nhiều trên thị trường Với giá thành ngày càng rẻ và các lợi ích đem lại, các thiết bị đó ngày càng được sử dụng nhiều và phổ biến Một nền tảng được sử dụng trong các thiết bị đó là hệ điều hành thông minh Android của Google Do vậy đi cùng việc phát triển và sử dụng các thiết bị phần cứng một cách hiệu quả thì việc phát triển các ứng dụng phần mềm chạy trên nền Android càng lúc càng tăng cao Các thiết bị di động ngày càng mạnh mẽ với khả năng xử lí các tác vụ mà chúng ta khó có thể tưởng tượng trước đây vài năm Những chiếc điện thoại thời trang và tiện dụng với những tính năng về phần cứng như GPS, gia tốc kế và màn hình cảm ứng là một nền tảng hấp dẫn cho các ứng dụng di động đột phá Trong khi việc phát triển nền tảng di động hiện nay chủ yếu xây dựng trên các hệ điều hành độc quyền, hạn chế các ứng dụng của bên thứ ba, sự ra đời của Android đã mang lại một giải pháp mở Không bị hạn chế, các lập trình viên Android tự do viết các ứng dụng tận dụng tối đa sự phát triển mạnh mẽ của phần cứng cho điện thoại di động Android nhanh chóng trở thành hệ điều hành thu hút nhiều lập trình viên và chiếm một thị phần lớn trong thị trường di động Việc sử dụng các thiết bị số ngoài khả năng hỗ trợ con người trong công việc, giải trí mà còn giúp con người tiết kiệm thời gian hơn vào nhiều công việc thực tiễn trong đời sống hằng ngày Hiện nay các nhà hàng thường sử dụng thực đơn bằng giấy hoặc bằng gỗ để thực khách có thể chọn món ăn, thức uống thuận tiện khi muốn gọi món Chính vì vậy mà việc cập nhật các món ăn trong thực đơn gây bất tiện và thủ công, không thực sự bắt mắt Em quyết định chọn đề tài: “Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android” với mong muốn xây dựng được phần mềm giúp ích cho việc cập nhật thực đơn nhà hàng, quán ăn được dễ dàng nhanh chóng, tiện lợi cũng như việc xem, đặt món ăn trên thực đơn của nhà hàng được hiệu quả Mục đích nghiên cứu Tìm hiểu được các công nghệ lập trình cần thiết trên nền Android để hoàn thành được ứng dụng có thể xem món, gọi món và đặt qua mạng Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 7 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android Hiểu về nguyên lý hoạt động của Android, các thành phần của hệ thống cũng như của một ứng dụng thực thi trên nền android Tìm hiểu và áp dụng được các công nghệ lập trình trên nền Android như ngôn ngữ JAVA, tương tác với các tài nguyên của hệ thống (GPS, Internet, TouchScreen) Tìm hiểu xây dựng một dịch vụ web trên nền php sử dụng hệ cơ sở dữ liệu MySQL Đối tƣợng và phạm vi nghiên cứu Đối tƣợng: Ngôn ngữ JAVA, PHP, XML Hệ cơ sở dữ liệu MySQL Công cụ Android SDK Eclipse Hệ điều hành và tài nguyên hệ thống Android Phạm vi: Nhà hàng Hoàng Ngư 2 – Quận Sơn Trà – Tp Đà Nẵng Đề tài chỉ dừng lại ở khuôn khổ xem món ăn, đặt hàng món ăn qua mạng Ứng dụng được viết trên nền Android 4.2 Ý nghĩa khoa học và thực tiễn Tạo ra một ứng dụng giúp người sử dụng xem thực đơn tại nhà hàng nhanh chóng, thuận tiện Người sử dụng có thể đặt món và góp ý cho chương trình được tốt hơn và sử dụng hàng ngày tại thiết bị android của mình Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 8 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID Android là hệ điều hành trên các thiết bị số di động như smartphone và tablet (và hiện nay là cả trên một số đầu phát HD, HD Player) phát triển bởi Google và dựa trên nền tảng Linux Trước đây, Android được phát triển bởi công ty liên hợp Android Vào năm 2005, Google đã mua lại Android nằm trong chiến lược tiến vào thị trường di động Google muốn Android trở thành nền tảng “mở” và miễn phí Do vậy hầu hết mã nguồn của Android được phát hành theo giấy phép mã nguồn mở Apache nên bất cứ ai muốn sử dụng Android có thể download toàn bộ mã nguồn Hơn nữa các nhà sản xuất phần cứng có thể thêm các thành phần mở rộng độc quyền của hãng để tạo ra các sản phẩm khác nhau Chính mô hình phát triển đơn giản này khiến Android trở nên rất hấp dẫn Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình Hiện tại có khoảng hơn 250,000 ứng dụng cho Android OS và vào khoảng hơn 375,000 ứng dụng đã được đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2 Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2.8 triệu dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C++ 1.1.1 Tổng quan cấu trúc của Android Nói một cách đơn giản thì Android bao gồm ba thành phần: 1 Một hệ điều hành mở, miễn phí cho các thiết bị di động 2 Một nền tảng mã nguồn mở cho phát triển các ứng dụng 3 Thiết bị chạy hệ điều hành Android và các ứng dụng Android Chi tiết hơn thì Android gồm các thành phần quan trọng sau: 1 Một thiết kế phần cứng cho thiết bị di động hỗ trợ bộ phần mềm 2 Một nhân hệ điều hành Linux cung cấp giao diện mức thấp với phần cứng, quản lý bộ nhớ và kiểm soát tiến trình Tất cả đều tối ưu hoá cho thiết bị di động Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 9 Xây dựng ứng dụng quản lý thực đơn nhà hàng trên Android 3 Thư viện mã nguồn mở cho phát triển ứng dụng bao gồm SQLite, Webkit, OpenGL và quản lí đa phương tiện 4 Một hệ thống thực thi và lưu trữ cho ứng dụng Android bao gồm máy ảo Dalvik và các thư viện cơ bản cung cấp chức năng đặc thù cho Android Hệ thống thực thi được thiết kế nhỏ gọn và hiệu quả khi sử dụng trên các thiết bị di động 5 Một kiến trúc ứng dụng cung cấp các dịch vụ hệ thống cho tầng ứng dụng bao gồm quản lí cửa sổ, quản lí vị trí, cung cấp nội dung và các cảm biến 6 Một kiến trúc giao diện người dùng để lưu trữ và chạy các ứng dụng 7 Một số ứng dụng được cài đặt sẵn được coi như một phần của bộ ứng dụng 8 Một bộ phát triển ứng dụng bao gồm các công cụ và tài liệu Hình 1.1: Các thành phần của hệ điều hành Android Tạ Ngọc Hải – CCLT04C – Khoa Học Máy Tính Trang 10