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

Xây dựng phần mềm đặt món ăn trực tuyến HMLFOOD cho điện thoại di động trên nền tảng hệ điều hành android

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 (2.45 MB, 80 trang )

LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn trường Đại Học Công Nghệ Thông
Tin và Truyền Thông- Đại học Thái Nguyên đã tạo điều kiện thuận lợi cho phép
em hoàn thành đồ án tốt nghiệp này.
Em xin chân thành cảm ơn sự giúp đỡ và đóng góp ý kiến nhiệt tình của các
thầy - cô giáo trong bộ môn Mạng máy tính và truyền thông - Khoa Công Nghệ
Thông Tin- Đại học Công Nghệ Thông Tin và Truyền Thông - Đại Học Thái
Nguyên.
Đặc biệt em xin bày tỏ lòng cảm ơn sâu sắc nhất đến Thầy giáo Đỗ Đình
Cường, đã nhiệt tình giúp đỡ em trong suốt quá trình học tập và nghiên cứu.
Và sau cùng em xin gửi lời cảm ơn đến gia đình, bạn bè những người luôn
bên cạnh động viên và giúp đỡ em trong thời gian làm đồ án.
Sinh viên thực hiện
Hoàng Thị Mỹ Lê

1


LỜI CAM ĐOAN
Em xin hứa toàn bộ việc làm đồ án do em làm và có sự tham khảo ở các tài
liệu tham khảo. Đồ án của em không trùng lặp với các đồ án mà em và thầy giáo
hướng dẫn đã biết.
Thái Nguyên, tháng 06 năm 2016
Sinh viên

Hoàng Thị Mỹ Lê

2


MỤC LỤC



LỜI CẢM ƠN ......................................................................................................... 1
LỜI CAM ĐOAN.................................................................................................... 2
MỤC LỤC .............................................................................................................. 3
DANH MỤC HÌNH ẢNH ....................................................................................... 5
LỜI NÓI ĐẦU ........................................................................................................ 7
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ........................................................................ 8
1.1 Công nghệ xây dựng server ........................................................................... 8
1.2 Công nghệ phát triển ứng dụng android ....................................................... 10
1.2.1 Giới thiệu chung về hệ điều hành android............................................ 10
1.2.2 Kiến trúc của android .......................................................................... 11
1.2.3 Công nghệ phát triển ứng dụng android............................................... 14
1.3.4 Công nghệ giao tiếp giữa ứng dụng android và web server ................ 15
CHƯƠNG 2: KHẢO SÁT PHÂN TÍCH THIẾT KẾ ............................................. 20
2.1 Nhu cầu sử dụng phần mềm đặt món ăn trực tuyến ở Việt Nam và nước ngoài
hiện nay............................................................................................................. 20
2.2 Phần mềm ngoài thị trường.......................................................................... 21
2.2.1 Food panda.......................................................................................... 21
2.2.2 Vietnammm......................................................................................... 22
2.2.3 Eat.vn.................................................................................................. 23
2.2.4 chonmon.vn......................................................................................... 24
2.2.5 Kết Luận ............................................................................................. 25
2.2.6. Thị trường kinh doanh món ăn trực tuyến........................................... 26
2.3 Khảo sát hệ thống ........................................................................................ 28
2.3.1 Mô hình đặt món ăn trực tuyến của khách hàng................................... 28
2.3.2 Khảo sát quy trình ship hàng của nhà hàng .......................................... 29
2.4 Yêu cầu đặt ra và giải quyết yêu cầu............................................................ 33
2.4.1. Yêu cầu đặt ra .................................................................................... 33

3



2.4.2. Giải quyết yêu cầu.............................................................................. 33
2.5. Phân tích thiết kế hệ thống.......................................................................... 34
2.5.1 Các tác nhân và Usecase...................................................................... 34
2.5.2 Đặc tả UC............................................................................................ 35
2.5.3 Biểu đồ hoạt động ............................................................................... 39
2.5.4 Biểu đồ trình tự ................................................................................... 47
2.5.5 Biểu đồ lớp.......................................................................................... 51
CHƯƠNG III: XÂY DỰNG DEMO CHƯƠNG TRÌNH....................................... 52
3.1 Giao diện chính ........................................................................................... 52
3.2 Một số chức năng chính............................................................................... 55
3.2.1 Giao diện khách hàng tương tác .......................................................... 55
3.2.2 Giao diện admin .................................................................................. 62
KẾT LUẬN........................................................................................................... 78
TÀI LIỆU THAM KHẢO ..................................................................................... 79

4


DANH MỤC HÌNH ẢNH
Hình 1.1 Mô hình web server ..................................................................................8
Hình 1.2 Cấu trúc stack hệ thống Android .............................................................11
Hình 2.1 Mô hình đặt món của khách hàng............................................................28
Hình 2.2 Sơ đồ vật lý của nhà hàng .......................................................................31
Hình 2.3 Biểu đồ UC tổng quát..............................................................................35
Hình 2.4 Biểu đồ hoạt động đăng nhập ..................................................................39
Hình 2.5 Biểu đồ hoạt động đăng xuất...................................................................40
Hình 2.6 Biểu đồ hoạt động đăng Ký.....................................................................40
Hình 2.7 Biểu đồ hoạt động xem thông tin shop ....................................................41

