Tải bản đầy đủ (.pdf) (100 trang)

Luận văn tốt nghiệp Kỹ sư Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.53 MB, 100 trang )

Header Page 1 of 133.

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Fax. (84-511) 842 771
Website: itf.ud.edu.vn, E-mail:

LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115

ĐỀ TÀI :
XÂY DỰNG HỆ THỐNG TRỢ GIÚP ẨM THỰC
TRÊN ĐIỆN THOẠI DI ĐỘNG
Mã số : 09T3 - 121
Ngày bảo vệ : 18-20/06/2014

SINH VIÊN : NGUYỄN THỦY LỘC
LỚP :
09T3
CBHD :
ThS. VÕ ĐỨC HOÀNG

ĐÀ NẴNG, 06/2014

Footer Page 1 of 133.



Header Page 2 of 133.

LỜI CẢM ƠN
Em xin chân thành cám ơn thầy ThS. Võ Đức Hoàng đã tận tình hướng
dẫn và giúp đỡ em trong suốt quá trình thực hiện đồ án tốt nghiệp này. Em
cũng xin gởi lời cám ơn chân thành đến toàn thể quý thầy cô trường Đại học
Bách khoa Đà Nẵng, đặc biệt là các thầy cô trong khoa Công nghệ Thông
Tin trường Đại Học Bách Khoa – Đại Học Đà Nẵng đã tận tình giảng dạy,
truyền đạt những kiến thức, kinh nghiệm quý báu trong suốt quá trình học
tập vừa qua.
Trong suốt quá trình làm đồ án tốt nghiệp chắc chắn không tránh khỏi
những thiếu sót, em rất mong sự giúp đỡ và góp ý của quý thầy cô để em
hoàn thiện hơn đề tài của mình.
Một lần nữa, em xin chân thành cám ơn.
Đà Nẵng, ngày 30 tháng 05 năm 2014
Sinh viên,
Nguyễn Thủy Lộc – 09T3

Trang i

Footer Page 2 of 133.


Header Page 3 of 133.

LỜI CAM ĐOAN
Tôi xin cam đoan :
-

Những nội dung trong luận văn này là do tôi thực hiện dưới sự

hướng dẫn trực tiếp của thầy ThS. Võ Đức Hoàng.

-

Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên
tác giả, tên công trình, thời gian, địa điểm công bố.

-

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi
xin chịu hoàn toàn trách nhiệm.

Sinh viên,
Nguyễn Thủy Lộc – 09T3

Trang ii

Footer Page 3 of 133.


Header Page 4 of 133.

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………

…………………………………………………………………………………………………
………………………………………………………………………………………………….
………………………………………………………………………………………………….
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………
………………….………………………………………………………………………………

Trang iii

Footer Page 4 of 133.


Header Page 5 of 133.


NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………

………………………………………………………………………………………………
Trang iv

Footer Page 5 of 133.


Header Page 6 of 133.

MỤC LỤC
MỞ ĐẦU .......................................................................................................... 1
1.1 GIỚI THIỆU ..................................................................................................1
1.1.1 Bối cảnh đề tài ........................................................................................1
1.1.2 Mục đích .................................................................................................1
1.1.3 Ý nghĩa ....................................................................................................2
1.2 PHẠM VI ĐỀ TÀI .........................................................................................2
1.3 TRIỂN KHAI ĐỀ TÀI ...................................................................................2
1.3.1 Các bước thực hiện .................................................................................2
1.3.2 Mục tiêu cần đạt được.............................................................................3
1.4 KẾT QUẢ DỰ KIẾN .....................................................................................3

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT ............................................................ 4
1.1 GIỚI THIỆU CÁC NỀN TẢNG DI ĐỘNG ..................................................4
1.1.1 Ios............................................................................................................4
1.1.2 Android ...................................................................................................5
1.1.3 Windowphone .........................................................................................5
1.1.4 BlackBerry ..............................................................................................6
1.2 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID ..................................................6
1.2.1 Giới thiệu ................................................................................................6
1.2.2 Lịch sử phát triển ....................................................................................7
1.2.3 Kiến trúc của hệ điều hành Android .......................................................8

1.3 LẬP TRÌNH ỨNG DỤNG TRONG ANDROID.........................................10
1.3.1 Công cụ hỗ trợ ......................................................................................10
1.3.2 Các thành phần chính trong android project .........................................10
1.3.2.1
1.3.2.2

1.3.3

Các thành phần chính trong android ..................................................... 10
AndroidManifest ..................................................................................... 10

Activity .................................................................................................11
Các phương thức trong chu kỳ sống của một activity ............................ 12

1.3.3.1

1.3.4

Intent .....................................................................................................13
Các thuộc tính của một đối tượng intent ................................................ 14
Sử dụng Intent......................................................................................... 14

1.3.4.1
1.3.4.2

1.3.5
1.3.6
1.3.7
1.3.7.1
1.3.7.2


Adapter trong andoid ............................................................................15
Lưu trữ dữ liệu trong android ...............................................................15
Giao diện trong android ........................................................................15
View ........................................................................................................ 15
ViewGroup .............................................................................................. 16

1.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQLITE.................................................19
1.4.1 Giới thiệu ..............................................................................................19
1.4.2 Đặc điểm ...............................................................................................19
1.4.3 Phiên bản...............................................................................................20
1.5 WEB SERVICE ...............................................................................................20
1.5.1 Giới thiệu ..............................................................................................20
Trang v

Footer Page 6 of 133.


Header Page 7 of 133.

Đặc điểm webservice ............................................................................20

1.5.2

Ưu điểm .................................................................................................. 21
Nhược điểm............................................................................................. 22

1.5.2.1
1.5.2.2


1.6 RESTFUL WEB SERVICE .........................................................................22
1.6.1 Khái niệm ..............................................................................................22
1.6.1.1
1.6.1.2
1.6.1.3
1.6.1.4
1.6.1.5

1.6.2

REST ....................................................................................................... 22
Kiến trúc ................................................................................................. 22
RESTFul Web Service............................................................................. 23
Cơ chế hoạt động .................................................................................... 23
Một số thành phần của RESTful Web Service ........................................ 24

Json và Gson .........................................................................................25
Sơ lược về json........................................................................................ 25
So sánh với XML..................................................................................... 25
Sơ lược về Gson ...................................................................................... 27

1.6.2.1
1.6.2.2
1.6.2.3

1.7 JSP VÀ SERVLET ......................................................................................28
1.7.1 JSP ........................................................................................................28
1.7.2 SERVLET .............................................................................................28
1.7.3 MÔ HÌNH MVC TRONG JAVA WEB JSP SERVLET .....................29
Khái niệm cơ bản về mô hình MVC ........................................................ 29

Mô hình MVC trong ứng dụng web với JSP Servlet ............................... 29

1.7.3.1
1.7.3.2

CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG....................... 30
2.1 PHÂN TÍCH YÊU CẦU ..............................................................................30
2.1.1 Mô tả bài toán .......................................................................................30
2.1.2 Phân tích hiện trạng ẩm thực Việt Nam................................................31
Giới thiệu sơ lược về ẩm thực Việt Nam ................................................ 31
Đặc điểm ................................................................................................. 31

2.1.2.1
2.1.2.2

2.1.3

Phân tích yêu cầu bài toán ....................................................................32
Yêu cầu chức năng.................................................................................. 32
Yêu cầu phi chức năng ........................................................................... 33

2.1.3.1
2.1.3.2

2.1.4 Phân tích tính khả thi ............................................................................33
2.1.5 Công nghệ .............................................................................................33
2.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ..................................................34
2.2.1 Phân tích và thiết kế ứng dụng di động Android .................................34
2.2.1.1
2.2.1.2

2.2.1.3
2.2.1.4
2.2.1.5

2.2.2

Usecase ................................................................................................... 34
Biểu đồ hoạt động ................................................................................... 42
Biểu đồ tuần tự ....................................................................................... 49
Biểu đồ lớp.............................................................................................. 54
Thiết kế cơ sở dữ liệu.............................................................................. 54

2.2.2.1
2.2.2.2
2.2.2.3

Phân tích và thiết kế Web Server ..........................................................58
Web admin .............................................................................................. 58
Sơ đồ lớp ................................................................................................. 65
Thiết kế cơ sở dữ liệu.............................................................................. 65

CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ ....................... 67
3.1 KẾT QUẢ ....................................................................................................67
3.1.1 Kết quả triển khai Web Service ............................................................67
Trang vi

Footer Page 7 of 133.


Header Page 8 of 133.


3.1.2 Kết quả triển khai Web Admin .............................................................67
3.1.3 Kết quả triển khai ứng dụng trên di động .............................................78
3.2 ĐÁNH GIÁ ..................................................................................................85
3.2.1 Bảng đánh giá kết quả thực hiện ...........................................................85
Ứng dụng trên điện thoại di động .......................................................... 85
Hệ thống Server ...................................................................................... 85

3.2.1.1
3.2.1.2

Những điều đạt được.............................................................................85

3.2.2
3.2.2.1
3.2.2.2

Hệ thống Web server .............................................................................. 86
Ứng dụng trên điện thoại di động .......................................................... 86

3.2.3 Những điều chưa đạt được ....................................................................86
3.3 HƯỚNG PHÁT TRIỂN ...............................................................................86

TÀI LIỆU THAM KHẢO ............................................................................ 87
TÓM TẮT LUẬN VĂN TỐT NGHIỆP...................................................... 88
PHỤ LỤC ......................................................................................................... 1

Trang vii

Footer Page 8 of 133.



Header Page 9 of 133.

DANH SÁCH HÌNH VẼ
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

1: Giới thiệu mobile ..................................................................................................... 4
2: Giới thiệu android .................................................................................................... 6
3: Kiến trúc hệ điều hành android ................................................................................ 8
4: Sơ đồ hoạt động activity trong android ................................................................. 11
5: Sơ đồ Intent ............................................................................................................ 13
6: Sơ đồ giao diện trong android................................................................................ 16
7: Framelayout android .............................................................................................. 17
8: Relativelayout android ........................................................................................... 18
9; Tablelayout android ............................................................................................... 18

10: Quản trị SQLite.................................................................................................... 19
11: Kiến trúc REST.................................................................................................... 22
12: Cơ chế hoạt động của REST ................................................................................ 23
13: Use case của ứng dụng android ........................................................................... 34
14: Biểu đồ hoạt động xem văn hóa ẩm thực............................................................. 42
15: Biểu đồ hoạt động cập nhật dữ liệu ..................................................................... 42
16: Biểu đồ hoạt động tìm kiếm món ăn .................................................................... 43
17: Biểu đồ hoạt động gửip hản hồi cho từng món ăn ............................................... 43
18: Biểu đồ hoạt động tạo ghi chú cho từng món ăn ................................................. 44
19: Biểu đồ hoạt động chỉnh sửa ghi chú cho từng món ăn ....................................... 44
20: Biểu đồ hoạt động chia sẻ món ăn trên facebook ................................................ 45
21: Biểu đồ hoạt động xem danh sách món ăn .......................................................... 45
22: Biểu đồ hoạt động thêm món ăn yêu thích .......................................................... 46
23: Biểu đồ hoạt động xóa món ăn yêu thích ............................................................ 46
24: Biểu đồ hoạt động chỉnh sửa hẹn giờ .................................................................. 47
25: Biểu đồ hoạt động đặt giờ .................................................................................... 47
26: Biểu đồ hoạt động xóa hẹn giờ ............................................................................ 48
27: Biểu đồ hoạt động gửi phản hồi cho ứng dụng .................................................... 48
28: Biểu đồ tuần tự xem văn hóa ẩm thực ................................................................. 49
29: Biểu đồ tuần tự cập nhật dữ liệu .......................................................................... 49
30: Biểu đồ tuần tự tìm kiếm món ăn ........................................................................ 49
31: Biểu đồ tuần tự xem danh sách món ăn ............................................................... 50
32: Biểu đồ tuần tự gửi phản hồi cho từng món ăn.................................................... 50
33: Biểu đồ tuần tự tạo ghi chú cho từng món ăn ...................................................... 50
34: Biểu đồ tuần tự chỉnh sửa chi chú cho từng món ăn............................................ 51
35: Biểu đồ tuần tự chia sẻ món ăn trên facebook ..................................................... 51
36: Biểu đồ tuần tự thêm món ăn yêu thích ............................................................... 51
37: Biểu đồ tuần tự xem món ăn yêu thích ................................................................ 52
38: Biểu đồ tuần tự chỉnh sửa hẹn giờ ....................................................................... 52
39: Biểu đồ tuần tự thêm hẹn giờ............................................................................... 52

