1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng quản lý thực đơn nhà hàng trên android

59 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Quản Lý Thực Đơn Nhà Hàng Trên Android
Tác giả Tạ Ngọc Hải
Người hướng dẫn Đoàn Thanh Sơn
Trường học Trường Cao Đẳng Công Nghệ Thông Tin Hữu Nghị Việt – Hàn
Chuyên ngành Khoa Học Máy Tính
Thể loại Đồ án
Định dạng
Số trang 59
Dung lượng 2,42 MB
File đính kèm ứng dụng quản lý thực đơn nhà hàng trên Android.rar (2 MB)

Nội dung

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.

Trang 1

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!

Trang 2

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

Trang 3

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

Trang 4

DANH MỤC CÁC TỪ VIẾT TẮT

API Application Programming Interface Giao diện lập trình ứng dụng

GPS Global Positioning System Hệ thống định vị toàn cầu

HTML HyperText Markup Language Ngôn ngữ đánh dấu siêu văn

bản

JSON JavaScript Object Notation Đị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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

 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

Trang 9

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

Trang 10

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

Trang 11

1.1.2 Sơ lƣợc các phiên bản Android

Android là một nền tảng mới và phát triển nhanh Các phiên bản thông thường được phát hành sau khoảng 6 tháng Sau đây là danh sách các phiên bản chính và sự thay đổi lớn trong mỗi phiên bản Android

 OHA giới thiệu Android (5-11-2007)

Trang 12

Hình 1.2: Logo và tên các phiên bản Android

1.1.3 Các thành phần cơ bản của ứng dụng Android

Ứng dụng Android bao gồm nhiều thành phần liên kết với nhau được giới hạn trong kiến trúc ứng dụng Kiến trúc ứng dụng mô tả chi tiết mỗi thành phần và sự tương tác giữa các thành phần này cũng như siêu dữ liệu về yêu cầu phần cứng

Các thành phần sau đây tạo nên một ứng dụng Android:

 Activity: là lớp thể hiện ứng dụng Mỗi màn hình trong ứng dụng là một mở rộng của lớp Activity Các Activity sử dụng các View tạo thành giao diện đồ họa tương tác người dùng để thể hiện thông tin và phản hồi hành động của người dùng

 Service: là thành phần chạy ẩn, cập nhật nguồn dữ liệu và thể hiện các Activity, kích hoạt các Notification Các Service thường thực hiện các xử lí thông thường như tiếp tục Activity sau khi các Activity này không hoạt động hoặc hiển thị

 Content Provider: là thành phần lưu trữ dữ liệu chia sẻ Content Provider quản

lí và chia sẻ cơ sở dữ liệu của ứng dụng Chúng được coi như là phương tiện chia sẻ dữ liệu giữa các ứng dụng

 Intent: là cấu trúc truyền thông điệp giữa các ứng dụng Chúng ta có thể sử dụng Intent để truyền một thông tin tới toàn hệ thống hay tới Activity hay Service định

Trang 13

trước để thực thi một hoạt động Hệ thống sau đó sẽ xác định đối tượng nào sẽ thực hiện các hoạt động phù hợp

 Broadcast Receiver: là nơi nhận các Intent Chúng ta có thể tự tạo một Broadcast Receiver để ứng dụng có thể nhận được các Intent phù hợp với bộ lọc đặt trước Broadcast Receiver tự động bắt đầu khi ứng dụng phản hồi với Intent nhận được

và biến ứng dụng trở thành hướng sự kiện một cách hoàn hảo

 Widget: thành phần trực quan của ứng dụng có thể thêm vào màn hình chính

Là một dạng Broadcast Receiver, Widget cho phép người dùng tạo ra các ứng dụng động, tương tác được nhúng ngay trên màn hình chính

 Notification: là thành phần thông báo cho người dùng Hộp thoại thông báo cho người dùng mà không gián đoạn các Activity hiện thời Đây là kĩ thuật thông báo cho người dùng năm trong một Service hay một Broadcast Receiver Ví dụ như khi nhận được một tin nhắn hay cuộc gọi đến có thể thông báo cho người dùng bằng nhấp nháy đèn hay bằng âm thanh…

Một ứng dụng không nhất thiết phải gồm tất cả các thành phần trên nhưng để có một giao diện với người dùng thì ít nhất ứng dụng đó phải có một Activity Mã đã được biên dịch của các thành phần của ứng dụng, tài nguyên liên quan như thư viện, hình ảnh và các dữ liệu cần thiết khác được đóng gói trong một file apk duy nhất chính

là dạng file thực thi của ứng dụng Android

Như đã trình bày ở trên, Activity là thành phần quan trọng nhất và đóng vai trò chính trong việc xây dựng ứng dụng Android Hệ điều hành Android quản lí ứng dụng dưới dạng stack : khi một Activity mới được khởi tạo, nó được xếp lên đầu stack và trở thành running activity, các Actitivy trước đó sẽ bị tạm dừng vả chỉ hoạt động trở lại khi Activity mới được giải phóng

Activity có 4 trạng thái:

 Active (running): Activity đang hiển thị trên màn hình (foreground)

 Pause: Activity vẫn hiển thị (visible) nhưng không thể tương tác VD: một activity mới xuất hiện hiển thị giao diện đè lên trên activity cũ, nhưng giao diện này vẫn nhỏ hơn giao diện activity cũ Do đó ta vẫn thấy được một phần giao diện của activity cũ nhưng không tương tác được với nó

Trang 14

 Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop

 Killed: Khi hệ thống thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên ở trên Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng

và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi trạng thái trước đó

Tuỳ từng sự kiện mà các phương thức được gọi để đảm bảo trạng thái các Activity được hoạt động đúng Chi tiết từng phương thức và sự kiện thay đổi trạng thái tương ứng:

 onCreate(): Phương thức này khởi tạo Activity Nó có thể bỏ qua trạng thái

cũ để trở lại hoạt động Phương thức tiếp theo luôn là onStart()

 onRestart(): Được gọi sau khi một Activity dừng và muốn bắt đầu lại

 onStart(): Được gọi khi ứng dụng chuyển sang visible nhưng chưa tương tác được với người dùng

onResume(): Activity có tương tác với người sử dụng và có thể nhận thông

tin đầu vào Kiểu tiến trình của ứng dụng được chuyển sang dạng hiển thị (foreground)

onPause(): Nếu ứng dụng không còn tương tác hay thiết bị không hoạt động,

phương thức này được gọi và kiểu tiến trình ứng dụng sẽ được chuyển sang dạng visible Sau khi thực hiện phương thức này, hệ thống cho phép giải phóng ứng dụng bất cứ lúc nào Các thao tác sử dụng CPU và dữ liệu đều được lưu lại Activity sẽ có thể được hoạt động trở lại hoặc dừng lại

 onStop(): Khi Activity không còn tương tác nữa thì kiểu tiến trình được chuyển sang chạy nền (background) và ứng dụng có thể bị giải phóng bất cứ lúc nào bởi hệ thống để lấy lại bộ nhớ Activity sẽ bị giải phóng hoặc khởi động lại

 onDestroy(): Phương thức cuối cùng này được hệ thống gọi trước khi giải phóng ứng dụng hay ứng dụng loại bỏ Activity Tiến trình của ứng dụng có thể chuyển sang kiểu rỗng nếu hệ thống muốn giữ lại ứng dụng để tiếp tục lại ứng dụng cho lần sau

Trang 15

Hình 1.3: Mô hình hoạt động của Activity

Trang 16

1.2 LẬP TRÌNH TRÊN HỆ ĐIỀU HÀNH ANDROID

1.2.1 Ngôn ngữ JAVA

1.2.1.1 Tổng quan về ngôn ngữ JAVA

Java 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ồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, Python, Perl, PHP, C#

Vào năm 1991, một nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử như tivi, máy giặt, lò nướng,… Mặc dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng loại CPU

Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt, vì vậy

để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém Do đó nhu cầu thực tế đòi hỏi một ngôn ngữ chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên nhiều loại CPU khác nhau, dưới các môi trường khác nhau “Oak” đã ra đời và vào năm 1995 được đổi tên thành Java