Hình 2.8 Biểu đồ hoạt động xem thông tin menu ...................................................42
Hình 2.9 Biểu đồ hoạt động đặt hàng.....................................................................43
Hình 2.10 Biểu đồ hoạt động thêm thông tin menu ................................................44
Hình 2.11 Biểu đồ hoạt động sửa menu .................................................................45
Hình 2.12 Biểu đồ hoạt động xóa menu .................................................................46
Hình 2.13 Biểu đồ trình tự chức năng đăng nhập ...................................................47
Hình 2.14 Biểu đồ trình tự chức năng đăng xuất ....................................................47
Hình 2.15 Biểu đồ trình tự chức năng đăng ký.......................................................48
Hình 2.16 Biểu đồ trình tự chức năng xem danh sách menu...................................48
Hình 2.17 Biểu đồ trình tự chức năng thêm mới menu...........................................49
Hình 2.18 Biểu đồ trình tự chức năng sửa menu ....................................................49
Hình 2.19 Biểu đồ trình tự chức năng xóa menu ....................................................50
Hình 2.20 Biểu đồ trình tự chức năng đặt hàng......................................................50
Hình 2.21 Biểu đồ lớp ...........................................................................................51
Hình 3.1 Giao diện chính.......................................................................................52
Hình 3.2 Giao diện chọn thành phố .......................................................................53
Hình 3.3 Giao diện chọn quận, huyện ....................................................................54
Hình 3.4 Giao diện list shop ..................................................................................55
Hình 3.5 Thông tin chi tiết shop ............................................................................56

5


Hình 3.6 List Menu ...............................................................................................57
Hình 3.7 Giao diện Comment ................................................................................58
Hình 3.8 Chọn menu và số lượng ..........................................................................59
Hình 3.9 List menu order.......................................................................................60
Hình 3.10 Thông tin khách hàng order...................................................................61
Hình 3.11 Giao diện Admin...................................................................................62
Hình 3.12 Giao diện Register.................................................................................63

Hình 3.13 Giao diện Login ....................................................................................64
Hình 3.14 Giao diện List Menu khi chưa được insert.............................................65
Hình 3.15 Giao diện Insert Menu...........................................................................66
Hình 3.16 Giao diện List Menu khi được Insert và update .....................................67
Hình 3.17 Dialog lựa chọn delete or update ...........................................................68
Hình 3.18 Giao diện update menu..........................................................................69
Hình 3.19 Giao diện xem danh sách List Order và update thông tin shop ..............70
Hình 3.20 Giao dien update thông tin Shop ...........................................................71
Hình 3.21 Giao diện khách hàng đã đặt hàng.........................................................72
Hình 3.22 Giao diện danh sách order đã đặt hàng ..................................................73
Hình 3.23 Giao diện khi Login với tài khoản quản trị viên hệ thống ......................74
Hình 3.24 Giao diện các cửa hàng đã đăng ký với hệ thống ...................................75
Hình 3.25 Giao diện khi muốn xóa 1 cửa hàng khỏi hệ thống ................................76
Hình 3.26 Giao diện khi thêm khu vực ..................................................................77

6


LỜI NÓI ĐẦU
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… kéo theo đó là cuộc cạnh tranh vô cùng khốc liệt
của các nhà sản xuất hệ điều hành mobile. Google Android – hệ điều hành mặc dù
ra đời muộn hơn những hệ điều hành khác nhưng lại đang là hệ điều hành số 1 trên
thị trường hệ điều hành di động hiện nay với thị phần ( 56,1% vào quí 1/2012). Tất
cả các ứng dụng như: định vị GPS, multimedia, lướt web và kết nối internet, ứng
dụng văn phòng, tích hợp mạng xã hội hay chơi game… đều xuất hiện trên điện
thoại thông minh chạy hệ điều hành Android. Sự đa dạng về mức giá cũng như số
mẫu mã kiểu dáng khiến Android trở thành một trong những nền tảng smartphone
phổ biến nhất tại Việt Nam năm 2011.
Xây dựng ứng dụng trên Smartphone là lĩnh vực có tốc độ phát triển nhanh

nhất trong ngành công nghệ thông tin với 1,4 tỉ thuê bao và dự báo sẽ có khoảng
452 triệu Smartphone được bán ra vào năm 2012 và 6,7 triệu ứng dụng sẽ được
download trước năm 2014. Với xu thế và tính tất yếu của lĩnh vực lập trình ứng
dụng nói chung và lập trình Android nói riêng đã mang đến luồng gió mới trong
ngành công nghệ thông tin.
Kể từ năm 2011, đặt món ăn trực tuyến đã trở thành một thị trường hấp dẫn
và “ngon miệng” tại Việt Nam. Khởi đầu từ là sự tiện lợi khi đặt món ăn với cộng
đồng người nước ngoài tại Việt Nam, sau đó trở thành trào lưu và được đón nhận
nồng nhiệt từ các bạn trẻ và nhân viên văn phòng. Hiện nay, với sự phát triển của
các trang thương mại điện tử, việc mua và bán các sản phẩm trên môi trường kinh
doanh online ngày càng trở nên phổ biến, việc đặt món ăn trực tuyến đã xác lập vị
trí trong thói quen mua sắm của nhiều người dùng Internet. Chính vì vậy em đã
chọn đề tài: “Xây dựng phần mềm đặt món ăn trực tuyến HMLFOOD cho điện
thoại di động trên nền tảng hệ điều hành Android” làm đề tài cho đồ án tốt
nghiệp. Thông qua đề tài này em tìm hiểu được thêm những kiến thức mới về lập
trình Android và trau dồi khả năng lập trình của mình.