40: Biểu đồ tuần tự xóa hẹn giờ ................................................................................. 53
41: Biểu đồ tuần tự gửi phản hồi cho ứng dụng ........................................................ 53
42: Biểu đồ lớp........................................................................................................... 54
43: Biểu đồ lớp chi tiết............................................................................................... 54
44: Quan hệ giữa các bảng trong cơ sở dữ liệu.......................................................... 55
45: Sơ đồ usecase web admin .................................................................................... 58
Trang viii

Footer Page 9 of 133.


Header Page 10 of 133.
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

46: Biểu đồ hoạt động đăng nhập .............................................................................. 61

47: Biểu đồ hoạt động xem dữ liệu ........................................................................... 61
48: Biểu đồ hoạt động thêm dữ liệu .......................................................................... 62
49: Biểu đồ hoạt động sửa dữ liệu ............................................................................ 62
50: Biểu đồ hoạt động xóa dữ liệu ............................................................................. 63
51: Biểu đồ tuần tự đăng nhập ................................................................................... 63
52: Biểu đồ tuần tự xem dữ liệu................................................................................. 63
53: Biểu đồ tuần tự thêm dữ liệu ............................................................................... 64
54: Biểu đồ tuần tự xóa dữ liệu .................................................................................. 64
55: Biểu đồ tuần tự sửa dữ liệu ................................................................................. 64
56: Sơ đồ lớp web admin ........................................................................................... 65
57: Sơ đồ lớp chi tiết web admin ............................................................................... 65
58: Dữ liệu Json trả về từ Web Service ..................................................................... 67
59: Đăng nhập ............................................................................................................ 67
60: Quản lý món ăn .................................................................................................... 68
61: Thêm món ăn ....................................................................................................... 68
62: Xem, sửa món ăn ................................................................................................. 69
63: Xóa món ăn .......................................................................................................... 69
64: Quản lý loại món ăn ............................................................................................. 70
65: Thêm mới loại món ăn ......................................................................................... 70
66: Xem và sửa loại món ăn ...................................................................................... 71
67: Xóa loại món ăn ................................................................................................... 71
68: Quản lý vùng........................................................................................................ 72
69: Thêm mới vùng .................................................................................................... 72
70: Xem và sửa vùng ................................................................................................. 73
71: Quản lý xuất xứ.................................................................................................... 73
72: Thêm mới xuất xứ................................................................................................ 74
73: Xem và sửa xuất xứ ............................................................................................. 74
74: Xóa xuất xứ.......................................................................................................... 75
75: Quản lý nguyên liệu ............................................................................................. 75
76: Thêm mới nguyên liệu ......................................................................................... 76

77: Xem và sửa nguyên liệu....................................................................................... 76
78: Xóa nguyên liệu ................................................................................................... 77
79: Quản lý bình luận................................................................................................. 77
80: Màn hình main ..................................................................................................... 78
81: Màn hình văn hóa ẩm thực .................................................................................. 78
82: Màn hình dialog chọn vùng ................................................................................. 79
83: Màn hình dialog chọn xuất xứ ............................................................................. 79
84: Màn hình danh sách món ăn ................................................................................ 80
85: Màn hình chi tiết món ăn ..................................................................................... 80
86: Màn hình chi tiết công thức món ăn .................................................................... 81
87: Màn hình ghi chú món ăn .................................................................................... 81
88: Màn hình bình luận món ăn ................................................................................. 82
89: Màn hình hẹn giờ nấu ăn ..................................................................................... 82
90: Màn hình danh sách yêu thích ............................................................................. 83
91: Màn hình danh sách hẹn giờ ................................................................................ 83
Trang ix

Footer Page 10 of 133.


Header Page 11 of 133.

DANH SÁCH BẢNG BIỂU
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng

Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng

Bảng

1: Các thuộc tính của đối tượng intent ...................................................................... 14
2: Các hàm thực thi Activity ..................................................................................... 14
3: Các method của HTTP được hỗ trợ....................................................................... 24
4: Đối tượng Json ...................................................................................................... 26
5: Mảng Json ............................................................................................................. 26
6: Ví dụ sử dụng Gson ............................................................................................... 27
7: Mô tả usecase xem văn hóa ẩm thực ..................................................................... 34
8: Mô tả usecase cập nhật dữ liệu .............................................................................. 35
9: Mô tả usecase tìm kiếm món ăn ............................................................................ 35
10: Mô tả usecase xem chi tiết món ăn ..................................................................... 36
11: Mô tả usecase gửi phản hồi cho từng món ăn ..................................................... 36
12: Mô tả usecase tạo ghi chú cho món ăn ................................................................ 37
13: Mô tả usecase chỉnh sửa ghi chú món ăn ............................................................ 37
14: Mô tả usecase chia sẻ món ăn trên facebook ...................................................... 38
15: Mô tả usecase xem danh sách món ăn ................................................................. 38
16: Mô tả usecase thêm món ăn yêu thích................................................................. 39
17: Mô tả usecase xóa món ăn yêu thích ................................................................... 39
18: Mô tả usecase chỉnh sửa hẹn giờ ......................................................................... 40
19: Mô tả usecase xóa hẹn giờ .................................................................................. 40
20: Mô tả usecase đặt giờ .......................................................................................... 41
21: Mô tả usecase gửi phản hồi cho ứng dụng .......................................................... 41
22: Bảng định mức .................................................................................................... 55
23: Loại món ăn ......................................................................................................... 56
24: Bảng Vùng........................................................................................................... 56
25: Xuất xứ ................................................................................................................ 56
26: Nguyên liệu ......................................................................................................... 56
27: Món ăn................................................................................................................. 57
28: Món ăn Nguyên liệu ............................................................................................ 57

