XÂY DỰNG ỨNG DỤNG BẢN ĐỒ ĐỊA ĐIỂM DU LỊCH HỘI AN TRÊN ANDROID - Full 10 điểm

53 0 0
XÂY DỰNG ỨNG DỤNG BẢN ĐỒ ĐỊA ĐIỂM DU LỊCH HỘI AN TRÊN ANDROID - Full 10 điểm

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

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

Thông tin tài liệu

Trang i LỜI CẢM ƠN Trong thời đại số hiện nay, thị trường điện thoại di động, đặc biệt là các dòng điện thoại thông minh ngày càng phát triển và phổ biến Trong xu hướng đó điện thoại thông minh dần thay thế cho PC trong giải quyết các yêu cầu công việc, các hoạt động giải trí thông qua các ứng dụng trên nền tảng di dộng Hiện nay hầu hết các dòng điện thoại đều tích hợp ứng dụng bản đồ, nằm giúp chúng ta thuận tiện trong việc tra cứu địa điểm, tìm kiếm đường đi, hay xác định vị trí của một người dùng hoặc là một người dùng nào khác thông qua hệ thống định vị toàn cầu GPS Du lịch hiện nay là một ngành rất phát triển tại Việt Nam, đặc biệt là các địa danh nổi tiếng như Vịnh Hạ Long, Huế, Hội An…vv Ngày càng thu hút lượng khách tới tham quan du lịch Tuy nhiên các một hạn chế là du khách thường gặp khó khăn trong việc tìm các địa điểm tham quan tại một địa điểm nào đó, cũng như một số thông tin về các địa điểm đó Việc cầm theo bản đồ đối với nhiều du khách có thể là bất tiện Vì vậy em muốn phát triển và xây dựng một ứng dụng bản đồ du lịch trong một địa điểm du lịch, nhằm cung cấp thông tin địa điểm một cách cụ thể, chính xác tạo thuận lợi cho khách du lịch thông qua nền tảng di động Android hiện đang rất phổ biến trên hầu hết các dòng điện thoại thông minh hiện n ay Do thời gian hạn chế nên đồ án không hoàn thành hết các chức năng như dự định ban đầu đ đặt ra Trong quá trình thực hiện thì không thể tránh kh i nh ng sai sót, mong thầy cô và các bạn góp ý để em hoàn thiện tốt hơn Trong thời gian làm đồ án tuy gặp không ít khó khăn nhưng được sự giúp đỡ tận tình của thầy cô trong bộ môn lập trình – Khoa Khoa Học Máy Tính đ giúp em hoàn thành đồ án này Em xin chân thành cảm ơn giảng viên Võ Hoàng Phương Dung - người trực tiếp hướng dẫn tận tình và giúp đỡ em hoành thành đồ án Một lần n a em cũng xin gửi lời cảm ơn chân thành tới các thấy cô trong khoa nh ng người đ cung cấp nền tảng kiến thức để em hoàn thành đồ án này Em xin chân thành cảm ơn! Trang ii MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC TỪ VIẾT TẮT iv DANH MỤC HÌNH ẢNH v Chƣơng 1 CHƢƠNG MỞ ĐẦU 1 1 1 Lý do chọn đề tài 1 1 2 Mục tiêu và nhiệm vụ 1 1 3 Đối tƣợng nghiên cứu và phạm vi hệ thống 2 1 4 Phƣơng pháp nghiên cứu 2 1 5 Ý nghĩa thực tiễn 2 Chƣơng 2 CƠ SỞ LÝ THUYẾT 3 2 1 Giới thiệu về Android 3 2 1 1 Khái niệm về Android 3 2 1 2 Tổng quan cấu trúc của Android 4 2 1 3 Sơ lược các phiên bản Android 5 2 1 4 Các thành phần cơ bản của ứng dụng Android 5 2 2 L ậ p trình trên h ệ điề u hành Android 8 2 2 1 Ngôn ng ữ Java 8 2 2 2 JSON 10 2 2 3 Ngôn ngữ XML 11 2 2 4 Ngôn ngữ PHP 12 2 3 Các dịch vụ của Google với lập trình MapView 13 2 3 1 Google Maps 13 2 3 2 Google Places API 13 2 3 3 Google Directions API 13 2 3 4 Google Geocoding API 13 2 4 Máy ảo Dalvik và Android SDK 13 2 4 1 Máy ảo Dalvik 13 2 4 2 Android SDK 14 2 4 3 Android Emulator 15 Chƣơng 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 16 Trang iii 3 1 Mô tả hệ thống 16 3 1 1 Yêu cầu chức năng 16 3 1 2 Yêu cầu phi chức năng 16 3 1 3 Yêu cầu hệ thống 16 3 2 Phân tích thiết kế 16 3 2 1 Mô hình hóa yêu cầu 16 3 2 2 Mô hình hóa khái niệm 19 3 2 3 Mô hình hóa tương tác 21 3 2 4 Mô hình hóa hành vi 28 3 2 5 Thiết kế chi tiết biểu đồ lớp 31 3 2 6 Thiết kế kiến trúc vật lý 31 Chƣơng 4 XÂY DỰNG ỨNG DỤNG 33 4 1 Cách thức xây dựng chƣơng trình 33 4 1 1 Xây dựng chức năng xử lý của WebService 33 4 1 2 Truyền dữ liệu qua các form 34 4 1 3 Truy vấn và lấy dữ liệu từ hệ thống Services của Google 36 4 1 4 Đọc dữ liệu từ file JSON 36 4 1 5 Hiển thị MapView 37 4 1 6 Sử dụng tài nguyên GPS và Internet của hệ thống 38 4 1 7 Đánh dấu vị trí trên MapView 38 4 1 8 Sử dụng Google Directions API để vẽ đường 39 4 2 Giao diện ứng dụng 40 TÀI LIỆU THAM KHẢO vii NHẬN XÉT CỦA GIẢNG VIÊN viii Trang iv DANH MỤC TỪ VIẾT TẮT  API: Application Programming Interface (Giao diện lập trình ứng dụng)  CSDL: Cơ sở d liệu  GPS: Global Positioning System ( Hệ thống định vị toàn cầu )  HD: High- Definition (Truyền hình độ nét cao)  HTML: Hyper Text Markup Languag e (Ngôn ng Đánh dấu Siêu văn bản)  JSON: Java Script Object Notation (Định dạng trao đổi d liệu cực nhẹ)  OPP: Object- Oriented Programming (Lập trình hướng đối tượng)  OHA: Open Handset Alliance (Liên minh thiết bị cầm tay mở rộng)  XML: eXtensible Markup L anguage (Ngôn ng Đánh dấu mở rộng)  SDK: Software Development Kit (Bộ công cụ phát triển phần mềm) Trang v DANH MỤC HÌNH ẢNH Số hiệu hình vẽ Tên hình vẽ Trang Hình 2 1: Logo Android 3 Hình 2 2: Kiến trúc Android 4 Hình 2 3: Chu trình sống của 1 Activity 8 Hình 2 4: Android Emulator 15 Hình 3 1: Biểu đồ trường hợp sử dụng 18 Hình 3 2: Biểu đồ use case cập nhật danh sách địa đi ểm 18 Hình 3 2: Hình 3 2: Biểu đồ use case cập nhật các loại địa điểm 18 Hình 3 4: Biểu đồ use case tìm kiếm các địa điểm 19 Hình 3 5: Các lớp biên 19 Hình 3 6: Các lớp điều khiển 20 Hình 3 7: Các lớp thực thể 20 Hình 3 8 Biểu đồ trình tự mở hệ thống 21 Hình 3 9: Biểu đồ trình tự đóng hệ thống 21 Hình 3 10: Biểu đồ trình tự cập nhật địa điểm 22 Hình 3 11: Biểu đồ trình tự cập nhật các loại địa điểm 22 Hình 3 12: Biểu đồ trình tự tìm kiếm qua webservices 23 Hình 3 13: Biểu đồ trình tự tìm kiếm qua google places 23 Hình 3 14: Biểu đồ trình tự xem vị trí địa điểm 24 Hình 3 15: Biểu đồ cộng tác mở hệ thống 24 Hình 3 16: Biểu đồ cộng tác đóng hệ thống 25 Hình 3 17: Biểu đồ cộng tác cập nhật địa điểm 25 Hình 3 18: Biểu đồ cộng tác cập n hật các loại địa điểm 26 Hình 3 19: Biểu đồ cộng tác tìm kiếm qua webservices 26 Hình 3 20: Biểu đồ cộng tác tìm kiếm qua go ogle places 27 Hình 3 21: Biểu đồ cộng tác xem vị trí địa điểm 27 Hình 3 22: Biểu đồ mô trạng thái mở hệ thống 28 Hình 3 23: Biểu đồ trạng thái cập nhật địa điểm 28 Trang vi Hình 3 24: Biểu đồ trạng thái tìm kiếm địa điểm 28 Hình 3 25: Biểu đồ trạng thái xem vị trí địa điểm 29 Hình 3 26: Biểu đồ hoạt mở hệ thống 29 Hình 3 27: Biểu đồ hoạt động cập nhật địa điểm 29 Hình 3 28 : Biểu đồ hoạt động tìm kiếm 30 Hình 3 29: Biểu đồ hoạt động xem vị trí địa điểm 30 Hình 3 30: Chi tiết biểu đồ lớp 31 Hình 3 31: Biểu đồ thành phần 31 Hình 3 32: Biểu đồ triển khai 32 Hình 4 1: Quá trình xử lý của web services 33 Hình 4 2: Mô hìn h trao đổi d liệu gi a hai Activity 34 Hình 4 3 Cấu trúc của một Intent 35 Hình 4 4: Quá trình truy vấn và lấy d liệu từ hệ thống Services của Google 36 Hình 4 5: Mô hình xác định của một mảng giá trị trong JSON 36 Hình 4 6: Quá trình lấy key Map API 37 Hình 4 7: Quy trình đánh dấu vị trí lên MapView 38 Hình 4 8: Một file JSON trả về các thông tin của Google Direction API 39 Hình 4 9: Giao diện chính của chương trình 40 Hình 4 10: Giao diện danh sách các địa điểm và tìm kiếm 41 Hình 4 11: Kết quả tìm kiếm và hiển thi lên bản đồ 41 Hình 4 12: Vị trí của người dùng với các địa điểm du lịch và nhà hàng 42 Hình 4 13: Vị trí của người dùng với các quán café và khách sạn 42 Hình 4 14: Giao diện vẽ đường đi hiển thị địa chỉ sau khi vẽ 43 Hình 4 15: Kích chọn chia sẻ và giao diện chia sẻ facebook 43 Hình 4 16: Giao diện đăng nhập và tiến hành chia sẻ 44 Hình 4 17: Kết quả chia sẻ trên facebook qua ứng dụng 44 Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 1 Chƣơng 1 CHƢƠNG MỞ ĐẦU 1 1 Lý do chọn đề tài Ngày nay các thiết bị số cầm tay như điện điện thoại di động, điện thoại thông minh, máy tính bảng có rất nhiều trên thị trường Với giá thành ngày càng rẻ và các tiện ích mà nó đem lại, các thiết bị đó giờ dần trở nên phổ biến Có rất nhiều nền tảng được sử dụng để điều hành các thiết bị như iOS , Windows Phone, Android …vv T rong đó Android là một nền tảng điều hành di động được chính nhà phát triển là Google cung cấp mở nguồn m , cùng với đó các thiết bị di động mạnh mẽ với khả năng xử lý các vụ ngày càng nhanh hơn với các bộ vi xử lý khủng là điều kiện để các lập trình viên có thể tiếp cận và tận dụng tối đa nh ng gì mà Android đem lại trên nền tảng các thiết bị với phần cứng ngày càng mạnh mẽ hiện nay Android nhanh chóng trở thành hệ điều hành thu hút nhiều lập trình viên nhất và chiếm một thị phần lớn trong thị trường di động thông minh hiện nay Việc sử dụng các thiết bị số ngoài khả năng hỗ trợ con người trong công việc, giải trí mà còn giúp cho con người tiết kiệm thời gian hơn vào nhiều công việc thực tiễn như giải trí, học tập, du lịch…vv Du lịch hiện nay là một ngành rất phát triển tại Việt Nam, đặc biệt là các địa danh nổi tiếng như Vịnh Hạ Long, Huế, Hội An…vv Ngày càng thu hút lượng khách tới tham quan du lịch Tuy nhiên các một hạn chế là du khách thường gặp khó khăn trong việc tìm các địa điểm tham quan tại một địa điểm nào đó, cũng như một số thông tin về các địa điểm đó Việc cầm theo bản đồ đối với nhiều du khách có thể là bất tiện Vì vậy em muốn phát triển và xây dựng một ứng dụng bản đồ du lịch trong một địa điểm du lịch, nhằm cung cấp thông tin địa điểm một cách cụ thể, chính xác tạo thuận lợi cho khách du lịch thông qua nền tảng di động Android hiện đang rất phổ biến trên hầu hết các dòng điện thoại thông minh hiện nay 1 2 Mục tiêu và nhiệm vụ  Mục tiêu: Tìm hiểu về các công nghệ lập trình cần thiết trên nền tả ng Android để hoàn thành được ứng dụng có thể tìm kiếm hiện thị vị trí các thông tin cần thiết về một địa điểm du lịch o Hiểu về nguyên lý hoạt động của Android, các thành phần của hệ thống cũng như của một ứng dụng thực thi trên nền Android Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 2 o Tìm hiểu và áp dụng được các công nghệ lập trình trên nền Android như ngôn ng JAVA, tương tác với các tài nguyên hệ thống (GPS,Internet, TouchScreen), sử dụng các dịch vụ của Google như Google Map, Google Places API, Google Directions API, Google Geocoding API o Tìm hiểu về xây dưng một dịch vụ web trên nền tảng php sử dụng hệ cơ sở d liệu MySQL  Nhiệm vụ: Đọc các tài liệu liên quan về bộ thư viện lập trình trên nền Android Tìm hiểu các dịch vụ liên quan đến ứng dụng 1 3 Đối tƣợng nghiên cứu và phạm vi hệ thống  Đối tượng : o Ngôn ng JAVA, PHP, JSON, XML o Hệ cơ sở d liệu MySQL o Công cụ Android SDK & Eclipse o Hệ điều hành và tài nguyên hệ thống Android o Các dịch vụ của google như Google Map, Google Places API, Google Directions API, Google Geocoding API  Phạm vi: Đề tài dừng lại ở khuôn khổ hiện thị lên bản đồ tìm kiếm các địa điểm và thông tin trong phạm vi nh của thành phố Hội An Sử dụng mapview để tìm kiếm và dẫn đường cho người dùng Ứng dụng được viết trên nền tảng Android 2 2 1 4 Phƣơng pháp nghiên cứu Đọc tham khảo các liệu trên mạng, các sách viết về Android và tham khảo qua giáo viên hướng dẫn 1 5 Ý nghĩa thực tiễn Chương trình có thể áp dụng vào trong cuộc sống, sử dụng để tìm kiếm hiển thị các thống tin về địa điểm du lịch dành cho các du khách Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 3 Chƣơng 2 CƠ SỞ LÝ THUYẾT 2 1 Giới thiệu về Android 2 1 1 Khái niệm về Android Hình 2 1: Logo Android Android là hệ điều hành trên điện thoại di động ( và hiện nay là cả trên một số đầu phát HD, HD player) phát triển bởi Google và dựa trên nền tảng Linux Trước đây, Android được phát triển bởi công ty liên hợp Android ( sau đó được Google mua lại vào năm 2005) Theo NPD, thiết bị di động sử dụng hệ điều hành Android bán được tại Mỹ trong quý II năm 2010 xếp vị trí đầu tiên với 33%, thứ 2 là BB os với 28% và iOS ở vị trí thứ 3 với 22% Android có một cộng đồng nh ng nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình Hiện tại có khoảng 70,000 ứng dụng cho Android và vào khoảng 100,000 ứng dụng đ được đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2 Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ng Java Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay m nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di động cho tương lai Google công bố hầu hết các m ngồn của Android theo bản cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng m , 3 triệu dòng XML, 2 8 triệu dòng m C, 2 1 triệu m Java và 1 75 triệu dòng m C++ Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 4 2 1 2 Tổng quan cấu trúc của Android Android bao gồm ba thành phần 1 M ộ t h ệ đi ề u hành m ở , mi ễ n phí cho các thi ế t b ị di d ộ ng 2 M ộ t n ề n t ả ng mã ngu ồ n m ở cho phát tri ể n các ứ ng d ụ ng 3 Thi ế t b ị ch ạ y h ệ đi ề u hành Android và các ứ ng d ụ ng Android Một cách chi tiết Android bao gồm các thành phần quan trọng sau: 1 M ộ t thi ế t k ế ph ầ n c ứ ng cho thi ế t b ị di đ ộ ng h ỗ tr ợ b ộ ph ầ n m ề m 2 M ộ t nhân viên đi ề u hành Linux cung c ấ p giao di ệ n m ứ c th ấ p v ớ i ph ầ n c ứ ng, qu ả n lý b ộ nh ớ và ki ể m soát ti ế n trình T ấ t c ả đ ề u t ố i ưu h óa cho thi ệ t b ị di đ ộ ng 3 Thư vi ệ n mã ngu ồ n m ở cho phát tri ể n ứ ng d ụ ng bao g ồ m SQLite, Webkit, OpenGL và qu ả n lí đa phương ti ệ n 4 M ộ t h ệ th ố ng th ự c thi và lưu tr cho ứ ng d ụ ng Android bao g ồ m máy ả o Dalvik và các thư vi ệ n c ở b ả n cung c ấ p ch ứ c năng đ ặ c thù ch o Android H ệ th ố ng th ụ c thi đư ợ c các thi ế t k ế nh g ọ n và hi ệ u qu ả khi s ử d ụ ng trên các thi ế t b ị di đ ộ ng 5 M ộ t ki ế n trúc ứ ng d ụ ng cung c ấ p các d ị ch v ụ h ệ th ố ng cho t ầ ng ứ ng d ụ ng bao g ồ m qu ả n lý c ử a s ổ , qu ả n lý v ị trí, cung c ấ p n ộ i dung và các c ả m bi ế n 6 M ộ t s ố ki ế n trúc giao di ệ n ngư ờ i dùng đ ể lưu tr và ch ạ y các ứ ng d ụ ng 7 M ộ t s ố ứ ng d ụ ng đư ợ c cài s ẵ n coi như m ộ t ph ầ n c ủ a b ộ ứ ng d ụ ng 8 M ộ t b ộ phát tri ể n ứ ng d ụ ng bao g ồ m các công c ụ và tài li ệ u Hình 2 2: Kiến trúc Android Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 5 2 1 3 Sơ lƣợc các phiên bản Android Androi d là một nền tảng mới và phát triển nhanh Các phiên bản thông thường được phát hành sau khoảng sáu tháng Sau đây là danh sách các phiên bản chính và sự thay đổi lớn trong mỗi phiên bản Android  OHA giới thiệu Android (5 -11-2007)  Phát hành SDK (12-11-2007)  Apple pie Android 1 0 (23/09/2008) : Phát hành phiên bản Android 1 0 trên điện thoại Android đầu tiên – HTC Dream (G1)  Banana Bread- Android 1 1 (9-2- 2009): Phát hành phiên bản cập nhật 1 1 riêng cho T-Mobie G1  Cupcake - Android 1 5 (30/4/2009)  Donut - Android 1 6 (15/9/2009)  Éclair - Android 2 0 (26/10/2009)  Froyo - Android 2 2 (20/5/2010)  Gingerbear - Android 2 3 (6/12/2010)  Honeycomb - Android 3 0 (22/2/2011)  Ice Cream Sandwich 4 0 (16/12/2011)  Jelly Bean – Android 4 1 (9/7/2012)  Jelly Bean - Andro id 4 2 (13/11/2012) 2 1 4 Các thành phần cơ bản của ứng dụng Android Ứng dụng Android bao gồm nhiều thành phần liên kết với nhau được giới hạn trong kiến trúc ứng dụng Kiến trúc ứng dụng mô tả chi tiết mỗi thành phần và sự tương tác gi a các thành phần này cũng như siêu d liệu về yêu cầu phần cứng Các thành phần sau đây tạo nên một ứng dụng Android:  Activity: là l ớ p th ể hi ệ n ứ ng d ụ ng M ỗ i màn hình trong ứ ng d ụ ng là m ộ t m ở r ộ ng c ủ a l ớ p Activity Các Activity s ử d ụ ng các View t ạ o thành giao di ệ n đ ồ h ọ a tương tác ngư ờ i dùng đ ể th ể h i ệ n thông tin và ph ả n h ồ i hành đ ộ ng c ủ a ngư ờ i dùng  Service: là thành ph ầ n ch ạ y ẩ n, c ậ p nh ậ t ngu ồ n d li ệ u và th ể hi ể n các Activity, kích ho ạ t các Notification Các Service thư ờ ng th ự c hi ệ n x ử lí thông thư ờ ng như ti ế p t ụ c Activity sau khi các Activity này không ho ạ t đ ộ ng ho ặ c hi ể n th ị Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 6  Content Provider: là thành ph ầ n lưu tr d li ệ u chia s ẻ Content Provider qu ả n lí và chia s ẻ c ở s ở d li ệ u c ủ a ứ ng d ụ ng Chúng đư ợ c coi như là phương ti ệ n chia s ẻ d li ệ u gi a các ứ ng d ụ ng  Intent: là c ấ u trúc truy ề n thông đ i ệ p gi a các ứ ng d ụ ng Chúng ta có th ể s ử d ụ ng Intent đ ể truy ề n m ộ t thông tin t ớ i toàn h ệ th ố ng hay t ớ i Activity hay Service đ ị nh trư ớ c đ ể th ự c thi m ộ t ho ạ t đ ộ ng H ệ th ố ng sau đó s ẽ xác đ ị nh đ ố i tư ợ ng nào s ẽ th ự c hi ệ n các ho ạ t đ ộ ng phù h ợ p  Broadcast Recei ver: là nơi nhậ n các Intent Chúng ta có th ể t ự t ạ o m ộ t Broadcast Rece iver để ứ ng d ụ ng có th ể nh ận đượ c các Intent phù h ợ p v ớ i b ộ l ọc đặt trướ c Broadcast Receiver t ự độ ng b ắt đầ u khi ứ ng d ụ ng ph ả n h ồ i v ớ i Intent nh ận đượ c và bi ế n ứ ng d ụ ng tr ở thành hướ ng s ự ki ệ n m ộ t cách hoàn h ả o  Widget: thành ph ầ n tr ự c quan c ủ a ứ ng d ụ ng có th ể them vào màn hình chính Là m ộ t d ạ ng Broadcast Rece iver, Widget cho phép ngườ i dùng t ạ o ra các ứ ng d ụng động, tương tác đượ c nhúng ngay trên màn hình chính  Notification: là thành ph ần thông báo cho ngườ i dùng H ộ p tho ạ i thông báo cho người dùng mà không gián đoạ n các Activity hi ệ n th ời Đây là kĩ thuậ t thông báo cho ngườ i dùng n ằ m trong m ộ t Service hay m ộ t Broadcast Receiver Ví d ụ khi nh ận đượ c m ộ t tin nh ắ n hay cu ộ c g ọi đế n có th ể thông báo cho ngườ i dùng b ằng đèn nháy hay bằng âm thanh… Một ứng dụng không nhất thiết phải có hết các thành phần trên nhưng để có một giao diện người dùng thì ít nhất ứng dụng đó phải có Activity M đ được biên dịch của các thành phần của ứng dụng, tài nguyên liên quan như thư viện, hình ảnh và các d liệu cần thiết khác được đóng gói trong một file apk duy nhất chính là dạng file thực thi của ứng dụng Android Như đ trình bày ở trên, Activity là thành phần quan trọng nhất và đóng vai trò chính trong việc xây dựng ứng dụng Android Hệ điều hành Android quản lí ứng dụng dưới dạng stack: khi một Activity mới được khởi tạo, nó được xếp lên đầu stack và trở thành running activity, các Activity trước đó sẽ bị tạm ngừng và chỉ hoạt động trở lại khi Activity mới được giải phóng  Activity có 4 tr ạ ng thái: o Active (running): Activity đang hi ể n th ị trên màn hình o Pause: Activity v ẫ n hi ể n th ị nhưng không th ể tương tác Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 7 o Stop: Activity b ị thay th ế hoàn toàn b ở i Activity m ớ i s ẽ ti ế n đ ế n tr ạ ng thái stop o Killed: Khi h ệ th ố ng thi ế u b ộ nh ớ , nó s ẽ gi ả i phóng các ti ế n trình theo nguyên t ắc ưu tiên Các Activity ở tr ạ ng thái stop ho ặ c paused cũng có th ể b ị g ải phóng và khi nó đượ c hi ể n th ị l ạ i thì các Activity này ph ả i kh ởi độ ng l ạ i hoàn toàn và ph ụ c h ồ i tr ạng thái trước đó Tùy từng sự kiện mà các phương thức được gọi để đảm bảo trạng thái các Activity được hoạt động đúng Chi tiết từng phương thức và sự kiện thây đổi trạng thái tương ứng  onCreate(): Phương th ứ c này kh ở i t ạ o Activity Nó có th ể b qua tr ạ ng thái cũ đ ể tr ở l ạ i ho ạ t đ ộ ng Phương th ứ c ti ế p theo luôn là onStart()  onRestart(): Đư ợ c g ọ i sau khi m ộ t Activity mu ố n b ắ t đ ầ u tr ở l ạ i  onStart(): Đư ợ c g ọ i khi ứ ng d ụ ng chuy ể n sang visible nhưng chưa tương tác đư ợ c v ớ i ngư ờ i dùng  onResume(): Activity có tương tác v ớ i ngư ờ i s ử d ụ ng và có th ể nh ậ n thông tin đ ầ u vào Ki ể u ti ế n trình c ủ a ứ ng d ụ ng đư ợ c chuy ể n sang d ạ ng hi ể n th ị  onPause(): N ế u ứ ng d ụ ng không còn tương tác hay thi ế t b ị không ho ạ t đ ộ ng, phương th ứ c này đư ợ c g ọ i va ki ể u ti ế n trình ứ ng d ụ ng s ẽ đư ợ c chuy ể n sang d ạ n g visible Sau khi th ự c hi ệ n phương th ứ c này, h ệ th ố ng cho phép gi ả i phóng ứ ng d ụ ng b ấ t kì lúc nào Các thao tác s ử d ụ ng CPU và d li ệ u đ ề u đư ợ c lưu l ạ i Activity s ẽ có th ể đư ợ c ho ạ t đ ộ ng tr ở l ạ i ho ặ c d ừ ng l ạ i  onStop(): Khi Activity không còn tương tác n a thì ki ể u thi ế n trình đư ợ c chuy ể n sang ch ạ y n ề n và ứ ng d ụ ng s ẽ có th ể b ị gi ả i phóng ho ặ c kh ở i đ ộ ng l ạ i  onDestroy(): Phương thứ c cu ối cùng này đượ c h ệ th ố ng g ọi trướ c khi gi ả i phóng ứ ng d ụ ng hay ứ ng d ụ ng lo ạ i b Activity Ti ế n trình c ủ a ứ ng d ụ ng có th ể chuy ể n sang ki ể u r ỗ ng n ế u h ệ th ố ng mu ố n gi l ạ i ứ ng d ụng để ti ế p t ụ c l ạ i ứ ng d ụ ng cho l ầ n sau Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 8 Hình 2 3: Chu trình sống của 1 Activity 2 2 L ậ p trình trên h ệ điề u hành Android 2 2 1 Ngôn ng ữ Java 2 2 1 1 T ổ ng quan v ề ngôn ng ữ Java Java là một ngôn ng lập trình dạng hướng đối tượng (OOP) Khác với phần lớn ngôn ng lập trình thông thường, thay vì biên dịch m nguồn thành m máy hoặc thông dịch mà nguồn khi chạy, Java được thiết kế để biên dịch m nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi chạy Bằng cách này, Java thường chạy chậm hơn nh ng ngôn ng lập trình thông dịch khác như C++, Python, Perl, PHP, C# Vào năm 1991, nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một ngôn ng lập trình để điều khiển các thiết bị điện tử như tivi, máy giặt, lò nướng… Mặc dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng loại CPU Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt, vì vậy để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém Do đó nhu cầ thực tế đòi h i một ngôn ng chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 9 nhiều loại CPU khác nhau, dưới các môi trường khác nhau “Oak”đ ra đời và vào năm 1995 được đổi tên thành Java 2 2 1 2 M ộ t s ố tính ch ấ t ngôn ng ữ Java Cú pháp Java được vay mượ n nhi ề u t ừ C và C++ nhưng có cú pháp hướng đố i tượng đơn giản hơn và ít tính năng xử lý c ấ p th ấp hơn Do đó việ c vi ế t m ột chương trình b ằ ng Java d ễ hơn, đơn giản hơn, đỡ t ố n công s ử a l ỗi hơn Dùng bộ th ử vi ệ n chu ẩ n KFC, nhi ều đoạ n code Java ch ỉ m ấ t vài dòng trong khi C ph ả i m ấ t c ả trang gi ấ y Đơn giả n: Nh ng ngườ i thi ế t k ế mong mu ố n phát tri ể n m ộ t ngôn ng d ễ h ọ c và quen thu ộ c v ới đa số ngườ i l ậ p trình Do v ậ y Java lo ạ i b các đặc trưng phứ c t ạ p c ủa C và C++ như:  Lo ạ i b thao tác con tr , thao tác đ ị nh nghĩa ch ồ ng toán t ử  Không cho phép đa k ế th ừ a mà s ử d ụ ng các giao di ệ n,  Không s ử d ụ ng l ệ nh “goto” cũng như file header ( h)/  Lo ạ i b c ấ u trúc “struct” và “union” Hƣớng đối tƣợ ng : Java là ngôn ng l ậ p trình thu ần hướng đối tượ ng, m ọi chương trình vi ết trên Java đề u ph ải đượ c xây d ựng trên các đối tượ ng N ế u trong C/C++ ta có th ể t ạo ra các hàm (chương trình con không gắ n v ới đối tượ ng nào) thì trong Java ta ch ỉ có th ể t ạo ra các phương thức (chương trình con gắ n li ề n v ớ i m ộ t l ớ p c ụ th ể ) Tron g Java không cho phép các đối tượng có tính năng đa kế th ừa mà đượ c th ấ y th ế b ằ ng các giao di ệ n (interface) M ạ nh m ẽ :  Java là ngôn ng yêu c ầ u ch ặ t ch ẽ v ề ki ể u d li ệ u  Ki ể u d li ệ u ph ả i khai báo tư ờ ng minh  Java không s ử d ụ ng con tr và các phép toán con tr  Java ki ể m tra t ấ t c ả các truy nh ậ p đ ế n m ả ng, chu ỗ i khi th ự c thi đ ể đ ả m b ả o r ằ ng các truy nh ậ p đó không ra ngoài gi ớ i h ạ n kích thư ớ c  Cơ ch ế b ẫ y l ỗ i c ủ a Java giúp đ ở n gi ả n hóa quá trình x ử lý l ỗ i và ph ụ c h ồ i sau l ỗ i B ả o m ậ t: Java cung c ấ p m ột môi trườ ng qu ả n lý th ực thi chương trình vớ i nhi ề u m ức để ki ể m soát tính an toàn:  Ở m ứ c th ứ nh ấ t, d li ệ u và các phương th ứ c đư ợ c đóng gói bên trong l ớ p Chúng ta ch ỉ đư ợ c truy xu ấ t thông qua các giao di ệ n mà l ớ p cung c ấ p Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 10  Ở m ứ c th ứ hai, trình biên d ị ch ki ể m soát đ ể đ ả m b ả o mã là an toàn và tuân theo các nguyên t ắ c c ủ a Java  M ứ c th ứ ba đư ợ c đ ả m b ả o b ở i trình thông d ị ch, chúng ki ể m soát xem bytecode có đ ả m b ả o các quy t ắ c an toàn trư ớ c khi đư ợ c th ự c thi không  M ứ c th ứ tư ki ể m soát vi ệ c n ạ p các l ớ p vào b ộ nh ớ đ ể giám sát vi ệ c vi ph ạ m gi ớ i h ạ n truy xu ấ t trư ớ c khi n ạ p vào h ệ th ố ng Phân tán: Java đượ c thi ế t k ế để h ỗ tr ợ các ứ ng d ụ ng ch ạ y trên m ạ ng b ằ ng các l ớ p m ạ ng (java net) Hơn n a, Java h ỗ tr ợ nhi ề u n ề n ch ạy khác nhau nên chúng đượ c s ử d ụ ng r ộng r i như là công cụ phát tri ể n trên Internet- nơi sử d ụ ng nhi ề u n ề n khác nhau Đa luồ n: Chương trình Java cung cấ p gi ải pháp đa luồng để th ự c thi các công vi ệ c đồ ng th ời chúng cũng cung cấ p gi ải pháp đồ ng b ộ gi a các lu ồng Đặ c tính h ỗ tr ợ đa luồ ng này cho phép xây d ự ng các ứ ng d ụ ng trên m ạ ng ch ạ y hi ệ u qu ả Linh độ ng: Java đượ c thi ế t k ế như mộ t ngôn ng động để đáp ứ ng cho nh ng môi trườ ng m ở Các chương trình Java chứ a r ấ t nhi ề u thông tin th ự c thi nh ằ m ki ể m soát và truy nh ập đối tượ ng lúc ch ạy Điề u này cho phép kh ả năng liên kết m độ ng 2 2 2 JSON JSON (JavaScript Object Noation) là một chuẩn dể định dạng d liệu Rất dễ dàng đọc, viết và phân tích Nó dựa trên cơ sở tập hợp của ngôn ng JavaScript, tiêu chuẩn ECMA - 262 phiên bản 3 tháng 12 năm 1999 Khi sử dụng JSON có thể truy vấn trực tiếp giá trị theo tên (khóa) được định nghĩ trong JSON Đứng về mặt tố độ của ứng dụng di dộng đây là một ưu điểm rất lớn JSON đƣợc xây dựng trên 2 cấu trúc:  Là tập hợp của các cặp tên và giá trị name – value  Là một tập hợp các giá trị đ được sắp xếp Các đặc điểm của JSON:  JSON là văn bản trơn không (không có định dạng(màu sắc, cỡ ch …))  JSON là “tự mô tả”(người dùng có thể hiểu được)  JSON là phân cấp (có cấu trúc cây)  JSON có thể được phân tích cú pháp (parse) bởi JavaScript  D liệu JSON có thể được truyền đi bằng AJAX  Không có thẻ kết thúc Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 11  Ngắn hơn  Nhanh hơn để đọc và ghi  Có thể được phân tích cú pháp bằng hàm dựng sẵn trong JavaScript là eval()  Sử dụng mảng (Array)  Không dùng các từ reserve 2 2 3 Ngôn ngữ XML XML là một ngôn ng đánh dấu mà bạn có thể sử dụng để tạo ra thẻ riêng của mình Nó được tạo neen bởi Liên minh mạng toàn cầu nhằm khắc phục nh ng hạn chế của HTML – ngôn ng đánh dấu siêu văn bản, là cở sở của mọi trang Web Giống như HTML, XML cũng được dựa trên GSML – Standard Generalized Markup Language Mặc dù GSML được sử dụng trong ngành công nghiệp xuất bản trong nhiều thập kỉ, nhưng sự phức tạp của nó đều khiến nh ng ai từng sử dụng nó mà không có các nào khác phải thấy mệt m i Các đặc điểm của XML:  D ễ dàng vi ế t đư ợ c các chương trình x ử l ý d li ệ u  Tài li ệ u XML d ễ đ ọ c và có tính h ợ p lý cao  XML d ễ dàng đư ợ c s ử d ụ ng trên Internet  XML h ỗ tr ợ nhi ề u ứ ng d ụ ng  Không đ ặ t n ặ ng tính hình th ứ c trong n ộ i dung th ẻ Các loại văn bản XML:  Văn b ả n không h ợ p l ệ : không theo nguyên t ắ c cú pháp đư ợ c quy đ ị nh b ở i đ ặ c tính k ỹ thu ậ t XML  Văn b ả n h ợ p l ệ : tuân theo nguyên t ắ c cú pháp XML và quy đ ị nh trong DTD ho ặ c lư ợ c đ ồ  Văn b ả n chu ẩ n: tu ân theo quy t ắ c cú pháp XML nhưng không có DTD ho ặ c lư ợ c đ ồ Một tài liệu XML đƣợc chia thành hai phần chính:  Ph ầ n khai báo: k hai báo cho tài li ệ u XML o Khai báo phiên b ả n, b ả ng mã ký t ự s ử d ụ ng trong tài li ệ u o Đ ị nh nghĩa ki ể u cho tài li ệ u  Ph ầ n thân: ch ứ a n ộ i dung d li ệ u Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 12 o G ồ m m ộ t hay nhi ề u ph ầ n t ử o M ỗ i ph ầ n t ử đư ợ c ch ứ a trong m ộ t c ặ p th ẻ o Ph ầ n t ử đầ u tiên là ph ầ n t ử g ố c 2 2 4 Ngôn ngữ PH P Tóm tắt sơ lƣợc về PHP:  PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Ramus Lerdorf tạo ra năm 1995 Ramus đ quyết định công bố m nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi trong nó đồng thời cải tiến m nguồn  V ào năm 1997, PHP/FI 2 0, lần viết lại thứ hai của phiên bản C PHP/FI 2 0 được chính thức công bố vào tháng 11 năm 1997  PHP 3 0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay Nó đ được An di Gutmans và Zeev Suraski tạo ra năm 1997 PHP 3 0 đ chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đông kiểm nghiệm  PHP 4 0 đ chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3 0 ra đời Ngoài tố độ xử lý được cải thiện rất nhiều, PHP 4 0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều mấy chủ Web hơn, hỗ trợ phiên làm việ HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào đ bảo mật hơn và cung cấp một vài cấu trúc ngôn ng mới  PHP 5 0 bản chính thức đ ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các phiên bản kiểm tra thử bao gồm Beta 4, RC 1, RC 2, RC 3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5 0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP  Hiện nay bản tiếp theo của PHP đang được phát triển, PHP 6 được kì vong sẽ lâp đầy khiếm khuyết của PHP ở phiển bản hiện tại Lý do chọn ngôn ngữ PHP:  Viết m PHP trở nên khá trực quan và dễ dàng trong việc xây dựng giao diện ứng dụng HTTP  Rất thích hợp với web có thể dễ dàng nhúng trang HTML Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 13  Tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nh gọn  Dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ng khác 2 3 Các dịch vụ của Google với lập trình MapView Để làm việc tốt với hệ thống bản đồ của Google, thì cần sử dụng một số các dịch vụ cần thiết để lập trình Điểm chung của các dịch vụ này là đều chạy trên môi trường web và đều trả kết quả qua định dạng JSON hoặc là XML 2 3 1 Google Maps Google Maps là một dịch vụ ứng dụng và công nghệ bởi Google và hỗ trợ nhiều dịch vụ dựa vào bản đồ nhứ Google Ride Finder và một số có thể dùng để nhúng vào các trang web của bên thứ ba thông qua Google Maps API Nó cho phép thấy bản đồ đường sá, đường đi cho xe đạp, cho người đi bộ và xe hơi, và nh ng địa điểm kinh doanh trong khu vực cũng như khắp nới trên thế giới 2 3 2 Google Places API Google Places API là một dịch vụ của Google INC mà khi sử dụng chúng ta sẽ nhận được các thông tin về các địa điểm đ được đánh dấu trên bản đồ Google Map s bởi các tổ chức, công ty và cá nhân ở khắp nơi trên thế giới Để sử dụng được dịch vụ này chúng ta phải đăng ký API key dịch vụ Google Places với Google 2 3 3 Google Directions API Google Directions API là một dịch vụ của Google INC mà khi sử dụng chúng ta s ẽ đưa vào tọa độ 2 địa điểm đầu cuối rồi sau đó sẽ được thông tin về khoảng cách gi a 2 điểm, tọa độ GPS, thời gian đi lại dự kiến với các phương tiện như xe máy, ô tô hay là đi bộ 2 3 4 Google Geocoding API Đây là dịch vụ n a của Google cho phép chúng ta xác định các địa điểm đi qua trên đường đi gi a 2 vị trí xác định 2 4 Máy ảo Dalvik và Android SDK 2 4 1 Máy ảo Dalvik Các ứng dụng Android và các thành phần cơ bản hầu hết được viết bằng Java Thay vì sử dụng máy ảo Java, Android sử dụng máy ảo riêng Máy ảo của Androi d được thiết kế và tối ưu cho các hệ thống nh , không tương thích với máy ảo Java của Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 14 JavaMe Nh ng hệ thống nh này có dung lượng RAM nh , CPU chậm và hầu hết không có chỗ để trao đổi d liệu bù đắp cho dung lượng bộ nhớ nh Đây là điểm khác biệt gi Android với các hệ điều hành di động khác như Symbian, iOS, webOS Ngôn ng lập trình sử dụng chính là C, C++ và objective C, trong khi với webOS sử dụng chủ yếu ngôn ng web như Javascript hay HTML Trình biên dịch byte code là máy ảo Dalvik Thay vì sử dụng dạng byte code thông thường, Dalvik có định dạng riêng để phù hợp với yêu cầu đối với thiết bị Android M của Android nh hơn so với m của Java và file dex được tạo ra cũng nh 2 4 2 Android SDK Android SDK là bộ công cụ phát triển phần mềm cho phép lập trình viên tạo ra các ứng dụng cho các thiết bị sử dụng nền tảng Android Android SDK bao gồm nền tảng Android, các công cụ, chương trình mẫu và các tài liệu hỗ trợ Nó cũng là thành phần bổ sung trong bộ phát triển Java và có thể tích hợp vào Eclipse Android chứa các gói hỗ trợ các chức năng tính toán cơ bản như quản lý xâu, quản lý vào ra, tính toán từ các gói cơ bản trong Java:  Java lang – l ớ p ngôn ng cơ b ả n c ủ a Java  Java io – qu ả n lý vào ra  Java net – qu ả n lí k ế t n ố i m ạ ng  Java text – ti ệ n ích x ử lý văn b ả n  Java math – h ỗ tr ợ tính toán  Java sercurity – qu ả n lý các thành ph ầ n b ả o m ậ t  Java xml – l ớ p v ề các XML  Org apache – các l ớ p liên quan HTML Ngoài ra Android còn có các lớp riêng như:  android app – truy c ậ p mô hình ứ ng d ụ ng c ủ a Android  android blu etooth – ch ứ c năng Bluetooth c ủ a Android  android content – qu ả n lý d li ệ u trong Android  a ndroid net – ch ứ a các l ớ p Uri dùng đ ể truy c ậ p d li ệ u  a ndroid grap hics – các thành ph ầ n đ ồ h ọ a  android location – các d ị ch v ụ liên quan đ ế n v ị trí  android onpen gl – các l ớ p OpenGL Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 15  android view – ch ứ a các thành ph ầ n giao di ệ n  android webkit – ch ứ a các ch ứ c năng c ủ a trình duy ệ t web  android widget – các thành ph ầ n giao di ệ n khác Ở đây chúng ta xem xét lập trình Android với Eclipse vì Eclipse cung cấp phong phú c ác thành phần hỗ trợ biên soạn java và môi trường debug mà còn có thể quản lý và điều khiển các yếu tố khác của ứng dụng Android trực tiếp từ Eclipse IDE 2 4 3 Android Emulator Android SDK cung cấp một bộ giả lập thiết bị di động ảo Máy ảo này cho phép chúng t a phát triển và kiểm tra các ứng dụng mà không cần thiết bị Android thật Máy ảo Android có đầy đủ các thành phần từ phần cứng đến phần mềm giống như một thiết bị thật ngoại trừ nó không thể thực hiện được một cuộc gọi Máy ảo Android cho phép sử dụng chuột để định hướng hay bàn phím đẻ tạo các sự kiện Người dùng có thể cài đặt kiểm thử phần mềm trên máy ảo với từng phiên bản khác nhau của Android như nghe nhạc, xem video hay vào mạng Máy bảo cũng có khả năng debug Truy cập vào đầu ra của nhận, giả lập các ngắt khi nhận cuộc gọi hay tin nhắn thậm chí là các ảnh hưởng độ trễ của mạng và ngắt trên kênh truyền d liệu Hình 2 4: Android Emulator Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 16 Chƣơng 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 3 1 Mô tả hệ thống Hệ thống được xây dựng t heo mô hình trao đổi d liệu client – ser ver Trong đó ứng dụng phía thiết bị android là máy client tạo các truy vấn lên 2 máy chủ là máy chủ web của ứng dụng và máy chủ các dịch vụ cần thiết của google để lấy d liệu phù hợp 3 1 1 Yêu cầu chức năng Các chức năng của hệ thống bao gồm  M ở h ệ th ố ng  Đóng h ệ th ố ng  Tìm ki ế m đ ị a đi ể m  C ậ p nh ậ t DS đ ị a đi ể m  C ậ p nh ậ t DS các lo ạ i hình đ ị a đi ể m  Hi ể n đ ị a đi ể m (xem v ị trí đ ị a đi ể m) 3 1 2 Yêu cầu phi chức năng  V ậ n hành t ố t  Chương trình đơn gi ả n, thân thi ệ n v ớ i ngư ờ i s ử d ụ ng  Sai s ố nh so v ớ i d li ệ u l ớ n 3 1 3 Yêu cầu hệ thống  S ử d ụ ng h ệ đi ề u hành Android phiên b ả n b ằ ng ho ặ c m ớ i hơn 2 2 3 2 Phân tích thiết kế 3 2 1 Mô hình hóa yêu cầu  Xác đ ị nh các tác nhân  Ngư ờ i s ử d ụ ng: Là ngư ờ i tr ự c ti ế p s ử d ụ ng ứ ng d ụ ng đ ể bi ế t đư ợ c v ị trí các đ ị a đi ể m danh th ắ ng, hay các khu v ự c ph ụ c v ụ cho du l ị ch … vv  Qu ả n tr ị viên: Là ngườ i tr ự c ti ế p s ử d ụ ng ph ầ n m ềm để c ậ p nh ậ t danh sách các địa điể m  Các trư ờ ng h ợ p s ử d ụ ng  M ở h ệ th ố ng  Đóng h ệ th ố ng  C ậ p nh ậ t DS đ ị a đi ể m  C ậ p nh ậ t DS lo ạ i đ ị a đi ể m Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 17  Tìm đ ị a đi ể m  Xem v ị trí các đ ị a đi ể m  Đ ặ c t ả các trư ờ ng h ợ p s ử d ụ ng  M ở h ệ th ố ng  Tác nhân: ngư ờ i s ử d ụ ng, Qu ả n tr ị viên  Mô t ả : Ngư ờ i s ử d ụ ng s ẽ m ở ứ ng d ụ ng đ ể xem các v ị trí các đ ị a đi ể m mu ố n t ớ i , qu ả n tr ị viên m ở đ ể xem xét đ ồ ng th ờ i c ậ p nh ậ t các ch ứ c năng c ầ n thi ế t khi c ầ n  Đóng h ệ th ố ng  Tác nhân: Ngư ờ i s ử d ụ ng, qu ả n tr ị viên  Mô t ả : K ế t thúc phiên làm vi ệ c ngư ờ i s ử d ụ ng và qu ả n tr ị viên đóng h ệ th ố ng  C ậ p nh ậ t DS đ ị a đi ể m  Tác nhân: qu ả n tr ị viên  Mô t ả : C ậ p nh ậ t danh sách các đ ị a đi ể m m ớ i  C ậ p nh ậ t DS lo ạ i đ ị a đi ể m  Tác nhân: qu ả n tr ị viên  Mô t ả : C ậ p nh ậ t danh sách phân lo ạ i cách đ ị a đi ể m theo các tiêu chí khác nhau  Tì m ki ế m đ ị a đi ể m  Tác nhân: ngư ờ i s ử d ụ ng  Mô t ả : Tìm ki ế m các đ ị a đi ể m trên ứ ng d ụ ng thông qua d li ệ u đư ợ c l ấ y t ừ webservice ho ặ c google places  Xem v ị trí các đ ị a đi ể m  Tác nhân: ngư ờ i s ử d ụ ng  Mô t ả : Ngư ờ i s ử d ụ ng vào gia o di ệ n b ả n đ ồ đ ể xem v ị trí đ ị a đi ể m c ầ n t ớ i Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 18 Bi ểu đồ trƣờ ng h ợ p s ử d ụ ng (USE CASE) Tim dia diem Xem dia diem Nguoi su dung Dong he thong Mo he thong Cap nhat DM dia diem Quan tri vien Cap nhat DM loai dia diem Hình 3 1: Biểu đồ trường hợp sử dụng  Bi ểu đồ use case c ậ p nh ật danh sách địa điể m < < extend> > Cap nhat DM dia diem them dia diem cap nhat dia diem xoa dia diem < < extend> > < < extend> > Hình 3 2: Biểu đồ use case cập nhật danh sách địa điểm  Bi ểu đồ use case c ậ p nh ậ t các lo ạ i đ ị a đi ể m < < extend> > Cap nhat DM loai dia diem them loai dia diem cap nhat loai dia diem xoa loai dia diem < < extend> > < < extend> > Hình 3 3: Biểu đồ use case cập nhật các loại địa điểm Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 19  Bi ểu đồ tìm ki ế m các đ ị a đi ể m tim qua web services Tim dia diem tim qua google places < < extend> > < < extend> > Hình 3 4: Biểu đồ use case tìm kiếm các địa điểm 3 2 2 Mô hình hóa khái niệm  Biểu đồ lớp  Các l ớ p biên FrmMo he thong FrmDong he thong FrmTim qua webservices FrmTim qua google places Frm cap nhat dia diem Frm cap nhat loai dia diem Frm xem dia diem qua ban do Hình 3 5 : Các lớp biên Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 20  Các l ớ p đi ề u khi ể n Ctl Mo he thong Ctl Dong he thong Ctl cap nhat dia diem Ctl cap nhat loai dia diem Ctl Tim qua google places Ctl Tim qua webservices Ctl xem dia diem qua ban do Hình 3 6 : Các lớp điều khiển  Các l ớ p th ự c th ể Hình 3 7 : Các lớp thực thể Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 21 3 2 3 Mô hình hóa tƣơng tác  Bi ể u đ ồ trình t ự  Bi ể u đ ồ trình t ự m ở h ệ th ố ng : NSD : NSD : Quan tri vien : Quan tri vien : Frm Mo he thong : Frm Mo he thong : Ctl Mo he thong : Ctl Mo he thong 1 : Khoi dong he thong () 2: Khoi dong he thong() 3: Thuc hien() Hình 3 8 Biểu đồ trình tự mở hệ thống  Bi ể u đ ồ trình t ự đóng h ệ th ố ng : NSD : NSD : Quan tri vien : Quan tri vien : Frm Dong he thong : Frm Dong he thong : Ctl Dong he thong : Ctl Dong he thong 1 : Dong he thong() 2: Dong he thong() 3: Thuc hien () Hình 3 9 : Biểu đồ trình tự đóng hệ thống Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 22  Bi ể u đ ồ trình t ự c ậ p nh ậ p đ ị a đi ể m : Quan tri vien : Quan tri vien : Frm cap nhat dia diem : Frm cap nhat dia diem : Ctl cap nhat dia diem : Ctl cap nhat dia diem : Diadiem : Diadiem 1 : Them dia diem() 2: Thuc hien() 3: Kiem tra() 4:Luu() 5: Thong bao () Hình 3 10 : Biểu đồ trình tự cập nhật địa điểm  Bi ể u đ ồ trình t ự c ậ p nh ậ t các lo ạ i đ ị a đi ể m : Quan tri vien : Quan tri vien : Frm cap nhat loai dia diem : Frm cap nhat loai dia diem : Ctl cap nhat loai dia diem : Ctl cap nhat loai dia diem : Loaidiadiem : Loaidiadiem 1 : cap nhat loai() 2: thuc hien() 3: kiem tra() 4: luu() 5: thong bao() Hình 3 11 : Biểu đồ trình tự cập nhật các loại địa điểm Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 23  Bi ể u đ ồ trình tìm ki ế m qua webservice s : Nguoi su dung : Nguoi su dung : FrmTim qua webservices : FrmTim qua webservices : Ctl Tim qua webservices : Ctl Tim qua webservices : Diadiem : Diadiem 1 : yeu cau tim kiem 2: thuc hien() 3: tao truy van SQL() 4:Cung cap thong tin() 5: Thong bao ket qua() Hình 3 12: Biểu đồ trình tự tìm kiếm qua webservice s  Bi ể u đ ồ trình t ự tìm ki ế m qua google place s : Nguoi su dung : Nguoi su dung : FrmTim qua google places : FrmTim qua google places : Ctl Tim qua google places : Ctl Tim qua google places CSDL G oogle Places CSDL G oogle Places 1 : Y eu cau tim kiem() 2: Thuc hien() 3: Tao truy van() 4: Cung cap thong tin() 5: Thong bao ket qua() Hình 3 13 : Biểu đồ trình tự tìm kiếm qua google place s Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 24  Biểu đồ trình tự xem vị trí địa điểm : Nguoi su dung : Nguoi su dung : Frm xem dia diem qua ban do : Frm xem dia diem qua ban do : Ctl xem dia diem qua ban do : Ctl xem dia diem qua ban do : Diadiem : Diadiem 1 : Y eu cau() 2: Xu ly() 4: Cung cap thong tin() 5: Hien thi() Hình 3 14 : Biểu đồ trình tự xem vị trí địa điểm  Bi ể u đ ồ c ộ ng tác  Bi ể u đ ồ c ộ ng tác m ở h ệ th ố ng : Frm Mo he thong : NSD : Quan tri vien : Ctl Mo he thong 1 : 1 : Khoi dong he thong () 2: 2: Khoi dong he thong() 3: 3: Thuc hien() Hình 3 15 : Biểu đồ cộng tác mở hệ thống Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 25  Bi ể u đ ồ c ộ ng tác đóng h ệ th ố ng : Ctl Dong he thong : Frm Dong he thong : NSD : Quan tri vien 3: 3: Thuc hien () 1 : 1 : Dong he thong() 2: 2: Dong he thong() Hình 3 16 : Biểu đồ cộng tác đóng hệ thống  Bi ể u đ ồ c ộ ng tác c ậ p nh ậ t đ ị a đi ể m : Quan tri vien : Frm cap nhat dia diem : Ctl cap nhat dia diem : Diadiem 3: 3: Kiem tra() 1 : 1 : Them dia diem() 2: 2: Thuc hien() 5: 5: Thong bao () 4: 4:Luu() Hình 3 17 : Biểu đồ cộng tác cập nhật địa điểm Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 26  Bi ể u đ ồ c ộ ng tác c ậ p nh ậ t các lo ạ i đ ị a đi ể m : Loaidiadiem : Quan tri vien : Frm cap nhat loai dia diem : Ctl cap nhat loai dia diem 3: 3: kiem tra() 1 : 1 : cap nhat loai() 2: 2: thuc hien() 5: 5: thong bao() 4: 4: luu() Hình 3 18 : Biểu đồ cộng tác cập nhật các loại địa điểm  Bi ể u đ ồ c ộ ng tác tìm ki ế m qua webservice s : Nguoi su dung : FrmTim qua webservices : Ctl Tim qua webservices : Diadiem 3: 3: tao truy van SQL() 1 : 1 : yeu cau tim kiem 2: 2: thuc hien() 5: 5: Thong bao ket qua() 4: 4:Cung cap thong tin() Hình 3 19 : Biểu đồ cộng tác tìm kiếm qua webservice s Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 27  Bi ể u đ ồ c ộ ng tác tìm ki ế m qua google place s : Nguoi su dung : FrmTim qua google places : Ctl Tim qua google places CSDL G oogle Places 3: 3: Tao truy van() 1 : 1 : Y eu cau tim kiem() 2: 2: Thuc hien() 5: 5: Thong bao ket qua() 4: 4: Cung cap thong tin() Hình 3 20 : Biểu đồ cộng tác tìm kiếm qua googl e places  Biểu đồ cộng tác xem vị trí địa điểm : Nguoi su dung : Frm xem dia diem qua ban do : Ctl xem dia diem qua ban do : Diadiem 1 : 1 : Y eu cau() 2: 2: Xu ly() 3: 4: Cung cap thong tin() 4: 5: Hien thi() Hình 3 21 : Biểu đồ cộng tác xem vị trí địa điểm Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 28 3 2 4 Mô hình hóa hành vi  Bi ể u đ ồ tr ạ ng thái  M ở h ệ th ố ng Thuc hien Nguoi su dung mo he thong su dung Hình 3 22 : Biểu đồ mô trạng thái mở hệ thống  C ậ p nh ật địa điể m Cho nhap thong tin Nhap thong tin Cap nhat vao CSDL Cap nhat danh sach dia diem Nhap tiep Nhap Ket thuc nhap Xu ly cap nhap Ket thuc cap nhat Hình 3 23 : Biểu đồ trạng thái cập nhật địa điểm  Tìm ki ế m đ ị a đi ể m Cho thong tin tim kiem Nhap cac thong tin tim kiem Cho lay ket qua Hien thi ket qua tra ve Tim kiem Nhap tiep Truy van CSDL Xu ly ket qua Ket thuc Hình 3 24: Biểu đồ trạng thái tìm kiếm địa điểm Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 29  Xem vị trí đia điểm Cho yeu cau xem Xu ly yeu cau Lay thong tin tu CSDL Hien thi ket qua tra ve Nguoi dung xem Ket thuc xu ly Ket thuc Hình 3 25 : Biểu đồ trạng thái xem vị trí địa điểm  Bi ểu đồ ho ạt độ ng  M ở h ệ th ố ng Mo he thong Hình 3 26 : Biểu đồ hoạt mở hệ thống  C ậ p nh ật địa điể m Cap nhat cac dia diem Them Hieu chinh Xoa Luu thong tin K iem tra thong tin Hop le Khong hop le Hình 3 27 : Biểu đồ hoạt động cập nhật địa điểm Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 30  Tìm ki ế m Nhap thong tin tim kiem Xy ly Hien thi ket qua Hình 3 28 : Biểu đồ hoạt động tìm kiếm  Xem vị trí địa điểm Xem dia diem Ban do Hien thi dia diem Hình 3 29 : Biểu đồ hoạt động xem vị trí địa điểm Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 31 3 2 5 Thiết kế chi tiết biểu đồ lớp Hình 3 30 : Chi tiết biểu đồ lớp 3 2 6 Thiết kế kiến trúc vật lý  Biểu đồ thành phần Phía client là ứng dụng được triển khai trên các thiết bị chạy hệ điều hành Android Gửi các truy vấn lấy d liệu tới web server chạy các service s của ứng dụng Phía server là ứng dụng được triển khai với ngôn ng PHP và cơ sở d liệu MySQL Gồm các xử lý gửi d liệu được yêu cầu của máy client Android Library O bject Services O bject Client PHP Control O bject Service O bject Chuc nang danh muc O bject Chuc nang tim kiem dia diem O bject chuc nang xem dia diem Main Hình 3 31 : Biểu đồ thành phần  Biểu đồ triển khai  Google Web Services: Máy chủ dịch vụ của Google  Application Web Services: Máy chủ dịch vụ của ứng dụng Triển khai dịch vụ trên máy chủ Linux, sử dụng ngôn ng PHP và CSDL MySQL Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 32  Client Ung Dung: Thiết bị sử dụng ứng dụng tìm kiếm, triển khai trên hệ điều hành Android G oogle W eb Services Application W eb Services Client Ung Dung TCP/IP TCP/IP Hình 3 32 : Biểu đồ triển khai Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 33 Chƣơng 4 XÂY DỰNG ỨNG DỤNG 4 1 Cách thức xây dựng chƣơng trình 4 1 1 Xây dựng chức năng xử lý của WebService s Chính năng chính của web service s là trả về các kết quả truy vấn về danh sách các địa điểm để hiển thị lên bản đồ và kết quả tìm kiếm của ứng dụng Có cách thức hoạt động là từ ứng dụng gửi các truy vấn có điều kiện , web services xử lý rồi trả về kết quả tương ứng Hình 4 1: Quá trình xử lý của web service s Việc gửi các giá trị truy vấn lên web services của ứng dụng thông qua các giá trị $_REQUEST từ ứng dụng Android Để làm đƣợc điều đó từ phía ứng dụng phải sử dụng một đối tƣợng có kiểu BasicName ValuePair để tạo ra các biến REQUEST thông qua phƣơng thức add (“tên biến_request”,”giá trị”) nameValuePair add (new BasicNameValuePair(“danhthang”,”dt”)) Sau khi khai báo các biến $_REQUEST thì tiến hành xác định URL truy vấn và gán các biến NameValuePair cho URL đó rồi tiến hành thực thi DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost setEntity(newUrlEncodedFormEntity(nameValuePair)); Tiếp theo ở phía web services, php có nhiệm vụ nhận các yêu cầu đó sau đó truy vấn vào cơ sở d liệu, lấy ra d liệu phù hợp với truy vấn rồi tiến hành xuất kết quả D liệu đầu ra được php xử lý thành dạng ngôn ng JSON đ đề cập Bắt đầu Nhận các giá trị gửi đi ( NameValuePair) HttpClient PHP Control Xuất kết quả Kết thúc Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 34 Ví dụ: 4 1 2 Truyền dữ liệu qua các form Trong Android việc truyền d liệu qua các form để sử dụng, ta dùng hai đối tượng là Intent và Bundle Android trao đổi d liệu gi a các activity thông qua cơ chế Intent Hình 4 2 : Mô hình trao đổi d liệu gi a hai Activity Activity A Activity B Intent Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 35 Để trao đổi d liệu thì Intent thường mang theo một danh sách các đối số được đặt tên chứa d liệu (Bundle) Hình 4 3: Cấu trúc của một Intent Cấu trúc của một Bundle là một cơ chế đơn giản để truyền d liệu với mỗi biến Bundle sử dụng một dạng cặp (“name”, value) Với các phương thức để truyền và lấy như “put XY”,get”XY” Intent i = new Intent(DanhSach this , MapHeThong class ); Bundle bun = new Bundle(); bun putString("_x", xx); bun putString("_y", yy); i putExtras(bun); startActivity(i); Khởi tạo một Intent là i với activity gửi là DanhSach, activity nhận là MapHeThong Tiếp đến khởi tạo một Bundle là “ bun ” lấy các giá trị từ một cặp dạng (“name”, value) Sau đó truyền d liệu đến form nhận là MapHeThong thông qua lệnh chuyển activity Bundle extras= getIntent() getExtras(); String tdx_list=extras getString("_x"); String tdy_list=extras getString("_y"); Tại activity nhận ta tiến hành lấy gi liệu đ được gửi getExtras(); Intent Bundle 1 Bundle 2 Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 36 4 1 3 Truy vấn và lấy dữ liệu từ hệ thống Services của Google Khi truy vấn vào hệ thống Google Places API kết quả trả lại cho ta là một file XML hoặc là JSON dựa vào một giá trị đưa ra trong câu truy vấn Hình 4 4: Quá trình truy vấn và lấy d liệu từ hệ thống Services của Google Cấu trúc URL truy vấn trong đó các thuộc tính vẽ đường đi thông qua tọa độ điểm đầu và cuối Trong chương trình sẽ tạo một HttpClient để thực thi URL truy vấn và các đối tượng Response, Entity để lấy d liệu 4 1 4 Đọc dữ liệu từ file JSON Như đ đề cập trước khi truy vấn vào hệ thống Google Service và WebService của wusng dụng kết quả mà ta nhận được là một file XML hoặc JSON dựa vào giá trị output trong câu truy vấn Sau khi đ có d liệu dưới dạng file JSOn thì tiến hành tách các d liệu cần thiết Cấu trúc file JSON xác định các mảng giá trị dựa vào một cặp thẻ đóng mở “[”,“]” Vì thế để lấy được d liệu thì khải báo một mảng JSONArray được định nghĩa sẵn và được gán d liệu thông qua phương thức getJSONArra y() Hình 4 5 : Mô hình xác định của một mảng giá trị trong JSON HttpURL truy vấn HttpClient Google Web Services Google Place Database JSON, XML Output Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android Võ Minh Trí – CCLT04C- Khoa Học Máy Tính Trang 37 JSONArray array = json getJSONArray (“khóa_trƣớc _cặp_thẻ”); Cấu trúc các thẻ d liệu trong mảng là cấu trúc cây vì thế để truy cập đến các thẻ con trong mảng, phải sử dụng phương thức getJSONObject () JSONObject c = array getJSONObject (“tên_ thẻ”); Sau đó lấy d liệu thông qua các phương thức getString (“tên_thẻ”) String name = c getString(“tendd”); 4 1 5 Hiển thị MapView Google cung cấp cho lập trình mộ MapActivity, để hiển thi một mapVi ew ta chỉ cần lấy key MapAPI rồi đưa vào ứng dụng Hiện nay google chính thức không mở dịch vụ cho MapAPI n a hiện tại hỗ trợ cho các API V2, V3 Đối với API V2,V3 hiện chỉ chạy trên nền tảng thật Android Ở đây chúng ta xét về API Hình 4 6: Quá trình lấy key Map API Sau khi có được API key thêm đoạn m vào file xml layout cần hiển thị Xây dựng