7


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Công nghệ xây dựng server
Web server là một dịch vụ công nghệ thông tin xử lý các yêu cầu thông qua HTTP,
các giao thức mạng cơ bản khác để phân phối thông tin trên world wide web.Các
chức năng chính của web server là để lưu trữ, xử lý và cung cấp các trang web cho
người dùng. Những dạng dữ liệu thường xuyên truyền tải giữa một web server với
một ứng dụng client là các trang tài liệu HTML có thể bao gồm hình ảnh, kịch bản,
file khác. Ứng dụng client có thể là một trình duyệt web, một ứng dụng có thể đọc
và truy xuất đến web server. Ứng dụng client truy cập đến server bằng cách thực
hiện một yêu cầu một tài nguyên nào đó trên server bằng cách sử dụng HTTP, khi

server nhận được yêu cầu sẽ thực hiện xử lý yêu cầu và đáp ứng nội dung tài
nguyên cần yêu cầu(nếu có) cho client.

Hình 1.1 Mô hình web server
Hiện nay có nhiều cách để xây dựng và chạy một web server được phân loại
bằng ngôn ngữ sử dụng, xử lý trên web server bao gồm:
Web server PHP sử dụng ngôn ngữ lập trình PHP để xử lý các yêu cầu từ
client và MySQL để lưu trữ cơ sở dữ liệu. Ưu điểm của web server PHP là: Sử dụng
ngôn ngữ lập trình PHP là một ngôn ngữ mã nguồn mở, rất phổ biến và dễ dàng viết
mã. Bên cạnh đó là sử dụng hệ quản trị cơ sở dữ liệu MySQL là một quản trị cơ sở
dữ liệu dễ quản lý, tốc độ xử lý cao và dễ dàng sử dụng. Tuy nhiên còn một số
những nhược điểm của Web server PHP như: PHP là một ngôn ngữ dạng yếu và chỉ
8


chạy được trên ứng dụng web. Hệ quản trị cơ sở dữ liệu MySQL bảo mật chưa cao,
quán trình phục hồi chậm chạp, không hỗ trợ truy vấn con và các thủ tục lưu trữ,
bẫy lỗi, …
Web server Java sử dụng ngôn ngữ java để xử lý các yêu cầu từ client và
Oracle Database để lưu trữ cơ sở dữ liệu. Ưu điểm của web server Java là: sử dụng
ngôn ngữ lập trình Java là một ngôn ngữ mã nguồn mở, rõ ràng và tách biệt, dễ
dàng viết mã, ngôn ngữ hướng đối tượng rõ ràng, nhiều thư viên hỗ trợ lập trình. Hệ
quản trị cơ sở dữ liệu sử dụng là Oracle Database là một hệ quản trị cơ sở dữ liệu
lớn, được tích hợp các công cụ quản trị, tính bảo mật cao và thời gian đáp ứng
nhanh. Ngoài những ưu điểm trên thì Web server Java cũng có những nhược điểm
như: ngôn ngữ lập trình java còn chập chạp, cần phải cấu hình nhiều để có thể chạy
tốt, hệ quản trị cơ sở dữ liệu Oracle chưa được phổ biến, phí bản quyền tương đối
cao, không tương thích với các công nghệ của Microsoft.
Web server .Net sử dụng ngôn ngữ lập trình C# để xử lý các yêu cầu từ
client và SQLServer để lưu trữ cơ sở dữ liệu. Ưu điểm của web sercer .Net là: sử

dụng ngôn ngữ lập trình C# là ngôn ngữ lập trình đơn giản hướng đối tượng, rõ
ràng, tách biệt, mạnh mẽ, dễ dàng viết mã, nhiều thư viện hỗ trợ lập trình. Hệ quản
trị cơ sở dữ liệu hay được sử dụng là SQLServer là một hệ quản trị cơ sở dữ liệu
lớn, mạnh mẽ, cấu trúc chặt chẽ, duy nhất, tính bảo mật cao, dễ dàng sử dụng. Web
server .Net còn có một số nhược điểm như: ngôn ngữ C# chỉ hỗ trợ trên môi trường
windown, SQLServer bảo mật cao nên phải cấu hình chính sác mới có thể sử dụng.
Từ những ưu điểm và nhược điểm kể trên của ba cách xây dựng web server
em chọn cách xây dựng web server trên nền ASP.Net sử dụng ngôn ngữ lập trình
C# để viết mã và hệ quản trị cơ sở dữ liệu SQLServer 2005 để lưu trữ dữ liệu.
Để thực hiện các truy vấn cơ sở dữ liệu trong SQLServer để xử lý và gửi
phản hổi cho client em sử dụng cộng nghệ LINQ. LINQ (Language Integrated
Query) là một thư viện cung cấp cho ngôn ngữ lập trình C# và Visual Basi. Thư
viện này cung cấp khả năng truy vấn database ngay trên ngôn ngữ lập trình. Khi sử
dụng, LinQ sẽ mô phỏng lại cơ sở dữ liệu của bạn và lưu trong trương trình, sau đó