1.2.1.2 Một số tính chất ngôn ngữ JAVA

Cú pháp Java được vay mượn nhiều từ C C++ nhưng có cú pháp hướng đối tượ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ương trì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ện chuẩ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

Đơn giản: Những người thiết kế mong muốn phát triển một ngôn ngữ dễ học và

quen thuộc với đa số người lập trình Do vậy Java loại bỏ các đặc trưng phức tạp của C

và C++ như:

 Loại bỏ thao tác con trỏ, thao tác định nghĩa chồng toán tử

 Không cho phép đa kế thừa mà sử dụng các giao diện

 Không sử dụng lệnh “goto” cũng như file header (.h)

 Loại bỏ cấu trúc “struct” và “union”

Trang 17

Hướng đối tượng: Java là ngôn ngữ lập trình thuần hướng đối tượng, mọi

chương trình viết trên Java đều phải được xây dựng trên các đối tượng Nếu trong C/C++ ta có thể tạo ra các hàm (chương trình con không gắn với đối tượng nào) thì trong Java ta chỉ có thể tạo ra các phương thức (chương trình con gắn liền với một lớp

cụ thể) Trong Java không cho phép các đối tượng có tính năng đa kế thừa mà được thay thế bằng các giao diện (interface)

Độc lập phần cứng và hệ điều hành: Đối với các ngôn ngữ lập trình truyền

thống như C/C++, phương pháp biên dịch được thực hiện như sau

Hình 1.4: Cách biên dịch chương trình truyền thống

Với mỗi nền phần cứng khác nhau, có một trình biên dịch khác nhau để biên dịch

mã nguồn chương trình cho phù hợp với nền phần cứng ấy Do vậy, khi chạy trên một nền phần cứng khác bắt buộc phải biên dịch lại mã nguồn

Đối với các chương trình viết bằng Java, trình biên dịch Javac sẽ biên dịch mã nguồn thành dạng bytecode Sau đó, khi chạy chương trình trên các nền phần cứng khác nhau, máy ảo Java dùng trình thông dịch Java để chuyển mã bytecode thành dạng chạy được trên các nền phần cứng tương ứng Do vậy, khi thay đổi nền phần cứng, không phải biên dịch lại mã nguồn Java

Trang 18

Hình 1.5: Cơ chế biên dịch chương trình của Java

Mạnh mẽ:

 Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu

 Kiểu dữ liệu phải khai báo tường minh

 Java không sử dụng con trỏ và các phép toán con trỏ

 Java kiểm tra tất cả các truy nhập đến mảng, chuỗi khi thực thi để đảm bảo rằng các truy nhập đó không ra ngoài giới hạn kích thước

 Trong các môi trường lập trình truyền thống, lập trình viên phải tự mình cấp phát bộ nhớ, trước khi chương trình kết thúc thì phải tự giải phóng bộ nhớ đã cấp Vấn

đề có thể nảy sinh khi lập trình viên quên giải phóng bộ nhớ đã xin cấp trước đó Trong chương trình Java, lập trình viên không phải bận tâm đến việc cấp phát bộ nhớ Quá trình cấp phát, giải phóng được thực hiện tự động, nhờ dịch vụ thu nhặt những đối tượng không còn sử dụng nữa (garbage collection)

 Cơ chế bẫy lỗi của Java giúp đơn giản hóa quá trình xử lý lỗi và hồi phục sau lỗi

Bảo mật: Java cung cấp một môi trường quản lý thực thi chương trình với

nhiều mức để kiểm soát tính an toàn:

 Ở mức thứ nhất, dữ liệu và các phương thức được đóng gói bên trong lớp Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp

 Ở mức thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và tuân theo các nguyên tắc của Java

 Mức thứ ba được đảm bảo bởi trình thông dịch; chúng kiểm soát xem bytecode có đảm bảo các quy tắc an toàn trước khi thực thi không

Trang 19

 Mức thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống

Phân tán: Java được thiết kế để hỗ trợ các ứng dụng chạy trên mạng bằng các