LỜI CẢM ƠN Trong thời đại số nay, thị trường điện thoại di động, đặc biệt dòng điện thoại thông minh ngày phát triển phổ biến Trong xu hướng điện thoại thơng minh dần thay cho PC giải yêu cầu cơng việc, hoạt động giải trí thơng qua ứng dụng tảng di dộng Hiện hầu hết dịng điện thoại tích hợp ứng dụng đồ, nằm giúp thuận tiện việc tra cứu địa điểm, tìm kiếm đường đi, hay xác định vị trí người dùng người dùng khác thông qua hệ thống định vị toàn cầu GPS Du lịch ngành phát triển Việt Nam, đặc biệt địa danh tiếng Vịnh Hạ Long, Huế, Hội An…vv Ngày thu hút lượng khách tới tham quan du lịch Tuy nhiên hạn chế du khách thường gặp khó khăn việc tìm địa điểm tham quan địa điểm đó, số thơng tin địa điểm Việc cầm theo đồ nhiều du khách bất tiện Vì em muốn phát triển xây dựng ứng dụng đồ du lịch địa điểm du lịch, nhằm cung cấp thơng tin địa điểm cách cụ thể, xác tạo thuận lợi cho khách du lịch thông qua tảng di động Android phổ biến hầu hết dịng điện thoại thơng minh Do thời gian hạn chế nên đồ án khơng hồn thành hết chức dự định ban đầu đ đặt Trong q trình thực khơng thể tránh kh i nh ng sai sót, mong thầy bạn góp ý để em hồn thiện tốt Trong thời gian làm đồ án gặp khơng khó khăn giúp đỡ tận tình thầy mơn lập trình – Khoa Khoa Học Máy Tính đ giúp em hồn thành đồ án Em xin chân thành cảm ơn giảng viên Võ Hoàng Phương Dung - người trực tiếp hướng dẫn tận tình giúp đỡ em hồnh thành đồ án Một lần n a em xin gửi lời cảm ơn chân thành tới thấy cô khoa nh ng người đ cung cấp tảng kiến thức để em hoàn thành đồ án Em xin chân thành cảm ơn! Trang i MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC TỪ VIẾT TẮT .iv DANH MỤC HÌNH ẢNH v Chƣơng CHƢƠNG MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Mục tiêu nhiệm vụ 1.3 Đối tƣợng nghiên cứu phạm vi hệ thống 1.4 Phƣơng pháp nghiên cứu 1.5 Ý nghĩa thực tiễn Chƣơng CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu Android 2.1.1 Khái niệm Android 2.1.2 Tổng quan cấu trúc Android 2.1.3 Sơ lược phiên Android 2.1.4 Các thành phần ứng dụng Android 2.2 Lập trình hệ điều hành Android 2.2.1 Ngôn ngữ Java 2.2.2 JSON 10 2.2.3 Ngôn ngữ XML 11 2.2.4 Ngôn ngữ PHP 12 2.3 Các dịch vụ Google với lập trình MapView 13 2.3.1 Google Maps 13 2.3.2 Google Places API .13 2.3.3 Google Directions API 13 2.3.4 Google Geocoding API .13 2.4 Máy ảo Dalvik Android SDK .13 2.4.1 Máy ảo Dalvik 13 2.4.2 Android SDK 14 2.4.3 Android Emulator .15 Chƣơng PHÂN TÍCH THIẾT KẾ HỆ THỐNG 16 Trang ii 3.1 Mô tả hệ thống 16 3.1.1 Yêu cầu chức 16 3.1.2 Yêu cầu phi chức .16 3.1.3 Yêu cầu hệ thống .16 3.2 Phân tích thiết kế 16 3.2.1 Mơ hình hóa yêu cầu 16 3.2.2 Mơ hình hóa khái niệm 19 3.2.3 Mơ hình hóa tương tác .21 3.2.4 Mơ hình hóa hành vi 28 3.2.5 Thiết kế chi tiết biểu đồ lớp .31 3.2.6 Thiết kế kiến trúc vật lý 31 Chƣơng XÂY DỰNG ỨNG DỤNG .33 4.1 Cách thức xây dựng chƣơng trình 33 4.1.1 Xây dựng chức xử lý WebService 33 4.1.2 Truyền liệu qua form 34 4.1.3 Truy vấn lấy liệu từ hệ thống Services Google .36 4.1.4 Đọc liệu từ file JSON 36 4.1.5 Hiển thị MapView .37 4.1.6 Sử dụng tài nguyên GPS Internet hệ thống 38 4.1.7 Đánh dấu vị trí MapView 38 4.1.8 Sử dụng Google Directions API để vẽ đường 39 4.2 Giao diện ứng dụng 40 TÀI LIỆU THAM KHẢO vii NHẬN XÉT CỦA GIẢNG VIÊN viii Trang iii DANH MỤC TỪ VIẾT TẮT  API: Application Programming Interface (Giao diện lập trình ứng dụng)  CSDL: Cơ sở d liệu  GPS: Global Positioning System (Hệ thống định vị toàn cầu)  HD: High- Definition (Truyền hình độ nét cao)  HTML: Hyper Text Markup Language (Ngôn ng Đánh dấu Siêu văn bản)  JSON: Java Script Object Notation (Định dạng trao đổi d liệu cực nhẹ)  OPP: Object- Oriented Programming (Lập trình hướng đối tượng)  OHA: Open Handset Alliance (Liên minh thiết bị cầm tay mở rộng)  XML: eXtensible Markup Language (Ngôn ng Đánh dấu mở rộng)  SDK: Software Development Kit (Bộ công cụ phát triển phần mềm) Trang iv DANH MỤC HÌNH ẢNH Số hiệu Tên hình vẽ hình vẽ Trang Hình 2.1: Logo Android Hình 2.2: Kiến trúc Android Hình 2.3: Chu trình sống Activity Hình 2.4: Android Emulator 15 Hình 3.1: Biểu đồ trường hợp sử dụng 18 Hình 3.2: Biểu đồ use case cập nhật danh sách địa điểm 18 Hình 3.2: Hình 3.2:Biểu đồ use case cập nhật loại địa điểm 18 Hình 3.4: Biểu đồ use case tìm kiếm địa điểm 19 Hình 3.5: Các lớp biên 19 Hình 3.6: Các lớp điều khiển 20 Hình 3.7: Các lớp thực thể 20 Hình 3.8 Biểu đồ trình tự mở hệ thống 21 Hình 3.9: Biểu đồ trình tự đóng hệ thống 21 Hình 3.10: Biểu đồ trình tự cập nhật địa điểm 22 Hình 3.11: Biểu đồ trình tự cập nhật loại địa điểm 22 Hình 3.12: Biểu đồ trình tự tìm kiếm qua webservices 23 Hình 3.13: Biểu đồ trình tự tìm kiếm qua google places 23 Hình 3.14: Biểu đồ trình tự xem vị trí địa điểm 24 Hình 3.15: Biểu đồ cộng tác mở hệ thống 24 Hình 3.16: Biểu đồ cộng tác đóng hệ thống 25 Hình 3.17: Biểu đồ cộng tác cập nhật địa điểm 25 Hình 3.18: Biểu đồ cộng tác cập nhật loại địa điểm 26 Hình 3.19: Biểu đồ cộng tác tìm kiếm qua webservices 26 Hình 3.20: Biểu đồ cộng tác tìm kiếm qua google places 27 Hình 3.21: Biểu đồ cộng tác xem vị trí địa điểm 27 Hình 3.22: Biểu đồ mơ trạng thái mở hệ thống 28 Hình 3.23: Biểu đồ trạng thái cập nhật địa điểm 28 Trang v Hình 3.24: Biểu đồ trạng thái tìm kiếm địa điểm 28 Hình 3.25: Biểu đồ trạng thái xem vị trí địa điểm 29 Hình 3.26: Biểu đồ hoạt mở hệ thống 29 Hình 3.27: Biểu đồ hoạt động cập nhật địa điểm 29 Hình 3.28: Biểu đồ hoạt động tìm kiếm 30 Hình 3.29: Biểu đồ hoạt động xem vị trí địa điểm 30 Hình 3.30: Chi tiết biểu đồ lớp 31 Hình 3.31: Biểu đồ thành phần 31 Hình 3.32: Biểu đồ triển khai 32 Hình 4.1: Quá trình xử lý web services 33 Hình 4.2: Mơ hình trao đổi d liệu gi a hai Activity 34 Hình 4.3 Cấu trúc Intent 35 Hình 4.4: Quá trình truy vấn lấy d liệu từ hệ thống Services Google 36 Hình 4.5: Mơ hình xác định mảng giá trị JSON 36 Hình 4.6: Quá trình lấy key Map API 37 Hình 4.7: Quy trình đánh dấu vị trí lên MapView 38 Hình 4.8: Một file JSON trả thông tin Google Direction API 39 Hình 4.9: Giao diện chương trình 40 Hình 4.10: Giao diện danh sách địa điểm tìm kiếm 41 Hình 4.11: Kết tìm kiếm hiển thi lên đồ 41 Hình 4.12: Vị trí người dùng với địa điểm du lịch nhà hàng 42 Hình 4.13: Vị trí người dùng với quán café khách sạn 42 Hình 4.14: Giao diện vẽ đường hiển thị địa sau vẽ 43 Hình 4.15: Kích chọn chia sẻ giao diện chia sẻ facebook 43 Hình 4.16: Giao diện đăng nhập tiến hành chia sẻ 44 Hình 4.17: Kết chia sẻ facebook qua ứng dụng 44 Trang vi Xây dựng ứng dụng đồ địa điểm du lịch Hội An Android Chƣơng 1.CHƢƠNG MỞ ĐẦU 1.1 Lý chọn đề tài Ngày thiết bị số cầm tay điện điện thoại di động, điện thoại thơng minh, máy tính bảng có nhiều thị trường Với giá thành ngày rẻ tiện ích mà đem lại, thiết bị dần trở nên phổ biến Có nhiều tảng sử dụng để điều hành thiết bị iOS , Windows Phone, Android …vv Trong Android tảng điều hành di động nhà phát triển Google cung cấp mở nguồn m , với thiết bị di động mạnh mẽ với khả xử lý vụ ngày nhanh với vi xử lý khủng điều kiện để lập trình viên tiếp cận tận dụng tối đa nh ng mà Android đem lại tảng thiết bị với phần cứng ngày mạnh mẽ Android nhanh chóng trở thành hệ điều hành thu hút nhiều lập trình viên chiếm thị phần lớn thị trường di động thông minh Việc sử dụng thiết bị số khả hỗ trợ người cơng việc, giải trí mà giúp cho người tiết kiệm thời gian vào nhiều cơng việc thực tiễn giải trí, học tập, du lịch…vv Du lịch ngành phát triển Việt Nam, đặc biệt địa danh tiếng Vịnh Hạ Long, Huế, Hội An…vv Ngày thu hút lượng khách tới tham quan du lịch Tuy nhiên hạn chế du khách thường gặp khó khăn việc tìm địa điểm tham quan địa điểm đó, số thơng tin địa điểm Việc cầm theo đồ nhiều du khách bất tiện Vì em muốn phát triển xây dựng ứng dụng đồ du lịch địa điểm du lịch, nhằm cung cấp thơng tin địa điểm cách cụ thể, xác tạo thuận lợi cho khách du lịch thông qua tảng di động Android phổ biến hầu hết dịng điện thoại thơng minh 1.2 Mục tiêu nhiệm vụ  Mục tiêu: Tìm hiểu cơng nghệ lập trình cần thiết tảng Android để hồn thành ứng dụng tìm kiếm thị vị trí thơng tin cần thiết địa điểm du lịch o Hiểu nguyên lý hoạt động Android, thành phần hệ thống ứng dụng thực thi Android Võ Minh Trí –CCLT04C- Khoa Học Máy Tính Trang Xây dựng ứng dụng đồ địa điểm du lịch Hội An Android o Tìm hiểu áp dụng cơng nghệ lập trình Android ngôn ng JAVA, tương tác với tài nguyên hệ thống (GPS,Internet, TouchScreen), sử dụng dịch vụ Google Google Map, Google Places API, Google Directions API, Google Geocoding API o Tìm hiểu xây dưng dịch vụ web tảng php sử dụng hệ sở d liệu MySQL  Nhiệm vụ: Đọc tài liệu liên quan thư viện lập trình Android Tìm hiểu dịch vụ liên quan đến ứng dụng 1.3 Đối tƣợng nghiên cứu phạm vi hệ thống  Đối tượng : o Ngôn ng JAVA, PHP, JSON, XML o Hệ sở d liệu MySQL o Công cụ Android SDK & Eclipse o Hệ điều hành tài nguyên hệ thống Android o Các dịch vụ google Google Map, Google Places API, Google Directions API, Google Geocoding API  Phạm vi: Đề tài dừng lại khuôn khổ thị lên đồ tìm kiếm địa điểm thông tin phạm vi nh thành phố Hội An Sử dụng mapview để tìm kiếm dẫn đường cho người dùng Ứng dụng viết tảng Android 2.2 1.4 Phƣơng pháp nghiên cứu Đọc tham khảo liệu mạng, sách viết Android tham khảo qua giáo viên hướng dẫn 1.5 Ý nghĩa thực tiễn Chương trình áp dụng vào sống, sử dụng để tìm kiếm hiển thị thống tin địa điểm du lịch dành cho du khách Võ Minh Trí –CCLT04C- Khoa Học Máy Tính Trang Xây dựng ứng dụng đồ địa điểm du lịch Hội An Android Chƣơng 2.CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu Android 2.1.1 Khái niệm Android Hình 2.1: Logo Android Android hệ điều hành điện thoại di động ( số đầu phát HD, HD player) phát triển Google dựa tảng Linux Trước đây, Android phát triển công ty liên hợp Android ( sau Google mua lại vào năm 2005) Theo NPD, thiết bị di động sử dụng hệ điều hành Android bán Mỹ quý II năm 2010 xếp vị trí với 33%, thứ BB os với 28% iOS vị trí thứ với 22% Android có cộng đồng nh ng nhà phát triển lớn viết ứng dụng cho hệ điều hành Hiện có khoảng 70,000 ứng dụng cho Android vào khoảng 100,000 ứng dụng đ đệ trình, điều khiến Android trở thành hệ điều hành di động có mơi trường phát triển lớn thứ Các nhà phát triển viết ứng dụng cho Android dựa ngôn ng Java Sự mắt Android vào ngày tháng 11 năm 2007 gắn với thành lập 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 viễn thông nhằm mục đích tạo nên chuẩn mở cho điện thoại di động cho tương lai Google công bố hầu hết m ngồn Android theo cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng m , triệu dòng XML, 2.8 triệu dòng m C, 2.1 triệu m Java 1.75 triệu dòng m C++ Võ Minh Trí –CCLT04C- Khoa Học Máy Tính Trang Xây dựng ứng dụng đồ địa điểm du lịch Hội An Android 2.1.2 Tổng quan cấu trúc Android Android bao gồm ba thành phần Một hệ điều hành mở, miễn phí cho thiết bị di dộng Một tảng mã nguồn mở cho phát triển ứng dụng Thiết bị chạy hệ điều hành Android ứng dụng Android Một cách chi tiết Android bao gồm thành phần quan trọng sau: Một thiết kế phần cứng cho thiết bị di động hỗ trợ phần mềm Một nhân viên điều hành Linux cung cấp giao diện mức thấp với phần cứng, quản lý nhớ kiểm sốt tiến trình Tất tối ưu hóa cho thiệt bị di động Thư viện mã nguồn mở cho phát triển ứng dụng bao gồm SQLite, Webkit, OpenGL quản lí đa phương tiện Một hệ thống thực thi lưu tr cho ứng dụng Android bao gồm máy ảo Dalvik thư viện cở cung cấp chức đặc thù cho Android Hệ thống thục thi thiết kế nh gọn hiệu sử dụng thiết bị di động Một kiến trúc ứng dụng cung cấp dịch vụ hệ thống cho tầng ứng dụng bao gồm quản lý cửa sổ, quản lý vị trí, cung cấp nội dung cảm biến Một số kiến trúc giao diện người dùng để lưu tr chạy ứng dụng Một số ứng dụng cài sẵn coi phần ứng dụng Một phát triển ứng dụng bao gồm công cụ tài liệu Hình 2.2: Kiến trúc Android Võ Minh Trí –CCLT04C- Khoa Học Máy Tính Trang

Ngày đăng: 26/02/2024, 06:12

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan