xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android - Pdf 23


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 3736 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 ỨNG DỤNG “ẨM THỰC ĐÀ THÀNH” TRÊN
NỀN TẢNG ANDROID
Mã số : 11TLT - 089
Ngày bảo vệ : 15-16/06/2013

SINH VIÊN : HỨA BÁCH TRUNG
LỚP : 11TLT
CBHD : TH.S LÊ THỊ MỸ HẠNH


Sinh viên thực hiện

Hứa Bách Trung NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN


MỤC LỤC
MỞ ĐẦU 1
I. Bối cảnh của đề tài 1
II. Mục đích và ý nghĩa của đề tài 1
II.1. Mục đích của đề tài 1

III.7. TextView 18
III.8. EditText 18
III.9. CheckBox 19
III.10. Acvivity & Intend 19
III.10.1. Activity 19
III.10.2. Intent 20
IV. SQLite 22
V. GPS 23
VI. Google Map 23
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 24
I. Phân tích yêu cầu 24
I.1. Đặc tả bài toán 24
I.2. Các chức năng chính của hệ thống 24
I.2.1. Đồng bộ facebook 24
I.2.2. Tìm kiếm quán ăn 24
I.2.3. Xem thông tin quán ăn 24
I.2.4. Quán ăn ưa thích 24
I.2.5. Chỉ đường quán ăn 25
I.2.6. Bản đồ quán ăn 25
I.2.7. Học nấu ăn 25
II. Các biểu đồ hệ thống 26
II.1. Biểu đồ ca sử dụng 26
II.1.1. Biểu đồ ca sử dụng tổng quát 26
II.1.2. Xem quán ăn 27
II.1.3. Đồng bộ facebook 28
II.1.4. Xem bản đồ 28
II.1.5. Học nấu ăn 29
II.2. Biểu đồ hoạt động 30
II.2.1. Tìm kiếm 30
II.2.2. Bản đồ 31

Hình 20: ImageView và ImageButton 17
Hình 21: Minh họa cho một ListView 18
Hình 25: Truyền dữ liệu giữa 2 Acticity 21
Hình 26: Các thuộc tính của Intent 21
Hình 27: Các Action đã được định nghĩa sẵn trong Intent 22
Hình 27: SQLite Manager 22
Hình 28. Biểu đồ ca sử dụng tổng quát 26
Hình 29. Biểu đồ ca sử dụng xem quán ăn 27
Hình 30. Biểu đồ ca sử dụng đồng bộ facebook 28
Hình 31. Biểu đồ ca sử dụng xem bản đồ 28
Hình 32. Biểu đồ ca sử dụng học nấu ăn 29
Hình 33. Biểu đồ hoạt động Tìm kiếm 30
Hình 34. Biểu đồ hoạt động Bản đồ 31
Hình 35. Biểu đồ hoạt động Tìm đường 32
Hình 36. Biểu đồ hoạt động Đăng nhập facebook 33
Hình 37. Biểu đồ hoạt động Xem thông tin quán ăn 34
Hình 38. Biểu đồ tuần tự Tìm kiếm 35
Hình 39. Biểu đồ tuần tự Bản đồ 36
Hình 40. Biểu đồ tuần tự Tìm đường 37
Hình 41. Biểu đồ tuần tự Đăng nhập facebook 38
Hình 42. Giao diện màn hình chính 40
Hình 43. Giao diện màn hình Tìm Kiếm 41
Hình 44. Giao diện màn hình Yêu Thích 41
Hình 45. Giao diện màn hình danh sách quán ăn 42
Hình 46. Giao diện màn hình chi tiết quán ăn 42
Hình 47. Giao diện màn hình tìm đường đi 43
Hình 48. Giao diện màn hình chia sẻ quán ăn 43
Hình 49. Giao diện màn hình bình luận quán ăn 44
Hình 50. Giao diện màn hình chủ dạy hướng dẫn nấu ăn 44
Hình 51. Giao diện màn hình danh sách các món được hướng dẫn nấu 45

Ngày nay việc thưởng thức ẩm thực càng ngày càng trở nên khắc khe hơn đối với
thực khách,những quán ăn cũng trở nên phong phú và mở rộng nhiều nơi khắp thành
phố. Việc tìm được một quán ăn ưng ý hay chỉ là nhớ ra quán ăn ở vị trí nào cũng hết
sức khó khăn hơn.
Với những suy nghĩ đó em quyết định chọn đề tài Xây dựng ứng dụng “Ẩm thực Đà
Thành” trên nền tảng Android,giúp giải quyết được khó khăn trong việc tìm kiếm quán
ăn chỉ với thiết bị cầm tay.
II. Mục đích và ý nghĩa của đề tài
II.1. Mục đích của đề tài
Luận văn tốt nghiệp trên ý tưởng đề tài với hai mục đích chính như sau :
 Thứ nhất là tìm hiểu về kỹ thuật lâp trình ứng dụng với Android SDK
 Thứ hai là xây dựng ứng dụng trên thiết bị di động Android có khả năng triển
khai ứng dụng vào thực tế,đem lại sự tiện lợi cho người sử dụng có thể tra
cứu mọi nơi.
Với những kiến thức đã học được tại trường, kết hợp với sự tìm hiểu công nghệ của
cá nhân. Em hy vọng luận văn tốt nghiệp của em sẽ đạt được kết quả như mong đợi.
II.2. Ý nghĩa của đề tài
Trước hết, ứng dụng “Ẩm thực Đà Thành” được xây dựng như một đề tài thể hiện
việc áp dụng những kiến thức quý báu đã được các Thầy, Cô của trường Đại học Bách
Khoa – Đại học Đà Nẵng đã nhiệt tình truyền đạt lại cho em. Và đặc biệt là sự theo dõi
Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android
SVTH: Hứa Bách Trung – Lớp 11TLT Trang 2
và tận tình giúp đỡ của Cô Lê Thị Mỹ Hạnh trong suốt thời gian em thực hiện đề tài
này.
Trong thời đại công nghệ thông tin phát triển như vũ bão ngày nay, công nghệ không
ngừng được cải tiến, những công nghệ mới ra đời đòi hỏi người lập trình viên phải cố
gắn nghiên cứu và tìm hiểu để áp dụng vào thực tiễn. Điều này củng được thể hiện qua
sự cố gắng của em khi quyết định thực hiện đề tài này với công nghệ được coi là mới
hiện nay và được phát triển mạnh mẽ trong tương lai.
Ứng dụng có thể nói như là một phụ kiện đi kèm theo các bà nội trợ để hổ trợ cho

bị di động mạng tên Android được thành lập bởi 4 thành viên là:
1. Andu Rubin: nhà đồng sáng lập công ty Danger – công ty chuyên về các nền
tảng, phần mềm, thiết kế và dịch vụ cho các thiết bị điện toán di động
2. Rich Miner: nhà đồng sáng lập công ty truyền thông Wildfire
Communications
3. Nick Sears: một trong những vị phó chủ tịch của nhà cung cấp mạng viễn
thông di động T-Mobile ở Mỹ
4. Chris While: trưởng bộ phận thiết kế và phát triển giao diện WebTV
Năm 2005, sau hơn 2 năm hoạt động thì Android được Google mua lại với một
khoản tiền không được tiết lộ và chính thức trở thành một trong những công ty con của
gã khổng lồ ngành tiềm kiếm. Đồng thời cả Andy Rubin, Rich Miner và Chris While
đều quyết định tiếp tục làm việc tại chính công ty của mình sau khi được mua lại. Ở
thời điểm đó, nhiều người không thực sự chú ý vào thương vụ này thế nhưng nó lại
đánh dấu bước đi đầu tiên của Google trong thị trường thiết bị di động thế giới.
Tại Google, một nhóm nghiên cứu đứng đầu là Rubin đã bắt đầu phát triển một nền
tảng dành cho thiết bị di động dựa trên nhân của hệ điều hành Linux. Và sau đó hệ điều
hành này cũng được giới thiệu đến các nhà phát triển phần cứng lẫn phần mềm, báo
hiệu sự có mặt của một “ngôi sao” khác trên “thiên hà” thị trường công nghệ di động.
Đến tháng 12 năm 2006, suy đoán về ý định gia nhập thị trường truyền thông di
động của Google tiếp tục được củng cố sau khi BBC và The Wall Street Journal cho
biết rằng hang này muốn đưa ứng dụng và chức năng tìm kiếm của mình lên các thiết
bị di động. Lập tức ngay sau đó, nhiều tin đồn về chiếc điện thoại mang thương hiệu
Google xuất hiện khắp các phương tiện truyền thông.
Tháng 7 năm 2007, liên minh các nhà sản xuất thiết bị cầm tay – Open Handset
Alliance (OHA) được thành lập bao gồm Google và một số thành viên khác của cộng
đồng Linux như: Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology
Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile
và Texas Instruments. Mục tiêu của OHA là phát triển tiêu chuẩn mở cho các thiết bị di
động và sản phẩm đầu tiền của liên minh này đó là Android, một nền tảng di động được
xây dựng trên nhân Linux phiên bản 2.6.

người sử dụng.
Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống bao gồm:
- Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dung để thiết
kế giao diện ứng dụng như: gridview, tableview, linearlayout…
- Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ
các ứng dụng khác (chẳng hạn như Contacts) hoặc chia sẻ dữ liệu giữa các
ứng dụng đó.
- Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải
là mã nguồn chẳng hạn như: localized string graphics và layout files.
- Một “Notifycation Manager” cho phép tất cả các ứng dụng hiện thị custom
alerts trong status bar.
Activity Manager được dùng để quản lý chu trình sống của ứng dụng và điều hướng
các activity.
I.2.3. 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 Andorid. Một số thư viện cơ bản được liệt kê dưới đây:
 System C library: có nguồn gốc từ hệ thống thư viện chuẩn C (LIBC) giúp
điều chỉnh nhúng cho các thiết bị sử dụng nền tảng Linux.
 Media Libraries: dựa trên OpenCore của PacketVideo, hổ trợ ghi và phát
lại âm thanh, hình ảnh, video dưới nhiều định dạng phổ biện như MPEG4,
H.264, MP3, AAC, AMR, JPG và PNG
 LibWebCore: trình duyệt web hiện đại hổ trợ cả trình duyệt web của
Android và các trình duyệt web nhúng khác.
 3D Libraries: dựa trên OpenGL ES 1.0 API, dùng để tăng tốc phần cứng 3D
(nếu có) hoặc để tối ưu hóa các phần mềm 3D.
 SQLite: cở sở dữ liệu dùng cho tất cả các ứng dụng
Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android
SVTH: Hứa Bách Trung – Lớp 11TLT Trang 6
I.2.4. Android Runtime

thông tin và đáp lại hành động của người dùng. Khi người dùng chọn một ứng dụng từ
màn hình chủ hoặc trình khởi chạy ứng dụng thì một Activity được khởi động. Activity
trong Android cũng tương tự như một Form trong các ứng dụng destop truyền thống.
 Vòng đời của ứng dụng Android
Activity là thành phần quan trọng nhất và đóng vai trò chinh 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.
Các trạng thái trong Activity:
- Running: Activity đang hiện thị trên màn hình
- Paused: Activity vẫn hiện thị nhưng không thể tương tác
- Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop
Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android
SVTH: Hứa Bách Trung – Lớp 11TLT Trang 8
- 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 được khởi
động lại hoàn toàn và phục hồi lại trạng thái trước đó.

Hình 13: Vòng đời của Activity
- Service
Service là một ứng dụng component có thể thực hiện các hoạt động long-running
trong background và không cung cấp một giao diện người dùng. Một ứng dụng
component có thể bắt đầu một service và nó tiếp tục chạy trong background thậm chí
nếu người dùng chuyển cho ứng dụng khác. Ngoài ra, một component có thể liên kết
cho một dịch vụ tương tác với nó và thậm chí thực hiện giao tiếp InterProcess. Ví dụ,
một dịch vụ có thể xử lý giao diện mạng, nghe nhạc, thực hiện các tập tin I/O hoặc
tương tác với một provider content, tất cả từ background.

phải cung cấp một giao diện đó khách hàng sử dụng để giao tiếp với dịch vụ, bằng cách
trả lại một IBinher. Bạn luôn luôn phải triển khai phương pháp này, nhưng bạn không
muốn cho phép liên kết, sau đó bạn nên trở về null.
- onCreate()
Hệ thống gọi method này khi service đầu tiên tạo ra, để thực hiện các thủ
tục thiết lập một lần (trước khi cuộc gọi hoặc là onStartCommand() hoặc onBind()).
Nếu service đang chạy, phương pháo này không được gọi.
- onDestroy()
Hệ thống gọi method này khi service không còn được sư dụng và đang
được bị phá hũy. Service của bạn nền triển khai điều này cho làm sạch bất cứ nguồn tài
nguyên như chủ đề, người nghe đa đăng ký, nhận v v. Đây là các cuộc gọi qua dịch
vụ này nhận được.
- Content Provider
Có thể coi như là một máy chủ cơ sở dữ liệu. Công việc của nó là quản lý truy cập
và chia sẻ dữ liệu đang tồn tại, chẳng hạn như một cơ sở dữ liệu SQLite. Nó có thể được
cấu hình để cho phép các ứng dụng khác truy xuất và ngược lại. Nếu ứng dụng rất đơn
giản thì không nhất thiết phải tạo ra một trình cung cấp nội dung.
Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android
SVTH: Hứa Bách Trung – Lớp 11TLT Trang 10
Content Provider giúp tách biệt tầng ứng dụng ra khỏi tầng dữ liệu. Nó có đầy đủ
các quyền điều khiển và được truy xuất thông qua mô hình URI đơn giản như là có thể
thêm, xóa, cập nhập dữ liệu của các ứng dụng.
- Broadcats Receiver
Bằng cách tạo và đăng ký một Broadcast Receiver, ứng dụng Android có thể lắng
nghe toàn bộ các Intent theo một chuẩn cụ thể được chỉ định. Các Broadcast Receiver
sẽ chạy ứng dụng một cách tự động để đáp ứng một Intent gửi đến, hay xữ lý một phần
từ dữ liệu hoặc đáp ứng một sự kiện, chẳng hạn như nhận một văn bản thông báo.
Broadcast Receiver chỉ có duy nhất một phương thức onReceiver():
 Khi có sự kiện mà Broadcast Receiver đã đăng ký nhận được phát đi, thì
phương thức onReceiver() của Broadcats Receiver đó sẽ được gọi.

thiết bị di động sử dụng nền tảng Android thông qua ngôn ngữ lập trình Java. SDK gồm
có:
 Android.jar: tập tin lưu trữ Java chứa toàn bộ các lớp SDK Android cần thiết
để xây dựng ứng dụng.
 Document.html và thư mục docs: tài liệu SDK được cung cấp tại chỗ và trên
web, chủ yếu nó ở dạng JavaDocs, tạo điều kiện dễ dàng cho việc hướng dẫn
trong nhiều gói SDK. Tài liệu cũng gồm cả hướng dẫn phát triển mức cao và
các liên kết đến cộng đồng Android rộng rãi.
 Thư mục sample (các ví dụ mẫu): thư mục con samples chứa bộ mã nguồn
đầy đủ dùng cho một loạt các ứng dụng, gồm cả ApiDemo, nó sử dụng nhiều
API. Ứng dụng mẫu là một nơi khám phá tuyệt vời khi bắt đầu phát triển ứng
dụng Android.
 Thư mục tools (các công cụ): chứa toàn bộ các công cụ dòng lệnh để xây
dựng nên các ứng dụng Android. Công cụ được dùng phổ biến và hữu ích
nhất là tiện ích adb (Android Debug Bridge).
 Usb__driver: thư mục chứa các trình điều khiển cần thiết để kết nối môi
trường phát triển với một thiết bị có khả năng chạy Android, chẳng hạn như
G1 hay điện thoại đã được phát triển Android Dev 1. Các tập tin này là đòi
hỏi duy nhất đối với các nhà phát triển đang sử dụng nền Windows.
III. Các thành phần giao diện trong Android
III.1. View
Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tường
View và ViewGroup. Có nhiều kiểu View và ViewGroup. Mỗi một kiểu là một hậu duệ
của classs View và tất cả các kiểu đó được gọi là các Widget.
Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trình bày vị trí,
background, kích thước, lề… Tất cả những thuộc tính chung này được thể hiện hết ở
trong đối tượng View
Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc phân
cấp như hình dưới. Một screen là một tập hợp các Layout và các widget được bố trí có
Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android

độ của các đối tượng luôn cố định và sẽ không được điều chỉnh được tỷ lệ khoảng cách
Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android
SVTH: Hứa Bách Trung – Lớp 11TLT Trang 14
giữa các đối tượng. Khi chuyển ứng dụng sang một màn hình có kích thước với màn
hình thiết kế ban đầu thì vị trí của các đối tượng sẻ không còn chính xác như ban đầu.
III.2.4. RetaliveLayout
Layout này cho phép bố trí các widget theo mộ trục đối xứng ngang hoặc dọc. Để
đặt được đúng vị trí thì các widget cần được xác định một mối ràng buộc nào đó với các
widget khác. Các ràng buộc này là các ràng buộc trái, phải, trên, dưới so với một widget
hoặc so với layout parent. Dựa vào những mội ràng buộc đó mà RetaliveLayout cũng
không phụ thuộc vào kích thước của screen thiết bị. Ngoài ra, nó còn có ưu điểm là giúp
tiết kiệm layout sử dụng nhằm mục địch giảm lượng tài nguyên sử dụng khi load đồng
thời đẩy nhanh quá trình xử lý.

Hình 17: Bố trí widget trong RelativeLayout
III.2.5. TableLayout
Layout này được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc cần bố trí các
widget theo các row và column. Chẳng hạn như, giao diện của một chiếc máy tính đơn
giản hoặc danh sách dữ liệu.
Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android
SVTH: Hứa Bách Trung – Lớp 11TLT Trang 15

Hình 18: Bố trí widget trong TableLayout
III.3. Button
Sở dĩ widget button được giới thiệu đầu tiên trong số các widget khác là vì đây là
đối tượng có thể nói là được dùng nhiều nhất trong hầu hết các ứng dụng Android.
Để thiết kế giao diện với một button ta có 2 cách như sau:
 Thiết kế bằng XML
<Button
android:layout_width="wrap_content"

III.4. ImageButton
Cũng tương tự như Button, ImageButton chỉ có thêm một thuộc tính android:src =
”@drawable/icon” để thêm hình ảnh vào và không có thẻ text
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cmdButton1"
android:src="@drawable/icon"
android:onClick="touchMe"/>

Hình 19: ImageButton
III.5. ImageView
Được dùng để thể hiện một hình ảnh. Nó cũng giống như ImageButton, chỉ khác là
không có hình dáng của một cái button.
Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android
SVTH: Hứa Bách Trung – Lớp 11TLT Trang 17
Code:
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawble.icon)

Hình 20: ImageView và ImageButton
III.6. ListView
Được sử dụng để thể hiện một danh sách các thông tin theo từng cell. Mỗi cell thông
thường được load lên từ một file XML đã được cố định trên đó số lượng thông tin và
loại thông tin cần được thể hiện.
Để thực hiện được một list thông tin lên một screen thì cần phải có 3 yếu tố chính:
 Data Source: Data Source có thể là một ArrayList, HashMap hoặc bất kỳ
một cấu trúc dữ liệu kiểu danh sách nào.
 Adapter: Adapter là một class trung gian giúp ánh xạ dữ liệu trong Data
Source vào đúng vị trí hiển thị trong ListView. Chẳng hạn, trong Data Source


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status