lớp mạng (java.net) Hơn nữa, Java hỗ trợ nhiều nền chạy khác nhau nên chúng được

sử dụng rộng rãi như là công cụ phát triển trên Internet - nơi sử dụng nhiều nền khác nhau

Đa luồng: Chương trình Java cung cấp giải pháp đa luồng (Multithreading) để

thực thi các công việc đồng thời Chúng cũng cung cấp giải pháp đồng bộ giữa các luồng Đặc tính hỗ trợ đa luồng này cho phép xây dựng các ứng dụng trên mạng chạy hiệu quả

Linh động: Java được thiết kế như một ngôn ngữ động để đáp ứng cho những

môi trường mở Các chương trình Java chứa rất nhiều thông tin thực thi nhằm kiểm soát và truy nhập đối tượng lúc chạy Điều này cho phép khả năng liên kết mã động

1.2.2 Ngôn ngữ JSON

JSON (JavaScript Object Noattion) là một chuẩn để định dạng dữ liệu Rất dễ dàng để đọc, viết và phân tích Nó dựa trên cơ sở tập hợp của ngôn ngữ JavaScript, tiêu chuẩn ECMA-262 phiên bản 3 – tháng 12 năm 1999 Khi sử dụng JSON không cần phải có các bước phân tích phức tạp như đối với XML Mà có thể truy vấn trực tiếp giá trị theo tên (khóa) được định nghĩa trong JSON Đứng về mặt tốc độ của các ứng dụng di động đây là một ưu điểm rất lớn

JSON được xây dựng trên 2 cấu trúc:

 Là tập hợp của các cặp tên và giá trị name-value

 Là 1 tập hợp các giá trị đã được sắp xếp

Các đặc điểm của JSON:

 JSON là văn bản trơn (không có định dạng(màu sắc, cỡ chữ,…))

 JSON là "tự mô tả" (người dùng có thể hiểu được)

 JSON là phân cấp (có cấu trúc cây)

 JSON có thể được phân tích cú pháp (parse) bởi JavaScript

 Dữ liệu JSON có thể được truyền đi bằng AJAX

 Không có thẻ kết thúc

 Ngắn hơn

Trang 20

 Nhanh hơn để đọc và ghi

 Có thể được phân tích cú pháp bằng hàm dựng sẵn trong JavaScript là eval ()

Các đặc điểm của XML:

 Dễ dàng viết được các chương trình xử lý dữ liệu

 Tài liệu XML dễ đọc và có tính hợp lý cao

 XML dễ dàng được sử dụng trên Internet

Một tài liệu XML được chia thành hai phần chính:

- Phần khai báo: khai báo cho tài liệu XML

 khai báo phiên bản, bảng mã ký tự sử dụng trong tài liệu

 định nghĩa kiểu cho tài liệu

- Phần thân: chứa nội dung dữ liệu

Trang 21

 gồm một hay nhiều phần tử,

 mỗi phần tử được chứa trong một cặp thẻ

 phần tử đầu tiên là phần tử gốc (root element)

1.2.4 Ngôn ngữ PHP

Tóm tắt sơ lược về PHP:

 PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1995 Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn

 Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997

 PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm

 PHP 4.0 đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới

 PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP

 Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử đã có thể được download tại địa chỉ http://snaps.php.net Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại

Lý do chọn ngôn ngữ PHP:

 Viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần giao diện ứng dụng HTTP

 Rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML

 Tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn

Trang 22

 Dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác

1.3 MÁY ẢO DALVIK VÀ ANDROID SDK

1.3.1 Máy ảo Dalvik

Các ứng dụng Android và các thành phần cơ bản hầu hết được viết bằng Java Thay vì sử dụng máy ảo Java, Android sử dụng máy ảo riêng Máy ảo của Android được thiết kế tối ưu cho các hệ thống nhỏ, không tương thích với máy ảo Java của Java

ME Những hệ thống nhỏ này có dung lượng RAM nhỏ, CPU chậm và hầu hết không

có chỗ để tráo đổi dữ liệu bù đắp cho dung lượng bộ nhớ nhỏ

Đây là điểm khác biệt giữa Android với các hệ điều hành cho di động khác như Symbian, iOS của Apple, webOS của Palm Ngôn ngữ lập trình được sử dụng chính là

C, C++ và objective C, trong khi với webOS sử dụng chủ yếu ngôn ngữ web như Javascript hay HTML

Trình biên dịch byte code là máy ảo Dalvik Thay vì sử dụng dạng byte code thông thường, Dalvik có định dạng riêng để phù hợp với yêu cầu đối với thiết bị cho Android Mã của Android nhỏ hơn so với mã của Java và file dex được tạo ra cũng nhỏ

1.3.2 Android SDK

Android SDK là bộ công cụ phát triển phần mềm cho phép lập trình viên tạo ra các ứng dụng cho các thiết bị sử dụng nền tảng Android Android SDK bao gồm nền tảng Android, các công cụ, chương trình mẫu và các tài liệu hỗ trợ Nó cũng là thành phần bổ sung trong bộ phát triển Java và có thể tích hợp vào Eclipse

Android chứa các gói hỗ trợ các chức năng tính toán cơ bản như quản lí xâu, quản lí vào ra, tính toán từ các gói cơ bản trong Java:

 Java.lang – lớp ngôn ngữ cơ bản của java

 Java.io – quản lí vào ra

 Java.net – quản lí kết nối mạng

 Java.text – tiện ích xử lí văn bản

 Java.math – hỗ trợ tính toán

 Java.sercurity – quản lí các thành phần bảo mật

 Java.xml – các lớp về XML

Trang 23

 org.apache – các lớp liên quan HTTP

Ngoài ra Android có các lớp riêng như:

 android.app – truy cập mô hình ứng dụng Android

 android bluetooth – chức năng bluetooth của Android

 android.content - quản lí dữ liệu trong Android

 android.net – chứa các lớp Uri dùng để truy cập dữ liệu

 android.graphics – các thành phần đồ hoạ

 android location – các dịch vụ liên quan đến vị trí (ví dụ như GPS)

 android.opengl – các lớp OpenGL

 android.view – chứa các thành phần giao diện

 android.webkit – chức năng của trình duyệt web

 android.widget – các thành phần giao diện khác

Ở đây chúng ta xem xét lập trình Android với Eclipse vì Eclipse cung cấp phong phú các thành phần hỗ trợ biên soạn java và môi trường debug mà còn có thể quản lí

và điều khiển các yếu tố khác của ứng dụng Android trực tiếp từ Eclipse IDE

Hình 1.6: Môi trường phát triển ứng dụng Android trong Eclipse

1.3.3 Android Emulator

Android SDK cung cấp một bộ giả lập thiết bị di động ảo Máy ảo này cho phép chúng ta phát triển và kiểm tra các ứng dụng mà không cần một thiết bị Android thật Máy ảo Android có đầy đủ các thành phần từ phần cứng đến phần mềm giống như một thiết bị thật ngoại trừ nó không thể thực hiện được một cuộc gọi Máy ảo Android cho

Trang 24

phép sử dụng chuột để định hướng hay bàn phím để tạo các sự kiện Người dùng có thể cài đặt để kiểm thử phần mềm trên máy ảo với từng phiên bản khác nhau của Android Khi ứng dụng được cài đặt nó có thể sử dụng các ứng dụng đã được cung cấp trong Android như nghe nhạc, xem video hay vào mạng Máy ảo cũng có khả năng debug, truy cập vào đầu ra của nhân, giả lập các ngắt như khi nhân cuộc gọi hay tin nhắn thậm chí là các ảnh hưởng độ trễ của mạng và ngắt trên kênh truyền dữ liệu

Hình 1.7: Android Emulator

Trang 25

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

2.1 MÔ TẢ VỀ HỆ THỐNG

Hệ thống được xây dựng theo mô hình trao đổi dữ liệu client-server Trong đó ứng dụng phía thiết bị android là máy client tạo các truy vấn lên máy chủ là máy chủ web của ứng dụng để lấy dữ liệu phù hợp

2.1.1.Yêu cầu chức năng

Các chức năng của hệ thống bao gồm:

 Xem món ăn, đồ uống cùng giá kèm theo

 Thêm món, thêm đồ uống

 Xóa món ăn, đồ uống

2.1.2 Yêu cầu phi chức năng

 Chương trình có thể đảm bảo làm việc 24/7

 Chương trình có thể vận hành tốt khi cấu hình máy thấp

 Giao diện đơn giản không gây khó khăn, bỡ ngỡ với người mới sử dụng

 Phần mềm cài đặt chạy mượt và ổn định trên thiết bị thật

Trang 26

o Tác nhân: Người sử dụng, người quản trị

o Mô tả: Bắt đầu phiên làm việc người sử dụng sẽ mở ứng dụng để xem món ăn,

đồ uống, giới thiệu nhà hàng Người quản trị mở phần quản trị để thêm, xóa cơ sở dữ liệu

 Trường hợp sử dụng: Đóng hệ thống

o Tác nhân: Người sử dụng, người quản trị

o Mô tả: Kết thúc phiên làm việc, người sử dụng hoặc người quản trị sẽ đóng chương trình

 Trường hợp sử dụng: Cập nhật danh mục thực đơn

o Tác nhân: Người quản trị

o Mô tả: Cập nhật danh sách món ăn hoặc đồ uống vào hệ thống

 Trường hợp sử dụng: Cập nhật danh sách đặt món

o Tác nhân: Người quản trị

o Mô tả: Cập nhật danh sách các món đã đặt vào hệ thống

 Trường hợp sử dụng: Cập nhật danh sách tài khoản

o Tác nhân: Người quản trị

o Mô tả: Cập nhật tài khoản quản trị trong hệ thống

o Tác nhân: Người quản trị

o Mô tả: Xem các thông tin góp ý của người sử dụng từ thiết bị đến hệ thống

Trang 27

Biểu đồ trường hợp sử dụng (USE CASE)

Hình 2.1: Biểu đồ trường hợp sử dụng tổng quát

Hình 2.2: Biểu đồ trường hợp sử dụng cập nhật danh mục thực đơn

Gioi thieu nha hang Gop y

Nguoi su dung

Mo he thong

Dong he thong

Xem gop y

Cap nhat danh muc thuc don

Cap nhat danh sach tai khoan

Cap nhat danh sach dat mon

Nguoi quan tri

Cap nhat danh muc thuc don

Them vao thuc don

Hieu chinh thuc don

Xoa thuc don

< < extends> >

< < extends> >

< < extends> >

Cap nhat danh sach dat mon

Xoa mon da dat

< < extends> >

Hieu chinh dat mon

Trang 28

Hình 2.3: Biểu đồ trường hợp sử dụng cập nhật danh sách đặt món

Hình 2.4: Biểu đồ trường hợp sử dụng cập nhật danh sách tài khoản

2.2.2 Mô hình hóa khái niệm

Các lớp đối tƣợng: Căn cứ vào các biện pháp khác nhau xác định được các lớp

đối tượng của bài toán thực đơn nhà hàng

 ThucDon (Thực đơn): Là lớp chứa thông tin về các Món ăn và đồ uống

 DanhMuc (Danh mục): Là lớp chứa thông tin về các loại món ăn

 GopY (Góp ý): Là lớp chứa thông tin góp ý của người sử dụng

 TaiKhoan (Tài khoản): Là lớp chứa thông tin về các Tài khoản và mật khẩu

người quản trị

Cap nhat danh sach tai khoan

Them tai khoan

Xoa tai khoan Hieu chinh tai khoan

< < extends> >

< < extends> >

< < extends> >

Trang 29

Biểu đồ lớp:

a Các lớp biên

Hình 2.5: Các lớp biên

FrmXemGopY FrmCapNhatDanhMucThucDon

FrmCapNhatDanhSachDatMon FrmCapNhatDanhMucTaiKhoan

FrmGopY FrmMoHeThong FrmDongHeThong

FrmGioiThieuNhaHang

Ngày đăng: 07/03/2024, 22:09

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w