29: Hẹn giờ ................................................................................................................ 57
30: Mô tả usecase đăng nhập ..................................................................................... 58
31: Mô tả usecase thêm dữ liệu ................................................................................. 59
32: Mô tả usecase sửa dữ liệu.................................................................................... 59
33: Mô tả usecase xóa dữ liệu ................................................................................... 60
34: Mô tả usecase xem dữ liệu .................................................................................. 60
35: user ...................................................................................................................... 66
36: RateAndBinhLuan ............................................................................................... 66
37: Bảng đánh giá kết quả thục hiện trên điện thoại di động .................................... 85
38: Bảng đánh giá kết quả thực hiện trên hệ thống server ........................................ 85

Trang x

Footer Page 11 of 133.


Header Page Xây
12 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

MỞ ĐẦU
1.1 GIỚI THIỆU
1.1.1 Bối cảnh đề tài
Trong bối cảnh xã hội ngày càng phát triển, chất lượng cuộc sống của con người
ngày càng được cải thiện, đi liền với đó là vấn để ăn uống ngày càng được nâng cao,
từ chỗ đủ cái ăn, chúng ta hướng đến là làm thế nào để có thể có món ăn ngon, bổ
dưỡng. Tất bật với cuộc sống mưu sinh, với nhịp sống nhộn nhịp của xã hội, quỹ thời
gian của chúng ta ngày càng eo hẹp đi. Thật khó để có thể dành được một lượng thời
gian lân la các quán sách tìm hiểu về các món ăn, hay lang thang Internet tìm hiểu về
các chương trình dạy nấu ăn. Từ đó nảy sinh vấn đề làm thế nào để có được một công

cụ như một cuốn sổ tay mini chỉ dẫn về nấu ăn, về nghệ thuật ẩm thực có thể mang
theo mọi lúc, tiện lợi giúp chúng ta có thể tự mình nấu những món ăn ngon cho chính
mình, cho bạn bè, người thân hay gia đình thưởng thức sau những giờ làm việc hút
thể lực và chất xám.
Đi kèm với đó, sự phát triển của khoa học công nghệ ngày càng nhanh chóng.
Điện thoại di động không còn đơn thuần là thiết bị liên lạc, mà trở thành một công cụ
giải trí đa phương tiện và một vật không thể thiếu của mọi người. Chính sự phát triển
và phổ biến mạnh mẽ của di động nên ngày càng có nhiều ứng dụng cho di động được
phát triển. Chính vì những ưu thế trên của điện thoại thông minh, ý tưởng kết hợp sổ
tay nấu ăn truyền thống và điện thoại thông minh được nghĩ đến. Một ứng dụng trên
điện thoại thông minh có chức năng như một cuốn sổ tay mini hướng dẫn về ẩm thực,
gọn nhẹ và dễ mang theo gần như mọi lúc mọi nơi giúp mọi người có thể dễ dàng chế
biến các món ăn ngon, đa dạng mà không phải mất nhiều công sức, thì giờ tìm hiểu.
Vì những lý do đó tôi quyết định đưa ra ý tưởng làm một cuốn sổ tay mini giới
thiệu về ẩm thực Việt Nam trên thiết bị di động để nghiên cứu và triển khai.
1.1.2 Mục đích
Tạo ra một ứng dụng giống như một cuốn sổ tay mini về ẩm thực trên điện thoại
di động, một ứng dụng tiện lợi, nhỏ gọn có thể bỏ túi mang theo, có thể đem ra dùng
trong nhiều trường hợp. Giúp bạn có thể chế biến được những món ăn ngon khi cần
thiết hoặc nâng cao trình độ nấu ăn, hiểu biết về văn hóa ẩm thực mà không cần phải
bỏ ra nhiều công sức tìm kiếm bên đống sách vở dạy nấu ăn hay những chương trình
dạy nấu ăn vốn tiêu tốn rất nhiều thời gian quý báu.
Ứng dụng sẽ cung cấp cho người dùng các thông tin về văn hóa ẩm thực các vùng
miền, cách chế biến các món ăn hay là nguồn gốc, lịch sử ra đời của các món ăn cùng
nhiều tính năng hữu ích khác.

Trang 1

Footer Page 12 of 133.



Header Page Xây
13 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

Xây dựng một website quản lý dữ liệu về thông tin ẩm thực và một webservice
cung cấp thông tin về ẩm thực cho ứng dụng di động.
1.1.3 Ý nghĩa
- Cung cấp một ứng dụng hữu ích hỗ trợ người dùng về vấn đề ẩm thực, tiết
kiệm thời gian, công sức và chi phí mà vẫn có thể dễ dàng chế biến được những
món ăn ngon như ý.
- Tạo được một website quản lý thông tin dữ liệu ẩm thực và một webservice
cung cấp dữ liệu về ẩm thực.
- Thông qua quá trình xây dựng ứng dụng, em có thể tổng hợp lại những kiến
thức mà mình đã được tích lũy trong thời gian học tập tại trường.
- Tích lũy thêm được nhiều kinh nghiệm thực tế, học thêm được nhiều công
nghệ mới.
1.2 PHẠM VI ĐỀ TÀI
Ứng dụng di động được xây dựng dựa trên nền tảng hệ điều hành di động Android.
Ứng dụng có thể cập nhật sữ liệu từ webservice và lưu về bộ nhớ cục bộ trên thiết bị.
Kho dữ liệu ẩm thực được xây dựng và phát triển trên mạng Internet, cung cấp
web service và các phương thức để sử dụng và khai thác dữ liệu từ kho dữ liệu ẩm
thực.
1.3 TRIỂN KHAI ĐỀ TÀI
1.3.1 Các bước thực hiện
- Đọc hiểu đề tài, tìm kiếm các tài liệu liên quan.
- Phân tích yêu cầu.
- Phân tích và thiết kế hệ thống.
- Xây dựng cơ sở dữ liệu
- Xây dựng Web admin quản lý cơ sỡ dữ liệu

- Xây dựng Web service cung cấp dữ liệu
- Xây dựng ứng dụng trên thiết bị di động Android
- Triển khai hoạt động cho kho dữ liệu và ứng dụng, đồng thời tiến hành kiểm
thử đảm bảo chất lượng sản phẩm.
- Viết báo cáo tổng kết đề tài và đề ra hướng phát triển.

