Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android LỜI CẢM ƠN Tôi xin chân thành cảm ơn các Thầy Cô trong Khoa Tin, trường Đại học Sư phạm Đại Học Đà Nẵng đã truyền đạt nhữ
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM
Giảng viên hướng dẫn: PGS.TS Lê Văn Sơn Sinh viên thực hiện: Trần Thị Thu Thủy
Đà Nẵng – 2014
1 1.1.1
Trang 2Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn các Thầy Cô trong Khoa Tin, trường Đại học
Sư phạm Đại Học Đà Nẵng đã truyền đạt những kiến thức quý báu cho tôi trong những năm học vừa qua và nhất là đã tạo điều kiện thuận lợi cho chúng tôi học tập, thực hiện đề tài tốt nghiệp này
Đặc biệt,tôi xin chân thành cảm ơn thầy Lê Văn Sơn đã trực tiếp, tận tình giúp đỡ và hướng dẫn tôi trong suốt thời gian thực hiện đề tài
Để có được kết quả như ngày hôm nay,chúng tôi rất biết ơn gia đình Ông
Bà, Cha Mẹ và những người thân trong gia đình đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất về vật chất lẫn tinh thần trong suốt quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này
Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Tôi rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý Thầy Cô và các bạn
Một lần nữa xin chân thành cám ơn!
Trang 3Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
LỜI CAM ĐOAN
Tôi xin cam đoan :
1 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 Lê Văn Sơn
2 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ố
3 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
Trần Thị Thu Thủy
Trang 4Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
MỤC LỤC
DANH MỤC HÌNH ẢNH 6
DANH MỤC TỪ VIẾT TẮT 7
DANH MỤC BẢNG BIỂU 8
MỞ ĐẦU 9
1 Tính cấp thiết của đề tài 9
2 Mục đích của đề tài 9
3 Phương pháp nghiên cứu 10
CHƯƠNG 1 - TỔNG QUAN VỀ LẬP TRÌNH ANDROID 11
1.1 Tìm hiểu về hệ điều hành Android 11
1.2 Kiến trúc 12
1.2.1 Tầng ứng dụng 12
1.2.2 Tầng ứng dụng Framework 12
1.2.3 Tầng thư viện 13
1.2.4 Tầng Android Runtime 14
1.2.5 Tầng Linux Kernel 14
1.3 Kiến thức, công cụ cần thiết để phát triển ứng dụng android 15
1.3.1 Kiến thức cần có 15
1.3.2 Công cụ 15
1.4 Tìm hiểu các thành phần của một ứng dụng android 15
1.5 Tìm hiểu các thành phần của một project android 21
1.6 Tìm hiểu các dịch vụ hỗ trợ android 22
1.6.1 Google Map và Google Map API 22
1.6.2 Hệ quản trị CSDL SQLite 24
1.7 Restful web service 25
Trang 5Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
1.7.1 Web Service 25
1.7.2 Restful Web Service 26
CHƯƠNG 2 - PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28
2.1 Mô tả bài toán 28
2.2 Phân tích hiện trạng du lịch Việt Nam 28
2.2.1 Tổng quan 28
2.2.2 Tiềm năng du lịch Việt Nam 29
2.2.3 Vấn đề nan giải 29
2.3 Phân tích yêu cầu bài toán 30
2.3.1 Người sử dụng 30
2.3.2 Kho dữ liệu 31
2.3.3 Công nghệ 32
2.4 Phân tích khả thi 32
2.4.1 Tính khả dụng 32
2.4.2 Chi phí phát triển 33
2.5 Yêu cầu chức năng 33
2.6 Biểu đồ sử dụng 34
2.6.1 Mức 0 34
2.6.2 Mức 1 34
CHƯƠNG 3 – PHÁT TRIỂN ỨNG DỤNG HỖ TRỢ DU LỊCH 42
3.1 Xây dựng cơ sở dữ liệu 42
3.1.1 Bảng dữ liệu 42
3.1.2 Mô hình quan hệ dữ liệu 50
3.2 Giao diện của ứng dụng 51
3.2.1 Giao diện chính 51
3.2.2 Giao diện giới thiệu về Việt Nam 52
3.2.3 Giao diện thành phô 54
Trang 6Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
3.2.4 Giao diện đánh dấu địa điểm 57
3.2.5 Giao diện địa danh 58
3.2.6 Giao diện khách sạn 60
3.2.7 Giao diện đăng nhập facebook 61
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 63
Trang 7Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
DANH MỤC HÌNH ẢNH
Hình 1: Kiến trúc Android 12
Hình 2: Mô hình hợp tác giữa máy ảo Dalvik và Navite code 14
Hình 3: Lược đồ vòng đời của Activity 17
Hình 4: Sử dụng Intent để trao đổi thông tin giữa hai chương trình 17
Hình 5: Lược đồ vòng đời của Service 19
Hình 6: Ví dụ mô hình dữ liệu thông tin số điện thoại trong máy 20
Hình 7: Các thành phần của URI 20
Hình 8: Cấu trúc thư mục và tệp tin của dự án phần mềm Android trên Eclipse 21
Hình 9: Mô hình Web Service 25
Hình 10: Trao đổi client server 26
Hình 11: Restful web service 27
Hình 12: Use case tổng quát 34
Hình 13: Use case xem danh sách nội dung 35
Hình 14: Use case xem chi tiết nội dung 36
Hình 15: Use case tìm kiếm theo từ khóa 37
Hình 16: Use case tra cứu địa điểm gần 37
Hình 17: Use quản lý nội dung dữ liệu 38
Hình 18: Use case duyệt hình ảnh 39
Hình 19: Use case xem thư viện hình ảnh 39
Hình 20: Use case gửi bình luận 40
Hình 21: Use case chia sẻ hình ảnh 40
Hình 22: Use case xem thông tin liên lạc 41
Hình 23: Use case đánh dấu địa điểm 41
Hình 24: Mô hình quan hệ dữ liệu 50
Hình 25: Giao diện chính 51
Hình 26: Giao diện Việt Nam 52
Hình 27: Giao diện danh mục 53
Hình 28: Giao diện danh mục thành phố 54
Hình 29: Giao diện thành phố 55
Hình 30: Giao diện hình ảnh 56
Hình 31: Giao diện đánh dấu 57
Hình 32: Giao diện địa danh 58
Hình 33: Giao diện khách sạn 60
Hình 34: Giao diện đăng nhập facebook 61
Trang 8Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
SMS Short Message Services
UNESCO United Nations Educational Scientific and Cultural Organization
Trang 9Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
DANH MỤC BẢNG BIỂU
Bảng 1 : Bảng các chức năng 33
Bảng 2: Bảng User 42
Bảng 3 : Bảng City 43
Bảng 4 : Bảng Destination 44
Bảng 5 : Bảng Restaurant 45
Bảng 6 : Bảng Hotel 47
Bảng 7 : Bảng Review 47
Bảng 8 : Bảng Gallery 48
Bảng 9 : Bảng Image 49
Bảng 10 :Bảng ShareImage 49
Trang 10Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
MỞ ĐẦU
1 Tính cấp thiết của đề tài
Ngày nay, khi cuộc sống vật chất đã được đảm bảo thì con người sẽ tìm tới các dịch
vụ nhằm nâng cao đời sống tinh thần và vật chất.Sự phát triển của các ngành công nghiệp dịch vụ không khỏi được đẩy mạnh, trong đó du lịch dịch vụ là một ngành mang lại nhiều tiềm năng trong công cuộc phát triển bền vững của một quốc gia
Nhu cầu du lịch của mọi người đã trở thành phổ biến Ngoài các tua du lịch do các công ty cung cấp thì ngày nay cũng đã xuất hiện nhiều các hình thái du lịch cá nhân, mang tích chất tự do Đối với nước ngoài thì loại hình này đã được phát triển rất lâu, người du lịch bỏ ra chi phí thấp cho một chuyến du lịch và họ sẽ được trải nghiệm hoàn toàn theo cách riêng của mình Đối với nước ta, thì loại hình này đang giai đoạn phát triển, việc nắm bắt loại hình này sẽ giúp cho các địa phương nâng cao phát triển các ngành dịch vụ du lịch và mang lại nguồn lợi to lớn cũng như quảng bá hình ảnh của đất nước
Đồng thờ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 Đối với người du lịch thì một chiếc điện thoại sẽ hỗ trợ họ rất nhiều trong chuyến du lịch, nhất là những người
du lịch tự do ( không theo các tua du lịch ) Điện thoại giúp họ tìm đường, xác định vị trí, ghi lại những hình ảnh đẹp, chia sẻ cho bạn bè, người thân và còn nhiều lợi ích khác mang lại cho người dùng
Nhằm phục vụ cho các đối tượng du lịch cá nhân, hành trình không theo các tour du lịch do các công ty lữ hành cung cấp và sự kết hợp công nghệ phát triển của điện thoại
thông minh thì , ý tưởng của tôi đưa ra là xây dựng phát triển ứng dụng “Hỗ trợ du lịch Việt Nam” trên nền tảng Android
2 Mục đích của đề tài
Đề tài nhằm nghiên cứu những vấn đề sau:
- Tìm hiểu về lập trình trên điện thoại di động Android
- Vận dụng được kiến thức đã được học và tìm hiểu được vào việc phát triển một ứng dụng hoàn chỉnh chạy trên hệ điều hành Android
- Hoàn thiện hơn kĩ năng lập trình của bản thân
Trang 11Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
3 Phương pháp nghiên cứu
- Sử dụng các phương pháp phân tích, thống kê
- Sử dụng những kĩ thuật lập trình để xây dựng ứng dụng “Hỗ trợ du lịch Việt Nam” trên hệ điều hành android
Trang 12Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
CHƯƠNG 1 - TỔNG QUAN VỀ LẬP TRÌNH ANDROID
1.1 Tìm hiểu về hệ điều hành Android
Hiện nay các nền tảng di động đang phát triển rất đa dạng trong đó có thể kể đến như: IOS, Android, WindowsPhone, Blackbery, Symbyan Trong đó, Android là một nền tảng khả thi và thú vị cho các nhà phát triển
Các thành phần chính của hệ điều hảnh android:
App Drawer: Đây là một thành phần hết sức quan trọng của Android với vai
trò chính là liệt kê tất cả những ứng dụng hiện có trong thiết bị của bạn
Thanh trạng thái: Thanh thông báo trạng thái là đối tượng phía trên cùng của
màn hình, nơi đặt các biểu tượng pin, đồng hồ,
Widget: Khái niệm widget có nghĩa là một thiết bị nhỏ, đính kèm theo một
dụng cụ nào đó Trên Android, bạn có thể hiểu widget chính là những ứng dụng nhỏ gắn trên màn hình chính của Launcher
Lock Screen: Lock Screen là một thành phần thuộc hệ thống của Android
Lock Screen là nơi mà bạn cần kéo thanh trượt (hoặc các động tác tương tự) để
mở khóa máy và bắt đầu sử dụng [1]
Một số thành phần khác: Ngoài các thành phần cơ bản của hệ điều hành
Android được Google đóng gói khi phát hành thì một số tính năng khác cũng được thêm vào tùy theo hãng sản xuất thiết bị chẳng hạn như Flash, Launcher riêng…
Trang 13Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
1.2.2 Tầng ứng dụng Framework
Bằng cách cung cấp một nền tảng phát triển mở,Android cung cấp cho các nha phát triển khả năng để xây dựng các ứng dụng vô cùng phong phú và sáng tạo Các nhà phát triển đƣợc miễn phí để tận dụng lợi thế của các thiết bị phần cứng,thông tin địa điểm truy cập,dịch vụ chạy nền,thiết lập hệ thống báo động,thêm các thông báo đến các thanh trạng thái và nhiều, nhiều hơn nữa
Các nhà phát triển có thể truy cập vào các API cùng một khuôn khổ đƣợc sử dụng bởi các ứng dụng lõi.Kiến trúc ứng dụng đƣợc thiết kế để đơn giản hóa việc tái sử dụng
Trang 14Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
các thành phần; bất kỳ ứng dụng có thể xuất bản các khả năng của mình và ứng dụng nào khác sau đó có thể làm cho việc sử dụng những khả năng (tùy thuộc vào chế bảo đảm thi hành theo khuôn khổ).Cơ chế này cũng cho phép các thành phần được thay thế bởi người sử dụng
Nằm bên dưới tất cả các ứng dụng là một tập hợp các dịch vụ và hệ thống,bao gồm
Một tập phong phú và mở rộng có thể được sử dụng để xây dựng một ứng dụng,bao gồm các danh sách,hộp văn bản,các nút và thậm chí một trình duyệt web nhúng
Nhà cung cấp nội dung cho phép các ứng dụng để truy cập dữ liệu từ các ứng dụng khác như Contacts hoặc chia sẻ dữ liệu của riêng mình
Một quản lý tài nguyên,cung cấp quyền truy cập vào tài nguyên phi mã như
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
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
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
Trang 15Xây dựng ứng dụng hỗ trợ du lịch Việt Nam trên nền tảng Android
SQLite : một kho lưu trữ dữ liệu manh mẽ và nhẹ quan hệ cơ sở dữ liệu có sẵn cho tất cả các ứng dụng
1.2.4 Tầng Android Runtime
Hệ điều hành Android tích hợp sẳn một tập hợp các thư viện cốt lõi 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 Mọi ứng dụng của Android chạy trên một tiến trình của riêng nó cùng với một thể hiện của máy
ảo Dalvik Máy ảo Dalvik thực tế là một biến thể của máy ảo Java được sửa đổi, bổ sung các công nghệ đặc trưng của thiết bị di động Nó được xây dựng với mục đích làm cho các thiết bị di động có thể chạy nhiều máy ảo một cách hiệu quả Trước khi thực thi, bất kì ứng dụng Android nào cũng được convert thành file thực thi với định dạng nén Dalvik Executable (.dex) Định dạng này được thiết kế để phù hợp với các thiết bị hạn chế về bộ nhớ cũng như tốc độ xử lý Ngoài ra máy ảo Dalvik sử dụng bộ nhân Linux để cung cấp các tính năng như thread, low-level memory management[2]
1.2.5 Tầng Linux Kernel
Hệ điều hành Android được xây dựng trên bộ nhân Linux 2.6 cho những dịch vụ
hệ thống cốt lõi như: security, memory management, process management, network stack, driver model Bộ nhân này làm nhiệm vụ như một lớp trung gian kết nối phần cứng thiết bị và phần ứng dụng
Dưới đây là mô hình hợp tác giữa máy ảo Dalvik và Navite code:
Hình 2: Mô hình hợp tác giữa máy ảo Dalvik và Navite code
JNI: Java Native Interface (Tương tự khái niệm Application Programming Interface)