9


mỗi thực thể sẽ được xây dựng thành mỗi class như mô hình MVC, từ đó ta có thể
truy xuất database thông qua những class đó.LINQ có thể viết truy vấn cơ sở dữ liệu
cho rất nhiều các đối tượng, thực thể dữ liệu từ database.Công nghệ này giúp giảm
gánh nặng thao tác trên nhiều ngôn ngữ lập trình và cải thiện năng suất lập trình.
LINQ to SQL là một phiên bản hiện thực hóa của O/RM (object relational mapping)
có bên trong .NET Framework 3.5, nó cho phép mô hình hóa một cơ sở dữ liệu
dùng các lớp .NET. LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored
procedure (SP). Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính
hợp lệ của dữ liệu và các quy tắc vào trong mô hình dữ liệu của bạn.
1.2 Công nghệ phát triển ứng dụng android
1.2.1 Giới thiệu chung về hệ điều hành android
Android là một nền tảng mã nguồn mở toàn diện được thiết kế cho các thiết

bị di động. Nó là sự liên minh giữa ông lớn Google và Open Handset Alliance – các
tập đoàn sản xuất thiết bị cầm tay nổi tiếng như Intel, SamSung, Toshiba… Với
mục tiêu là tăng tốc việc đổi mới trong di động và cung cấp cho người tiêu dung
nhiều tiện ích phong phú, ít tốn kém. Android chính là công cụ để làm điều đó.
Android là một nền tảng mã nguồn mở, toàn bộ ngăn xếp từ các module cấp
thấp của Linux đến tất cả các thư viện gốc và tử các ứng dụng khung cho đến các
ứng dụng hoàn chỉnh là hoàn toàn mở.
Trong lịch sử phát triển, ban đầu Android thuộc sở hữu của công ty Android
Inc. Sau đó được Google mua lại vào năm 2005 và bắt đầu xây dựng Android
Platform. Cuối năm 2007 liên minh Open HandsetAlliance được thành lập và được
công bố, Android chính thức trở thành mã nguồn mở. Phiên bản đầu tiên được phát
hành vào tháng 11 năm 2007.

10


1.2.2 Kiến trúc của android

Hình 1.2 Cấu trúc stack hệ thống Android
a, Tầng ứng dụng
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như:
Các ứng dụng cơ bản được cài đặt đi liền với hệ điều hành như: gọi điện
thoại (phone), quản lý danh bạ (contacts), duyệt web (browser), nhắn tin (sms), lịch
làm việc (calendar), đọc email (email-client), bản đồ (map), quay phim chụp ảnh
(camera)….
Các ứng dụng được cài thêm như các phần mềm (stock), các trò chơi (game),
từ điển, ….
Các chương trình có các đặc điểm là:
 Viết bằng Java, phần mở rộng là apk.
 Khi mỗi ứng dụng được chạy, nó có phiên bản Virtual Machine được dựng

lên phục vụ cho nó. Nó có thể là một Active Program: chương trình có giao diện với
người sử dụng hoặc là một background: chương trình chạy nền hay là dịch vụ.
 Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời
điểm, có thể có nhiều chương trình chạy một lúc, tuy nhiên, với mỗi ứng dụng thì
có duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng
hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn.
11


 Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền
hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống.
Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di
động khác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền.
b, Application framework
Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trình
viên có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng
sử dụng chung để tiết kiệm tài nguyên.
Gồm các thành phần:
 Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như
cung cấp các công cụ điều khiển Activity.
 Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi
điện thoại.
 XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực.
 Location Manager: Cho phép xác định vị trí của điện thoại dựa vào hệ
thống định vị toàn cầu GPS và Google Maps.
 Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người
dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng.
 Notication Manager: Quản lý việc hiển thị các thông báo ( như báo có tin
nhắn,có email mới….).
c, Library

Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi nhiều
thành phần khác nhau trong hệ thống Android. Điều này được thể hiện thông qua
nền tảng ứng dụng Android. Một số các thư viện cơ bản gồm:
 Hệ thống thư viện C : triển khai BSD-derived có nguồn gốc từcáchệ thống
thư việnchuẩnC(libc), được sử dụng chỉ bởi hệ điều hành.
 Media Libraries– Dựa trên

gói Video OpenCORE; cácthư việnhỗ

trợphátvàghi âmcủacác định dạng âm thanh và video phổ biến, cũng như cácfilehình
ảnhtĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG

12


 Surface Manager– Quản lý việc truy xuất vào hệ thống hiển thị
 LibWebCore- Đây là thành phần để xem nội dung trên web, được sử
dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng
dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ
mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX..
 SGL– Các cơ sở công cụ đồ họa 2D.
 3D libraries- Thực hiện dựa trên OpenGL ES 1.0 APIs; Thư viện sử dụng
hoặc là tăng tốc phần cứng 3D (nếu có) hoặc bao gồm tối ưu hóa phần mềm3D.
 SQLite- Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng
d, Android Runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java
có thể hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy
tính thường. Thứ nhất là các thư viện lõi (Core Library) , chứa các lớp như JAVA
IO, Collections, File Access. Thứ hai là một máy ảo java (Dalvik Virtual
Machine) . Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java

của hệ điều hành android không được chạy bằng JRE của Sun (nay là
Oracle) (JVM) mà là chạy bằng máy ảo Dalvik do Google phát triển.
e, Linux kernel
Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể là hạt
nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi
hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp
thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với
phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process).
Tầng này có các thành phần chủ yếu :
 Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận
những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng...)
 Camera Driver : Điều kiển hoạt động của camera, nhận luồng dữ liệu từ
camera trả về.
 Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth.

13


 USB driver : Quản lý hoạt động của các cổng giao tiếp USB
 Keypad driver : Điều khiển bàn phím
 Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi
 Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu
dạng audio thành tín hiệu số và ngược lại
 Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng
vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông
được thực hiện.
 M-System Driver : Quản lý việc đọc ghi... lên các thiết bị nhớ như thẻ SD, flash
 Power Madagement : Giám sát việc tiêu thụ điện năng.
1.2.3 Công nghệ phát triển ứng dụng android
Hiện nay, trên thực tế tồn tại ba công nghệ phát triển ứng dụng cho hệ điều

hành android gồm: sử dụng java thuần túy để phát triển ứng dụng, sử dụng C++ để
phát triển ứng dụng game, sử dụng công nghệ Cross platform hoặc Hybrid để viết
ứng dựng từ một ngôn ngữ có thể chạy trên nhiều nền tảng hệ điều hành khách nhau.
Sử dụng java thuần để phát triển ứng dụng android là công nghệ viết ứng
dụng cơ bản và được google khuyên sử dụng. Vì đây là nền tảng cơ bản của
android, việc biên dịch để thực thi ứng dụng trên hệ điều hành android đã được tích
hợp và tương thích trong các phần mềm lập trình. Đa số các ứng dụng trên android
hiện nay đều được viết từ nền tảng này. Ngoài ra nền tảng này còn được google và
các nhà phát triển ứng dụng liên tục cập nhật những bộ thư viện mới hỗ trợ người
lập trình rất tốt. Những phần mềm sử dụng nền tảng công nghệ này như: Android
Studio, Elclipse,…
Sử dụng C++ để phát triển ứng dụng game là công nghệ tận dụng tốc độ xử
lý nhanh và tối ưu bộ nhớ của ngôn ngữ C++ để phát triển các ứng dụng game. Với
công nghệ này người lập trình sẽ viết mã trên C++ sau đó sử dụng công cụ NDK để
chuyển đổi mã sang java để chạy trên hệ điều hành android.
Sử dụng công nghệ Cross platform hoặc Hybrid là một cách tiếp cận mới cho
các ứng dụng trên di động. Với công nghệ này, ứng dụng chỉ cần viết một lần có thể

14


chạy được trên nhiều hệ điều hành khác nhau. Công nghệ này sử dụng một số ngôn
ngữ như js (HTML5), C#(unity,xamarin) …
 Cùng với sự tìm hiểu và những hiểu biết của mình về các công nghệ phát
triển ứng dụng cho android thì em lựa chọn công nghệ sử dụng java thuần để phát
triển ứng dụng trên android của đề tài. Vì đây là nền tảng được hỗ trợ rất nhiều từ
google nhất là từ khi phần mềm lập trình Android Studio của hãng được phát hành.
Bên cạnh đó thư viện hỗ trợ được viết bởi các hãng cũng khá phong phú và tiện
dụng. Tài liệu hướng dẫn sử dụng và học tập trên nền tảng này cũng rất nhiều.
1.3.4 Công nghệ giao tiếp giữa ứng dụng android và web server

Đề tài thực hiện của em gồm hai thành phần chính là server và client trên
android vì vậy mà vấn đề làm sao để ứng dụng android có thể hiểu và giao tiếp qua
lại với web server là một trong những vẫn đề then chốt của đề tài. Công nghệ thông
dụng, phổ biến và dễ dàng để kết nối truyền thông giữa client và server là HTTP
(Hypertext Transfer Protocol). Đây là giao thức chạy trên nền web dùng để truyền
tải nội dung giữa web server và client. Cơ chế hoạt động chính của HTTP là Requet
và Response. Client gửi Request đến cho server, server xử lý và trả về Response
cho client. Giao thức này sẽ đảm bảo vấn đề kết nối của ứng dụng client android với
web server. Vấn đề làm sao để client và server hiểu nhau thì hiện nay có một số
công nghệ hỗ trợ vấn đề này như: JSON, SOAP, WSDL, …
- JSON: JSON (JavaScript Object Noattion) là một định dạng hoán vị dữ liệu
nhanh. Chúng dễ dàng cho chúng ta đọc và viết. Dễ dàng cho thiết bị phân tích và
phát sinh. Chúng là cơ sở dựa trên tập hợp của Ngôn Ngữ Lập Trình JavaScript, tiêu
chuẩn ECMA-262 phiên bản 3 - tháng 12 năm 1999. JSON là một định dạng kiểu
text mà hoàn toàn độc lập với các ngôn ngữ hoàn chỉnh, thuộc họ hàng với các ngôn
ngữ họ hàng C, gồm có C, C++, C#, Java, JavaScript, Perl, Python, và nhiều ngôn
ngữ khác. Những đặc tính đó đã tạo nên JSON một ngôn ngữ hoán vị dữ liệu lý
tưởng. JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất
nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến, theo tôi thì trong tương lai
tới trong các ứng dụng sẽ sử dụng nó là đa số. JSON được xây dựng trên 2 cấu trúc:

15


 Là tập hợp của các cặp tên và giá trị name-value. Trong những ngôn ngữ
khác nhau, đây được nhận thấy như là một đối tượng (object), bản ghi (record), cấu
trúc (struct), từ điển (dictionary), bảng băm (hash table), danh sách khoá (keyed
list), hay mảng liên hợp.
 Là một tập hợp các giá trị đã được sắp xếp. Trong hầu hết các ngôn ngữ, thì
được nhận thấy như là một mảng, véc tơ, tập hợp hay là một dãy sequence.

Đây là một cấu trúc dữ liệu phổ dụng. Hầu như tất cả các ngôn ngữ lập trình
hiện đại đều hổ trợ chúng trong một hình thức nào đó.
Ví dụ:
{
"username" : "hoangmyle",
"email" : "",
"website" : "hoangmyle.vn",
"title" : "Ứng dụng đặt món ăn trực tuyến HMLFOOD"
}
SOAP:
- SOAP – Một tiêu chuẩn của W3C, là giao thức sử dụng XML để định nghĩa
dữ liệu dạng thuần văn bản (plain text) thông qua HTTP. SOAP là cách mà Web
Service sử dụng để truyền tải dữ liệu. Vì dựa trên XML nên SOAP là một giao thức
không phụ thuộc platform cũng như bất kì ngôn ngữ lập trình nào.
- Một thông điệp SOAP được chia thành hai phần là header và body. Phần
header chỉ ra địa chỉ Web Service, host, Content-Type, Content-Length tương tự
như một thông điệp HTTP.
WSDL:
- WSDL là một ngôn ngữ dựa trện XML để định vị và mô tả các dịch vụ WEB.
UDDI:
- UDDI là danh sách các dịch vụ, nơi mà các công ty có thể đăng ký và tìm
kiếm cho các dịch vụ WEB.
- Ví dụ về Web Service dạng Json:

16


a) Cách gọi Web Service trong Android
- Để gọi được WebService trong Android ta phải có bộ thư viện KSOAP


- Các tham số cần có khi gọi WebService:
+INTERNET:

+ URL:

+ METHOD_NAME:

17


b) Cách lấy dữ liệu từ Web Service dưới dạng json và xml trong Andoid

Bước 1: tạo bảng cơ sở dữ liệu

Bước 2 : Tạo một thư mục tên là webservice, đặt trong thư mục gốc của
website. Tiếp đến trong thư mục webservice, tạo 1 file đặt tên là connection.php.
File này có trách nhiệm tạo kết nối đến cơ sở dữ liệu.

18


Bước 3: Viết code php xuất dạng json như sau

Bước 4: Viết code android load dữ liệu hiện thị

19


CHƯƠNG 2: KHẢO SÁT PHÂN TÍCH THIẾT KẾ
2.1 Nhu cầu sử dụng phần mềm đặt món ăn trực tuyến ở Việt Nam và nước

ngoài hiện nay
Trên thị trường ẩm thực, mô hình kinh doanh gọi món trực tuyến đang nở rộ
trong những năm gần đây chính là cánh cửa cơ hội tiếp cận thị trường thương mại
điện tử đầy tiềm năng.
Theo số liệu từ Báo cáo thương mại điện tử 2013 của Bộ Công Thương, dự
báo doanh số thương mại điện tử B2C của Việt Nam sẽ tăng trưởng 80% từ 2.2 tỷ
USD (2013) đến 4 tỷ USD trong năm 2015. Với tốc độ tăng trưởng vượt bậc này,
cho đến nay, thương mại điện tử không chỉ nổi lên như một trào lưu mà còn là xu
hướng tất yếu xuất hiện ở nhiều lĩnh vực khác nhau tại Việt Nam.
Sự nở rộ của hai mô hình kinh doanh như trang web gọi món (gọi món ăn
đến bất cứ nơi nào vào bất kỳ thời gian nào) và đặt chỗ nhà hàng trực tuyến (đặt chỗ
trước khi đến nhà hàng thưởng thức) cũng góp phần thay đổi quy trình phân phối
hàng hoá và phương thức kinh doanh trên thị trường ẩm thực. Hai loại hình kinh
doanh này đều hoạt động trên cơ sở hệ thống trang web có liên kết hợp tác với
nhiều nhà hàng trong khu vực và khách hàng có thể sử dụng dịch vụ trực tuyến tùy
theo mục đích của mình.
Ưu điểm chung của hai dịch vụ này là khách hàng có thể tham khảo nhiều
lựa chọn từ một trang web duy nhất nhằm tiết kiệm thời gian tìm kiếm, theo dõi ưu
đãi của nhà hàng thường xuyên và tiếp cận thêm nhiều lựa chọn ẩm thực mới.
Nghiên cứu tiến hành trên 474 đối tượng người tiêu dùng Mỹ (2011) của
Tiến sĩ Sheryl E. Kimes ghi nhận hơn một nửa đối tượng tham gia khảo sát đã từng
đặt nhà hàng trực tuyến, 60% trong số này đặt chỗ nhà hàng qua một hệ thống của
trang web đặt chỗ trực tuyến thay vì đặt trực tiếp tại trang web của nhà hàng.
Những đối tượng tham gia phỏng vấn này cũng xem các trang web trực
tuyến là công cụ hữu ích để tìm kiếm, tham khảo thông tin và chọn lựa nhà hàng.
Tại Việt Nam, trong khi các trang đặt chỗ nhà hàng trực tuyến vẫn còn nhen nhóm