Trang 2

Footer Page 13 of 133.


Header Page Xây
14 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

1.3.2 Mục tiêu cần đạt được
- Xây dựng thành công Web admin và Web service cho kho dữ liệu ẩm thực.
- Xây dựng thành công ứng dụng trên điện thoại di động Android.
- Triển khai ứng dụng, phối hợp trao đổi dữ liệu giữa ứng dụng di động và ứng
dụng web thành công.
1.4 KẾT QUẢ DỰ KIẾN
Với mục đích đề ra thì kết quả cần đạt được trong đề tài luận văn tốt nghiệp này:
- Tìm hiểu nền tảng di động Android.
- Tìm hiểu Web service.
- Phân tích yêu cầu người dùng và thiết kế hệ thống.
- Xây dựng và triển khai hệ thống trong thực tế.

Trang 3

Footer Page 14 of 133.



Header Page Xây
15 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

CHƯƠNG 1.

CƠ SỞ LÝ THUYẾT

1.1 GIỚI THIỆU CÁC NỀN TẢNG DI ĐỘNG
Ngày này, thị trường di động đang phát
triển mạnh mẽ chưa từng thấy với vô vàn
các nhãn hiệu, kiểu dáng, tính năng...Đã
biến chiếc điện thoại thành một thiết bị giải
trí đa phương tiện không thể thiếu. Với lợi
thế nhỏ gọn, được mọi người sử dụng đem
theo mọi lúc mọi nơi, nhưng cũng vì nhỏ
gọn như vậy cũng là một bất lợi về xử lý
và tốc độ. Để đảm bảo một chiếc điện thoại
thông minh hoạt động tốt thì nó cần có một
hệ điều hành quản lý thiết bị.
Đi kèm với sự phát triển phần cứng trên
thiết bị động thì cuộc chiến của các nhà
phát triển các hệ điều hành trên điện thoại
di động cũng diễn ra hết sức khốc liệt. Hiện nay, các nền tảng di động lớn được biết
đến như sau
Hình 1: Giới thiệu mobile

1.1.1 Ios

Nền tảng di động iOS với điện thoại di động thông minh iPhone, với thiết kế đẹp,
thời trang, cảm ứng mượt mà, màn hình đẹp và sắc nét cùng với tài năng của "thánh"
Steve Jobs đã khiến cho iPhone trở thành hiện tượng trên mọi thị trường, đặc biệt là
ở Mỹ. Doanh số bán ra của iPhone tăng dần qua các năm, và dần dần thống lĩnh thị
trường của nhiều nước. iPhone dù mỗi năm chỉ ra một phiên bản mới nhưng sức nóng
đủ lan tỏa khắp làng di động, do đó, iOS vẫn chưa bao giờ "già".
iOS là hệ điều hành "đóng" hoạt động trên iPhone, iPad, iPod. iOS đã quyết định
rất nhiều đối với sự thành công của Apple, với giao diện bóng bẩy, đẹp mắt, và dễ sử
dụng. Tất cả chỉ là chạm và vuốt để thực thi. Cùng với chính sách hợp lý để thu hút
các lập trình viên viết ứng dụng, kho ứng dụng Appstore ngày càng lớn khiến cho
người dùng càng thêm thích thú, mọi nhu cầu của từng người đều có thể được đáp
ứng. Cũng như việc Apple cũng tung ra cập nhật, vá các lỗi liên tục khi phát hiện,
khiến cho iOS ngày càng trở nên "thông minh" hơn, an toàn hơn.
Nhưng nếu gọi iOS là thống trị năm 2012 thì điều đó cũng là chưa thể. Vì iOS chỉ
được cài giới hạn trên thiết bị của Apple gồm những thiết bị như iPhone, iPad, iPod...
Thị phần của thiết bị Apple trên thế giới nói chung là không lớn, số liệu các bạn thấy
trên các báo đa số chỉ thống kê tại Mỹ, nhưng đã gọi là thống trị thì phải là thống trị
trên thị trường di động toàn thế giới.

Trang 4

Footer Page 15 of 133.


Header Page Xây
16 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

1.1.2 Android
Mặc dù sinh sau đẻ muộn, nhưng Android đang có những bước tiến thần tốc, trong

thời gian ngắn đã đạt được nhiều điều khiến mọi hệ điều hành di động mơ ước: khoảng
700.000 điện thoại Android được kích hoạt mỗi ngày.
Khi mà iOS ngày càng bành trướng mà Symbian lại không đủ sức để cạnh tranh.
Các lập trình viên, các nhà sản xuất điện thoại chú ý đến Android. Hệ điều hành di
động mở được Google phát triển dựa trên nền tảng Linux.
Android ngày càng lớn mạnh về số lượng và chất lượng bởi sự linh hoạt từ nền
tảng Google, phù hợp với cả smartphone tầm thấp lẫn giá cao. Hàng loạt các nhà sản
xuất điện thoại di động sử dụng Android làm hệ điều hành chính cho các sản phẩm
của mình. Như HTC, Samsung, LG, Motorola, Sony Ericsson... Từ điện thoại, cho
đến máy tính bảng của các hãng này đều dùng hệ điều hành Android. Các nhà lập
trình viết ứng dụng ngày càng nhiều trên Android Market. Kho ứng dụng đang cạnh
tranh trực tiếp với AppStore của Apple. Chính vì điều này mà đã khiến Android ngày
càng bành trướng trên thị trường khắp các châu lục, và dần dần Android sẽ là hệ điều
hành thống trị.
Nhưng các bạn có thể thấy, dường như Android đang ở trên đỉnh cao của mình.
Chính vì có quá nhiều thiết bị, mỗi thiết bị có cấu hình riêng, nhà sản xuất tùy biến
riêng và việc có quá nhiều ứng dụng, nhưng lại không theo một chuẩn cụ thể nào.
Khiến Android ngày càng bị phân mảnh và rời rạc.
Android được cập nhật quá thường xuyên, dẫn đến tình trạng trên thị trường có
nhiều phiên bản cùng tồn tại, được phát hành song song với nhau. Google đang dần
muốn kiểm soát và hạn chế sự phân mảnh, nhưng đồng thời cũng làm mất dần tính
"mở" vốn là triết lý cơ bản của Android.
1.1.3 Windowphone
Windows Phone là hệ điều hành của Microsoft dành cho smartphone kế tục nền
tảng Windows Mobile, mặc dù chúng không tương thích với nhau. Khác với
Windows Mobile, Windows Phone tập trung vào sự phát triển của Marketplace - nơi
các nhà phát triển có thể cung cấp sản phẩm (miễn phí hoặc có phí) tới người dùng.
Windows Phone được bán vào tháng 10 năm 2010 và đầu năm 2011 tại Châu Á.
Phiên bản mới nhất hiện tại là Windows Phone 8.1 (Tên mã Blue) tiếp nối
Windows Phone 8 (Apollo), hiện vẫn ở phiên bản thử nghiệm cho nhà phát triển

(Preview for Developers). Với Windows Phone, Microsoft đã phát triển giao diện
người dùng mới mang tên Modern (trước đây tên là Metro) - tích hợp khả năng liên
kết với các phần cứng và phần mềm của hãng thứ ba một cách dễ dàng.

Trang 5

Footer Page 16 of 133.


Header Page Xây
17 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

1.1.4 BlackBerry
Là dòng máy Smartphone cao cấp và nổi tiếng trên thế giới do hãng Research In
Motion cung cấp. Ngoài những tính năng thông thường, điểm tạo nên sự khác biệt
của máy BlackBerry là kiểu thiết kế rất đặc trưng; pin tốt và hơn cả là dịch vụ Push
Mail nổi tiếng và thương hiệu BlackBerry được xây dựng rất thành công.
BlackBery OS 6 được RIM công bố tại sự kiện Wireless Enterprise Symposium
(diễn ra từ 27 đến 29/4 tại Mỹ). RIM chưa đưa ra chi tiết về hệ điều hành mới, ngoài
một đoạn video quảng cáo khá ấn tượng. Theo những thông tin đầu tiên, nhiều cải
tiến từ giao diện, màn hình Home mới, menu pop-up, khả năng chuyển dịch, trình
duyệt web mới dựa trên nền tảng WebKit tương thích HTML5. Ngoài ra, BlackBerry
OS 6 hỗ trợ khả năng điều khiển trên màn hình cảm ứng đa điểm tốt hơn.
1.2 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID
1.2.1 Giới thiệu

Hình 2: Giới thiệu android

Android là hệ điều hành trên điện thoại di động 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
(sau đó được Google mua lại vào năm 2005). Theo nghiên cứu của công ty nghiên
cứu thị trường NPD (National Purchase Diary), thiết bị di động sử dụng hệ điều hành
android bán được tại Mỹ trong quý I năm 2012 xếp vị trí đầu tiên với 51%, thứ 2 là
iOS ở vị trí với 30.7%. 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, đ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 cực kì rộng lớn. 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.
Trang 6

Footer Page 17 of 133.


Header Page Xây
18 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

Android được xây dựng để cho phép các nhà phát triển tạo ra các ứng dụng di
động hấp dẫn tận dụng tất cả chức năng một chiếc điện thoại đã cung cấp. Nó được
xây dựng để thực sự mở. Ví dụ, một ứng dụng có thể kêu gọi bất kỳ chức năng lõi
của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản hoặc bằng cách sử dụng
máy ảnh, cho phép các nhà phát triển tạo ra nhiều phong cách khác nhau.
Android được xây dựng trên hệ điều hành mở Linux. Vì thế, nền tảng Android
luôn được cộng đồng quan tâm và phát triển liên tục.
Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng dụng
của bên thứ ba. Tất cả các ứng dụng đều có thể giao tiếp được với nhau, và sử dụng

một cách tối đa nhờ vào khả năng của nhà phát triển
Android đang dần phá bỏ rào cản để xây dựng các ứng dụng mới và sáng tạo. Ví
dụ, một nhà phát triển có thể kết hợp thông tin từ các trang web với dữ liệu trên điện
thoại di động của cá nhân, hoặc chỉ ra địa chỉ hiện tại của một người nào đó khi họ
nằm trong một phạm vi cố định…
Android cung cấp một loạt các thư viện công cụ hữu ích và có thể được sử dụng
xây dựng các ứng dụng phong phú.
1.2.2 Lịch sử phát triển
- Tháng 10-2003: Android, inc được thành lập tại Palo Alto, California bởi
Andy Rubin, Rich Miners, Nick Sears và Chris White.
- Tháng 8-2005: Google mua lại Android inc.
- Tháng 11-2007: Phát hành Android beta SDK (Software Development Kit).
- Tháng 9-2008: Chiếc điện thoại chạy trên hệ điều hành Android lần đầu tiên
được giới thiệu, chiếc HTC Dream(G1) chạy Android 1.0.
- Tháng 2-2009: Phát hành bản cập nhật Android 1.1 dành riêng cho T-Mobile
G1.
- Tháng 4-2009: Phát hành bản cập nhật Android 1.5(Cupcake) dựa trên nhân
linux 2.6.27.
- Tháng 9-2009: Phát hành bộ SDK dành cho Android 1.6 (Donut) dựa trên nhân
Linux 2.6.29.
- Tháng 10-2009: Phát hành bộ SDK dành cho Android 2.0(Eclair) dựa trên
nhân Linux 2.6.29.
- Tháng 12-2009: Phát hành bộ SDK 2.0.1.
- Tháng 1-2010: Phát hành bộ SDK 2.1.
- Tháng 5-2010: Phát hành bộ SDK Android 2.2 (Froyo).
Trang 7

Footer Page 18 of 133.



Header Page Xây
19 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

- Tháng 12-2010: Phát hành bộ SDK Android 2.3 (Gingerbread).
- Tháng 2-2011: Phát hành Android 2.3.3 dựa trên nhân Linux 2.6.35.
- Tháng 2-2011: Phát hành SDK Android 3.0 dành cho tablet được phát hành
dựa trên nhân linux 2.6.36.
- Tháng 5-2011: Phát hành bộ SDK Android 3.1.
- Tháng 7-2011: Phát hành bộ SDK Android 3.2.
- Tháng 12-2011: Phát hành bộ SDK Android 4.0 (Ice Cream Sandwich) .
- Tháng 7-2012: Phát hành bộ SDK Android 4.1 (Jelly Bean).
- Tháng 12-2012: Phát hành bộ SDK Android 4.2 (Vẫn là Jelly Bean)
- Tháng 6-2013: Phát hành bộ SDK Android 4.3 (Vẫn là Jelly Bean)
- Tháng 10-2013: Phát hành bộ SDK Android 4.4 (KitKat)
1.2.3 Kiến trúc của hệ điều hành Android

Hình 3: Kiến trúc hệ điều hành android

Có 5 tầng cơ bản trong hệ điều hành Android: Application, Framework,
Android Runtime, Native Libraries, Linux Kernel. Mỗi tầng làm việc đều nhờ sự
giúp đỡ của tầng dưới.
Trang 8

Footer Page 19 of 133.


Header Page Xây
20 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động


Tầng Application: bao gồm tất cả các ứng dụng có trong thiết bị chạy Android
như: phone, contact, game, browser,… và một số ứng dụng chạy ngầm.Người dùng
có quyền gỡ bỏ hay cài đặt các ứng dụng tùy thích ở tầng này. Tất cả các ứng dụng
được viết bằng cách sử dụng ngôn ngữ lập trình Java.
Tầng Application Framework: tầng Google xây dựng cho các nhà phát triển xây
dựng ứng dụng của họ trên Android,bằng cách gọi các API có sẵn mà Google đã viết
để sử dụng các tính năng của phần cứng mà không cần hiểu cấu trúc bên dưới.
Tầng Native Libraries: Android bao gồm một bộ thư viện C/C++, được sử dụng
bởi các thành phần khác nhau của hệ thống Android. Những khả năng tiếp xúc với
các nhà phát triển thông qua các khuôn khổ ứng dụng Android. Một số các thư viện
lõi được liệt kê dưới đây:
System C library: thực hiện các hệ thống thư viện chuẩn C (LIBC – Library C),
điều chỉnh cho nhúng dựa trên Linux các thiết bị
Media Libraries: dựa trên OpenCORE PacketVideo's; sự hỗ trợ các thư viện phát
lại và ghi âm của âm thanh và phổ biến nhiều định dạng video, cũng như các tập tin
hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG
Surface Manager: quản lý quyền truy cập vào hệ thống con hiển thị và hoàn toàn
phù hợp chất 2D và 3D lớp từ nhiều ứng dụng đồ họa
LibWebCore: một trình duyệt web hiện đại, động cơ có quyền hạn cả hai trình
duyệt web của Android và một xem nhúng
SGL: các công cụ đồ họa 2D tiềm ẩn
3D libraries:một việc thực hiện dựa trên OpenGL ES 1,0 API; các thư viện, hoặc
sử dụng phần cứng tăng tốc 3D (nếu có) hoặc bao gồm, cao tối ưu rasterizer phần
mềm 3D
SQLite: một quan hệ cơ sở dữ liệu mạnh mẽ và nhẹ có sẵn cho tất cả các ứng dụng
Tầng Runtime: Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp
hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java. Tất
cả các ứng dụng Android đều chạy trong tiến trình riêng. Máy ảo Dalvik đã được viết
để cho một thiết bị có thể chạy nhiều máy ảo hiệu quả. Các VM Dalvik thực thi các

tập tin thực thi Dalvik (dex). Định dạng được tối ưu hóa cho bộ nhớ tối thiểu. VM là
dựa trên register-based, và chạy các lớp đã được biên dịch bởi một trình biên dịch
Java để chuyển đổi thành các định dạng dex. Các VM Dalvik dựa vào nhân Linux
cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp.
Tầng Linux Kernel: đây là nhân của hệ điều hành Android, mọi xử lý hệ thống
đều phải thông qua tầng này. Linux Kernel cung cấp các trình điều khiển thiết bị phần
cứng như: camera, USB, bluetooth… Kernel hoạt động như một lớp trừu tượng giữa
phần cứng và phần mềm còn lại của hệ thống.
Trang 9

Footer Page 20 of 133.


Header Page Xây
21 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

1.3 LẬP TRÌNH ỨNG DỤNG TRONG ANDROID
1.3.1 Công cụ hỗ trợ
- Bộ Android SDK của Google
- Bộ JDK 5 trở lên
- IDE: eclipse hoặc netBean…
1.3.2 Các thành phần chính trong android project
1.3.2.1 Các thành phần chính trong android
Một ứng dụng android được xây dựng từ các thành phần cơ bản sau:
- 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.
- Service: thành phần chạy ẩn trong Android. 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.

- Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để
quản lý và chia sẻ dữ liệu giữa các ứng dụng.
- 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.
- Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới.
- 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.
Activity, Service, Broadcast Receiver và Content Provider mới là những thành
phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong
AndroidManifest
1.3.2.2 AndroidManifest
Trong bất kì một project Android nào khi tạo ra đều có một file
AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng,
các permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông
tin về phiên bản SDK cũng như main activity sẽ chạy đầu tiên. File này được tự động
sinh ra khi tạo một Android project. Trong file manifest bao giờ cũng có 3 thành phần
chính đó là: application, permission và version.

Trang 10

Footer Page 21 of 133.


Header Page Xây
22 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

- Application: bên trong thẻ này chứa các thuộc tính được định nghĩa cho ứng
dụng Android như:

android:icon = “drawable resource” : Ở đây đặt đường dẫn đến file icon của ứng
dụng khi cài đặt.
android:name = “string” : thuộc tính này để đặt tên cho ứng dụng Android.
Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng.
android:theme = “drawable theme” : thuộc tính này để đặt theme cho ứng dụng.
Các theme là các cách để hiển thị giao diện ứng dụng.
Ngoài ra còn nhiều thuộc tính khác…
- Permission: Bao gồm các thuộc tính chỉ định quyền truy xuất và sử
dụng tài nguyên của ứng dụng. Đây là cơ chế bảo mật của android, mặc định ứng
dụng android không được cấp quyền nào, để cấp quyền cho ứng dụng ta sử dụng
thuộc

tính

<user-permission>,

định

dạng

như

sau:


android:name="string" />. Trong đó: android:name dùng xác định tên quyền hạn.
- SDK version: chỉ ra phiên bản SDK nhỏ nhất và chuẩn nhất mà ứng dụng hiện
đang sử dụng.
1.3.3 Activity

Actitvity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng
dụng Android.
Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới
được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các
Activity 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.

Hình 4: Sơ đồ hoạt động activity trong android
Trang 11

Footer Page 22 of 133.


Header Page Xây
23 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

Các trạng thái trong Activity:
-

Running: Activity đang hiển thị trên màn hình (foreground).

-

Paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus)

-

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 bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo
nguyên tắc ưu tiê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 lại trạng thái trước đó.

Vòng đời của một activity bao gồm 3 vòng chính:
-

Entire lifetime: từ phương thức onCreate() đến onDestroy().

-

Visible lifetime: từ phương thức onStart() đến onStop().

-

Foreground lifetime: từ phương thức onResume() đến onPause().

1.3.3.1 Các phương thức trong chu kỳ sống của một activity
- onCreate()
Được gọi khi activity lần đầu tiên được tạo
Đây là nơi ta nên thực hiện khởi tạo tĩnh thông thường — tạo giao diện người
dùng (các view), nối dữ liệu với các danh sách, v.v..
Tham số được truyền một đối tượng Bundle chứa trạng thái cũ của activity, nếu
như trạng thái đã được ghi lại.
onStart() luôn được gọi sau đó.
- onRestart()

Được gọi ngay trước khi activity được khởi động lại sau khi đã bị dừng (stopped).
onStart() luôn được gọi sau đó.
- onResume()
Được gọi ngay trước khi activity bắt đầu tương tác với người dùng.
Tại thời điểm này, activity nằm trên đỉnh activity stack và nhận input của người
dùng.
Tiếp theo bao giờ cùng là onPause().
- onPause()
Được gọi khi hệ thống chuẩn bị chuyển sang một activity khác.
Trang 12

Footer Page 23 of 133.


Header Page Xây
24 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

Phương thức này thường dùng để ghi các thay đổi chưa được lưu, dừng hoạt hình
và những công việc tốn CPU khác, v.v..
Nó nên làm công việc của mình thật nhanh vì activity tiếp theo phải đợi nó kết
thúc thì mới resume được.
Tiếp theo là onResume() nếu activity quay lại, hoặc onStop() nếu nó không còn
được hiển thị đối với người dùng.
Activity trong trạng thái này có thể bị hệ thống kill.
- onStop()
Được gọi khi activity không còn hiển thị đối với người dùng.
Việc này có thể xảy ra khi nó bị hủy (destroyed), hoặc do một activity khác (cũ
hoặc mới) đã được resume và che nó.
Tiếp theo là onRestart() nếu activity tương tác trở lại với người dùng, hoặc

onDestroy() nếu nó không quay lại.
Hệ thống có thể kill activity trong trạng thái này.
- onDestroy()
Được gọi trước khi activity bị hủy.
Đây là lời gọi hàm cuối cùng mà activity nhận được.
Nó có thể được gọi vì activity đang kết thúc (hàm finish() của activity được gọi),
hoặc vì hệ thống đang tạm thời hủy thực thể hiện tại của activity để tiết kiệm không
gian bộ nhớ.
Ta có thể phân biệt hai tình huống trên bằng cách dùng phương thức isFinishing().
Hệ thống có thể kill activity trong trạng thái này.
1.3.4 Intent
Intent là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện một Activity.
Intent là cầu nối giữa các Activity trong ứng dụng. Intent chính là người đưa thư,
giúp chúng ta triệu gọi cũng như truyền dữ liệu cần thiết để thực hiện một Activity từ
một Activity khác

Hình 5: Sơ đồ Intent
Trang 13

Footer Page 24 of 133.


Header Page Xây
25 ofdựng
133. hệ thống trợ giúp ẩm thực trên điện thoại di động

Intent là một khái niệm then chốt và đặc trưng của Android Platform. Có thể nói
lập trình Android chính là lập trình intent-base.
Intent về cơ bản là một cấu trúc dữ liệu, được mô tả trong lớp
android.content.Intent.

1.3.4.1 Các thuộc tính của một đối tượng intent
Bảng 1: Các thuộc tính của đối tượng intent

Thuộc tính chính

Thuộc tính phụ

Action: tên(string) của action mà Intent sẽ
yêu cầu thực hiện, có thể là các action
được định nghĩa sẵn hoặc do người lập
trình tự định nghĩa.
Data: là dữ liệu mà Activity sẽ gọi xử lý,
định dạng Uri( thông qua hàm
Uri.parse(data))

Category:thông tin về nhóm các action
Type:định nghĩa kiểu dữ liệu. Thường
được tự động xác định
Component: chỉ định cụ thể lớp sẽ thực thi
activity
Extras:chứa tất cả các cặp (key, value) do
ứng dụng thêm vào để truyền qua Intent(
chứa cấu trúc Bundle)

1.3.4.2 Sử dụng Intent
Các hàm thực thi Activity
Bảng 2: Các hàm thực thi Activity

Tên hàm


Mô tả

startActivity(intent)

Thực thi activity như mô tả trong intent
nhưng không lấy kết quả trả về.

startActivityResult

Thực thi activity như mô tả trong intent,
có kết quả trả về.

sendBroadcast(intent)

Chạy một service

bindService(intent.ServiceConnection,int)

Bind service

Intent tường minh: Intent có thể dùng các thuộc tính phụ component để chỉ định
đích danh tên lớp sẽ thực thi Activity. Để thực hiện điều này, lớp Intent cung cấp các
hàm đó là setComponent(ComponentName) và setClass(Context, Class) và
setClassName (Context, String) setClassName(String, String). Là intent được dùng
để gọi các Activity trong cùng một app
Intent không tương minh: Intent không chỉ định một lớp cụ thể mà thay vào đó
dùng các dữ liệu khác (action, data, type..) để hệ thống tự quyết định xem lớp nào sẽ
thích hợp để đáp ứng intent đó. Thông tin action và category của activity trong một
app đáp ứng intent đó phải được khai báo trong Manifest của app dưới dạng Intentfilter. Truyền nhận thông tin giữa các Activity sử dụng intent
Trang 14


Footer Page 25 of 133.


×