20



tiếp cận thị trường, mô hình trang web gọi món trực tuyến đã bắt đầu nở rộ mạnh
mẽ với những cái tên như foodpanda.vn, eat.vn và chonmon.vn.
2.2 Phần mềm ngoài thị trường
2.2.1 Food panda
Cũng giống như các mô hình kinh doanh thương mại điện tử khác, giá trị cốt
lõi của mô hình kinh doanh này là xây dựng hệ thống kết nối khách hàng và nhà
hàng trên một nền tảng trực tuyến nhằm mang đến sự tiện lợi và đa dạng cho hai
bên đối tác.
Ông Salvador Martinez, Giám đốc điều hành foodpanda Việt Nam, Đồng
sáng lập và giám đốc điều hành của công ty đặt hàng thức ăn trực tuyến foodpanda
chia sẻ “Ý tưởng của mô hình kinh doanh dịch vụ đặt hàng thức ăn trực tuyến được
hình thành từ nhu cầu của thị trường. Về phía nhà hàng, trang dịch vụ đặt hàng
thức ăn trực tuyến là kênh phân phối và tiếp thị hiệu quả giúp họ tiếp cận khách
hàng mới ở một địa bàn rộng lớn hơn đồng thời nâng cao chất lượng dịch vụ khách
hàng bằng việc bỏ ra một chi phí hợp lý cho đối tác. Các trang đặt hàng thức ăn
trực tuyến sẽ cung cấp cho nhà hàng một hệ thống cơ sở hạ tầng có sẵn, mạng lưới
phân phối và công cụ để triển khai dịch vụ giao hàng tận nơi một cách hiệu quả và
kinh tế hơn. Về phía khách hàng, gọi món trực tuyến mang đến cho khách hàng
phương thức trải nghiệm ẩm thực tiện lợi, dễ dàng mà vẫn thoả mãn được nhu cầu
tìm kiếm sự mới lạ của thực khách”.

Mô hình kinh doanh trang web đặt hàng thức ăn trực tuyến của foodpanda
(Nguồn: />
21


Có thể thấy, gọi món trực tuyến chính là cánh cửa dẫn lối các đối tác ẩm thực
gia nhập thị trường thương mại điên tử vốn đang làm mưa làm gió trên nhiều lĩnh
vực khác như thời trang, điện tử, công nghệ và bán lẻ.
Trên sân chơi trực tuyến, khách hàng sở hữu một công cụ tương tác trực tiếp

với nhà hàng. Họ có thể đưa ra nhận xét, đánh giá về chất lượng dịch vụ và món ăn
trên cùng một nền tảng trực tuyến mà nhà hàng đang kinh doanh. Bên cạnh đó, các
thông tin về món ăn, giá cả và chất lượng dịch vụ của nhà hàng cũng được phổ biến
rộng rãi với cộng đồng. Điều này tạo cơ hội cho các nhà hàng nâng cao chất lượng
dịch vụ và món ăn của mình để “ghi điểm” trong mắt người tiêu dùng.
Mặt khác, sở hữu một lượng lớn cơ sở dữ liệu, các trang gọi món trực tuyến
có thể hoàn thành tốt vai trò định hướng thị trường ẩm thực thông qua nguồn cơ sở
dữ liệu hữu ích về thói quen và thị hiếu tiêu dùng của khách hàng. Điều này sẽ giúp
thúc đẩy và hoàn thiện quan hệ cung- cầu trên thị trường ẩm thực.
2.2.2 Vietnammm

Vietnammm- một trong những đơn vị tiên phong trong thị trường đặt món ăn
trực tuyến

22


“Nắm bắt xu hướng phát triển và nhu cầu sử dụng dịch vụ đặt món ăn trực
tuyến, vào tháng 2.2011, thị trường thương mại điện tử Việt Nam đón chào thương
hiệu Vietnammm, 1 trong những thương hiệu Việt Nam đầu tiên mạnh dạn đầu tư
vào lĩnh vực nhiều thách thức này. Trang web hiện có hơn 400 nhà hàng và vẫn
đang trong quá trình phát triển, với hơn 20,000 đơn hàng mỗi tháng. Theo chia sẻ
của ông Jochem Lisser, CEO của Vietnammm, trong thời điểm mới ra mắt thị
trường, phần lớn khách hàng là người ngoại quốc tại Việt Nam. “
(Nguồn: />Nhưng phân khúc khách hàng hiện đã chuyển dịch sang thị phần khách hàng
Việt Nam, những người đang có thói quen tiêu dùng online nói chung và đặt món
ăn qua mạng nói riêng. Vietnammm cũng như nhiều doanh nghiệp thương mại điện
tử khác, bắt đầu kinh doanh tại thành phố Hồ Chi Minh với lợi thế cạnh tranh của 1
thành phố trẻ, năng động. Vietnammm đang mở rộng tại Hà Nội và Đà Nẵng, tạo thành
3 thị trường năng động, tập trung đông khách hàng và giàu tiềm năng phát triển.

2.2.3 Eat.vn

eat.vn – được bắt đầu từ phần khúc khách hàng nước ngoài tại Việt Nam có
nhu cầu đặt món ăn

23


“Chỉ vài tháng sau khi Vietnammm ra mắt, thị trường đặt món ăn trực tuyến
trở nên sôi động hơn với sự tham gia của eat.vn. Eat.vn đang hợp tác với hơn 500
nhà hàng và tiếp tục mở rộng hợp tác. Theo chia sẻ của ông Anders Palm, nhà
sáng lập của Eat.vn, tổng doanh thu tại Hà Nội và Tp. Hồ Chí Minh đạt khoảng “
vài chục tỷ đồng” mỗi tháng và đang duy trì đà phát triển theo hướng tăng tốc.
Năm bắt nhu cầu thị trường đặt món ăn trực tuyến còn nhiều tiềm năng, VC Corp
đã nhanh nhạy và mua lại Eat.vn trong thương vụ trị giá 2,6 tỷ đồng vào năm 2012.
Thị trường phát triển của Eat.vn tập trung vào Hà Nội và Tp. Hồ Chí Minh, với đối
tượng chính là người nước ngoài tại Việt Nam.”
(Nguồn: />2.2.4 chonmon.vn

Chonmon.vn của VC Corp – đang tiếp tục phát triển trong thị trường giàu
tiềm năng này
Nếu Vietnammm khởi đầu phân khúc khách hàng là người nước ngoài tại
Việt Nam để phát triển thì phân khúc khách hàng là người Việt lại là đối tượng mà
chonmon.vn lựa chọn đầu tư. VC Corp với eat.vn cho người nước ngoài và

24


chonmon.vn cho người Việt đã tận dụng tối đã tiềm lực tài chính và khả năng am
hiểu tâm lý và xu hướng tiêu dùng trong nước để phát triển thương hiệu tại thị

trường giàu tiềm năng và không kém phần thách thức này. Hiện goimon.vn đang
duy trì sức ảnh hưởng tại Hà Nội và Tp. Hồ Chí Minh với hơn 200 cửa hàng.
2.2.5 Kết Luận
Với những website đang có trên thị trường chúng ta có thể thấy thị trường
đặt món trực tuyến giàu tiềm năng nhưng cũng không ít thách thức, để tăng sức
cạnh tranh và thiết lập vị thế riêng, mỗi thương hiệu sẽ cần nỗ lực không ít. Đặc biệt
các website trên thị trường chưa chú ý đến hiện này là công nghệ, công nghệ phát
triển không ngừng đã làm thay đổi thói quen của người sử dụng máy tính và mạng
Internet để tìm kiếm thông tin, dịch vụ, sản phẩm. Bây giờ, người dùng có thể
không ngồi trước màn hình máy tính để tìm kiếm sản phẩm hay dịch vụ mà đã
chuyển sang các thiết bị cầm tay như smartphone hay tablet để lướt web nhiều hơn.
Điều đó cho thấy việc website của bạn rất cần hỗ trợ giao diện di động, như thế
khách hàng mới có thể truy cập vào thường xuyên và dễ dàng mọi lúc mọi nơi. Tuy
vậy, nhiều người không nhận ra rằng họ phải điều chỉnh trang web của mình cho
phù hợp với sự thay đổi này. Đây là một số bất lợi cho bạn nếu không có một
website dành cho các thiết bị di động.
“Theo tiết lộ từ một nghiên cứu của Google, khi người dùng điện thoại được
hỏi về những gì họ mong đợi khi lướt web trên các thiết bị di động của họ thì:
- 81% người trả lời muốn tăng tốc độ duyệt web cao hơn.
- 74% trong số họ muốn trang web của mình phải dễ dàng được truy cập và
hoạt động hiệu quả,
- 64% mong muốn tìm kiếm thông tin liên lạc hoặc thông tin sản phẩm một
cách dễ dành
- 50% muốn có khả năng đặt hàng liên tục.
Nếu bạn không có một trang web hỗ trợ phiên bản mobile đáp ứng được
những nhu cầu kể trên thì chẳng khác nào bạn nói với các khách hàng đang sử

25



×