Vì thế, ngoài việc tìm hiểu và ứng dụng Android, nhiệm vụ đề tài là xây dựng một ứng dụng trên thiết bị di động giúp đỡ mọi người tìm kiếm đường đi thuận tiện hơn, góp phần giải quyết mộ
Trang 1LUẬN VĂN TỐT NGHIỆP
TÌM HIỂU ANDROID VÀ PHÁT
TRIỂN ỨNG DỤNG TÌM ĐƯỜNG ĐI
Giảng viên hướng dẫn : TS NGUYỄN THANH BÌNH
Sinh viên thực hiện:
Khoá: 12
TP Hồ Chí Minh, tháng 07 năm 2012
Trang 2LUẬN VĂN TỐT NGHIỆP
TÌM HIỂU ANDROID VÀ PHÁT
TRIỂN ỨNG DỤNG TÌM ĐƯỜNG ĐI
Giảng viên hướng dẫn : TS NGUYỄN THANH BÌNH
Sinh viên thực hiện:
Khoá: 12
TP Hồ Chí Minh, tháng 07 năm 2012
Trang 3Thầy đã tận tình chỉ dẫn cho em từ những bước đi đầu tiên đến khi hoàn thành đề tài luận văn này Thầy luôn giúp em giải quyết vấn đề trong những lúc khó khăn Chúng
em học được ở Thầy không chỉ là sự hiểu biết mà còn là cách làm việc và lẽ sống
Chúng em xin gửi lời cảm ơn tới tất cả các Thầy Cô giảng viên của khoa Công nghệ thông tin, trường Đại học Tôn Đức Thắng đã nhiệt tình giảng dạy cho chúng em những tri thức công nghệ và trang bị hành trang cho chúng em vào đời
Cảm ơn các nhóm bạn thực hiện luận văn hướng dẫn bởi thầy Nguyễn Thanh Bình đã cùng gắn bó, động viên và hỗ trợ nhau hoàn thiện đề tài
Cuối cùng, chúng con xin gửi lời cảm ơn đến bố, mẹ và gia đình Bố mẹ luôn là chỗ dựa tinh thần vững chắc cho chúng con
Thành phố Hồ Chí Minh, ngày 4 tháng 7 năm 2012
Nhóm sinh viên thực hiện đề tài
Trương Quốc Cường Bùi Hoài Anh
Trang 4
Trang 5
Trang 6
1.1 Giới thiệu đề tài: 1
1.2 Nội dung đề tài: 1
1.3 Giới hạn đề tài: 1
1.4 Phương pháp nghiên cứu: 2
1.5 Cấu trúc luận văn: 2
CHƯƠNG 2: NỀN TẢNG CÔNG NGHỆ 3
2.1 Android: 3
2.1.1 Giới thiệu: 3
2.1.2 Ưu điểm và khuyết điểm: 4
2.1.3 Kiến trúc nền tảng Android: 6
2.1.4 Hệ điều hành: 6
2.1.5 Thư viện và giao diện lập trình ứng dụng: 7
2.1.6 Khung ứng dụng Android: 9
2.1.7 Khung ứng dụng Android: 10
2.1.8 Activity: 10
2.1.9 Service: 13
2.1.10 Broadcast receivers: 14
2.2 SQLite: 14
2.2.1 Tạo cơ sở dữ liệu: 15
2.2.2 Mở cơ sở dữ liệu: 16
2.2.3 Thêm giá trị và cơ sở dữ liệu: 16
2.2.4 Truy vấn: 16
2.2.5 Đóng cơ sở dữ liệu: 16
2.3 Google Maps API và Google Web Service: 16
2.3.1 Google APIs Add-On: 16
2.3.2 Maps external library: 17
2.3.3 Google Places API: 19
2.3.4 Place Searches: 19
Trang 72.3.8 Geocoding API: 23
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ 24
3.1 Xác định yêu cầu hệ thống: 24
3.1.1 Tổng quan: 24
3.1.2 Chức năng định vị: 25
3.1.3 Chức năng Tìm kiếm địa điểm: 25
3.1.4 Chức năng Quản l địa điểm: 25
3.1.5 Chức năng Tìm đường đi: 26
3.1.6 Chức năng Xem vị tr các địa điểm: 26
3.2 Phân t ch hệ thống: 27
3.2.1 Sơ đồ Use-case: 27
3.2.2 Sơ đồ trạng thái: 38
3.2.3 Sơ đồ tuần tự: 44
3.3 Thiết kế hệ thống: 50
3.3.1 Thiết kế cơ sở dữ liệu: 50
3.3.2 Sơ đồ định hướng: 52
3.3.3 Thiết kế giao diện: 55
CHƯƠNG 4: HIỆN THỰC HỆ THỐNG 61
4.1 Tạo thiết bị ảo: 61
4.2 Tạo project Google API: 62
4.3 Thao tác bản đồ: 63
4.3.1 Lấy Maps API key: 63
4.3.2 Hiển thị bản đồ: 64
4.3.3 Vẽ marker trên bản đồ: 66
4.3.4 Một số phương thức thao tác bản đồ: 68
4.4 Hiện thực các chức năng: 69
4.4.1 Chức năng định vị bản đồ: 69
Trang 84.4.5 Chức năng quản l địa điểm: 76
4.4.6 Chức năng tìm đường đi: 79
4.4.7 Chức năng xem vị tr các địa điểm: 80
4.5 Kết quả hiện thực: 81
4.5.1 Chế độ bản đồ: 81
4.5.2 Chức năng định vị: 82
4.5.3 Chức năng tìm kiếm địa điểm: 83
4.5.4 Chức năng tìm đường đi: 85
4.5.5 Chức năng quản l địa điểm: 86
4.5.6 Chức năng xem vị tr các địa điểm: 88
CHƯƠNG 5: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN TƯƠNG LAI 89
5.1 Kết quả đạt được: 89
5.2 Ưu điểm và khuyết điểm: 89
5.2.1 Ưu điểm: 89
5.2.2 Nhược điểm: 90
5.3 Hướng phát triển tương lai: 90
Trang 9API: Application Programming Interface
AVD: Android Virtual Device
GPS: Global Positioning System
IDE: Integrated Development Environment
Trang 10Bảng 3.2: Đặc tả use-case tìm kiếm địa điểm 29
Bảng 3.3: Đặc tả use-case thêm địa điểm 31
Bảng 3.4: Đặc tả use-case thêm địa điểm 33
Bảng 3.5: Đặc tả use-case tìm đường đi 36
Bảng 3.6: Đặc tả use-case xem vị tr các địa điểm 37
Bảng 3.7: Thuộc t nh của table place 50
Bảng 3.8: Thành phần giao diện màn hình ch nh 56
Bảng 3.9: Thành phần giao diện tìm kiếm địa điểm 56
Bảng 3.10: Thành phần giao diện quản l địa điểm 57
Bảng 3.11: Thành phần giao diện thêm địa điểm 58
Bảng 3.12: Thành phần giao diện sửa địa điểm 59
Bảng 3.13: Thành phần giao diện tìm đường đi 60
Bảng 4.1: Thuộc t nh của lớp đối tượng Place 73
Trang 11Hình 1.2: Nhân Linux trên Android 6
Hình 1.3: Thư viện lâp trình ứng dụng trên Android 7
Hình 1.4: Khung ứng dụng 9
Hình 1.5: Vòng đời của một activity 12
Hình 1.6: Sơ đồ chuyển trạng thái của service 13
Hình 3.1: Sơ đồ use-case tổng quan 27
Hình 3.2: Sơ đồ use-case xác định vị tr 28
Hình 3.3: Sơ đồ use-case Tìm kiếm địa điểm 29
Hình 3.4: Sơ đồ use-case quản l địa điểm 30
Hình 3.5: Sơ đồ use-case thêm địa điểm 32
Hình 3.6: Sơ đồ use-case thêm địa điểm 34
Hình 3.7: Sơ đồ use-case tìm đường đi 36
Hình 3.8: Sơ đồ use-case Xem vị tr các địa điểm 38
Hình 3.9: Sơ đồ trạng thái định vị thiết bị 38
Hình 3.10: Sơ đồ trạng thái tìm kiếm địa điểm 39
Hình 3.11: Sơ đồ trạng thái thêm địa điểm 40
Hình 3.12: Sơ đồ trạng thái sửa địa điểm 41
Hình 3.13: Sơ đồ trạng thái use case tìm đường đi 42
Hình 3.14: Sơ đồ trạng thái use case xem vị tr các địa điểm 43
Hình 3.15: Sơ đồ tuần tự định vị thiết bị 44
Hình 3.16: Sơ đồ tuần tự tìm kiếm địa điểm 45
Hình 3.17: Sơ đồ tuần tự thêm địa điểm 46
Hình 3.18: Sơ đồ tuần tự sửa địa điểm 47
Hình 3.19: Sơ đồ tuần tự tìm đường đi 48
Hình 3.20: Sơ đồ tuần tự use case xem vị tr các địa điểm 49
Hình 3.21: Cơ sở dữ liệu hệ hệ thống 50
Hình 3.22: Sơ đồ định hướng tổng quan của hệ thống 52
Hình 3.23: Sơ đồ định hướng chức năng quản l địa điểm 53
Trang 12Hình 3.27: Hình giao diện màn hình ch nh quản l địa điểm 57
Hình 3.29: Giao diện màn hình sửa địa điểm 59
Hình 3.30: Giao diện màn hình tìm đường đi 60
Hình 4.1: Cấu hình AVD 61
Hình 4.2: Cấu hình project 62
Hình 4.3: Cấu tạo project 62
Hình 4.5: Kết quả lấy mã MD5 debug key 63
Hình 4.6: Kết quả lấy Maps API key 64
Hình 4.7: Thể hiện bản đồ 66
Hình 4.8: Vẽ marker trên bản đồ 67
Hình 4.9: Chế độ xem bản đồ dạng ảnh chụp vệ tinh 81
Hình 4.10: Chế độ xem dạng đường phố 82
Hình 4.10: Giả lập tọa độ thiết bị 82
Hình 4.11: Kết quả định vị thiết bị 82
Hình 4.1: Ứng dụng gợi chọn từ khóa 83
Hình 4.12: Kết quả tìm kiếm theo từ khóa 83
Hình 4.13: Kết quả tìm kiếm địa danh 84
Hình 4.14: Kết quả tìm kiếm từ địa chỉ 84
Hình 4.15: Kết quả tìm kiếm đường đi 85
Hình 4.16: Kết quả tìm kiếm đường đi liên tỉnh 85
Hình 4.17: Xác định địa điểm bằng cách chọn trên bản đồ 86
Hình 4.18: Thao tác thêm một địa điểm 86
Hình 4.19: Thao tác sửa một địa điểm 87
Hình 4.20: Thao tác xóa một địa điểm 87
Hình 4.21: Kết quả xem các địa điểm lân cận 88
Hình 4.22: Kết quả xem vị tr theo loại địa điểm 88
Trang 13CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu đề tài:
Trong bối cảnh hiện nay, các thiết bị di động cầm tay đang dần chiếm ưu thế so với máy t nh truyền thống do chúng có t nh năng nhỏ gọn, tiện ch và t ch hợp đầy đủ chức năng của một chiếc máy t nh Trên thực tế, thị trường thiết bị di động có tiềm năng phát triển vô cùng to lớn, các nhà sản xuất đang ra sức đầu tư và phát triển các công nghệ trên chúng
Thêm vào đó, hệ điều hành là thành phần quan trọng tạo nên sự thành công cho các thiết bị di động cũng phát triển không ngừng Trong các hệ điều hành nổi tiếng, Android là một trong những tên tuổi được chú nhiều nhất vì nó hội nhiều yếu tố th ch hợp với xu hướng phát triển (dựa trên nền tảng Linux và ngôn ngữ lập trình mở Java,
t nh linh hoạt, đa dạng phần cứng, kho ứng dụng phong phú )
Ngoài ra, mọi người thường phải bỏ nhiều thời gian để tìm kiếm đường đi, công sức và chi ph để di chuyển trong hệ thống giao thông hiện tại còn nhiều bất cập Vì thế, ngoài việc tìm hiểu và ứng dụng Android, nhiệm vụ đề tài là xây dựng một ứng dụng trên thiết bị di động giúp đỡ mọi người tìm kiếm đường đi thuận tiện hơn, góp phần giải quyết một phần khó khăn của xã hội
1.2 Nội dung đề tài:
Tìm hiểu về hệ điều hành Android và xây dựng ứng dụng tìm đường đi chạy được trên thiết bị di động Android, đáp ứng được các nhu cầu thực tế của người dùng,
sử dụng dữ liệu từ Google Maps API và Google Web Service Ngoài ra, ứng dụng có chức năng quản l địa điểm cho phép người dùng cập nhật địa điểm trên bản đồ vào cơ
sở dữ liệu nằm trong thiết bị di động
1.3 Giới hạn đề tài:
Đề tài xây dựng ứng dụng với các chức năng cơ bản đủ đáp ứng nhu cầu thực tế của người dùng như sau:
- Định vị thiết bị
Trang 14- Tìm kiếm địa điểm
- Quản l địa điểm
1.4 Phương pháp nghiên cứu:
- Nghiên cứu các tài liệu tham khảo và công trình liên quan
- Nghiên cứu theo hướng dẫn của giảng viên hướng dẫn
- Nghiên cứu theo hướng giải quyết vấn đề làm sao thực hiện thành công đề tài
và hoàn thành đúng hạn tất cả yêu cầu của giảng viên hướng dẫn đưa ra
- Tìm cách khắc phục những khó khăn trong quá trình thực hiện đề tài
- Tham khảo kiến đóng góp từ mọi người xung quanh
1.5 Cấu trúc luận văn:
- Chương 1: Trình bày ngắn gọn giới thiệu, nội dung, giới hạn và phương
pháp nghiên cứu của đề tài
- Chương 2: Trình bày cơ sở l thuyết nghiên cứu để hiện thực ứng dụng: hệ
điều hành android, SQLite và Google Web Service…
- Chương 3: Trình bày nội dung phân t ch và thiết kế hệ thống của ứng dụng
- Chương 4: Trình bày quá trình hiện thực hệ thống của ứng dụng: thao tác
bản đồ và xây dựng các chức năng hệ thống như thế nào và kết quả hiện thực
- Chương 5: Trình bày kết quả đạt được của đề tài, ưu khuyết điểm và hướng
phát triển tưởng lai của ứng dụng
Trang 15CHƯƠNG 2: NỀN TẢNG CÔNG NGHỆ
2.1 Android:
2.1.1 Giới thiệu:
Android là hệ điều hành dành cho thiết bị di động, được phát triển bởi Google
và ngày càng trở nên phổ biến với các hãng điện thoại
Android được xây dựng trên nhân Linux và được phân phối miễn ph Mọi ứng dụng Android đều được viết trên cùng một tập API, thế nên không có sự phân biệt giữa các ứng dụng mặc định và các ứng dụng của bên thứ ba Người dùng hoàn toàn có thể thay thế mọi ứng dụng mặc định bằng các ứng dụng yêu th ch của mình, thậm ch ngay
cả màn hình thực hiện cuộc gọi và màn hình nhà (home screen)
Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đ nh tạo nên một chuẩn mở cho điện thoại di động trong tương lai
Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache
Hình 1.1: Giao diện màn hình khóa và màn hình chính của Android
Trang 162.1.2 Ưu điểm và khuyết điểm:
a Ưu điểm:
Hệ điều hành mở:
Điều làm cho Android được chú nhất ch nh vì nó là mã nguồn mở Android đã thu hút nhiều nhà phát triển và lập trình viên từ tất cả các tầng lớp xã hội khi Goole phân phối miễn ph Android và các đoạn mã có bản quyền khác cho bất cứ ai muốn tham gia phát triển phần mềm cho Goole Vì thế, chỉ trong một thời gian ngắn, các lập trình viên cũng như nhà phát triển có thể nhanh chóng đưa ra phiên bản Android được tùy chỉnh của riêng mình
Đa nhiệm:
Ngay từ phiên bản Android 1.0 đã có thể chạy nhiều ứng dụng cùng lúc (các ứng dụng hệ thống hoặc các ứng dụng từ Android Marketplace) Người dùng Android được hưởng lợi rất nhiều từ sự khác biệt này, vì họ có thể nhận được thông báo, nghe nhạc, hoặc thậm ch ghi dữ liệu GPS mà không cần giữ cho ứng dụng luôn mở
Hiển thị thông tin trên màn hình:
Một trong những t nh năng ch nh của Android là có màn hình hiển thị tùy biến, đặt các widget ngay trước ngón tay người dùng, chúng luôn hoạt động và luôn được nhìn thấy mà không cần phải khởi động ứng dụng trước Có nhiều widget cho mọi ứng dụng trong Android Market, từ nghe nhạc cho đến xem thông tin và cập nhật Facebook Với Android, tất cả các thông tin đều được hiển thị trực tiếp trên màn hình
ch nh của người dùng, không bao giờ cần nhiều hơn một cú chạm ngón tay
Ứng dụng phong phú:
Play Store đã có hơn 430 ngàn ứng dụng t nh đến tháng 04-2012 nhưng con số này vẫn tiếp tục tăng trưởng nhanh chóng Android còn có một lợi thế là “chợ ứng dụng” hoàn toàn mở Ứng dụng hoàn toàn miễn ph chiếm 72% Play Store được định hướng hoàn toàn bởi người tiêu dùng, do đó, ứng dụng tốt nhất là ứng dụng đạt được thành công, không phải là ứng dụng đầu tiên tiếp cận thị trường
Trang 17 Hệ thống thông báo:
Android có một thanh thông báo tiện dụng, hiển thị một biểu tượng cho mỗi thông báo Thanh thông báo cũng có thể được kéo xuống để xem các thông báo chi tiết hơn Android cho phép nhà phát triển ứng dụng làm cho các thông báo có thể xem được chi tiết từ màn hình đã bị khóa
Đa dạng phần cứng:
Về phần cứng, Android hiện đang là hệ điều hành xuất hiện trên nhiều thiết bị nhất Các nhà sản xuất như Sony, Samsung, HTC, Motorola, Acer… cung cấp cho người dùng sự đa dạng về mẫu mã sản phẩm để lựa chọn
Android là một hệ điều hành mở, các nhà sản xuất có quyền tự do sử dụng nó với bất kỳ phần cứng nào họ muốn, v dụ như Nexus One (với màn hình hiển thị 3,7 inch, 480×800 pixel, RAM 512MB, vi xử l 1GHz Snapdragon) hoặc Motorola Droid trang bị bàn ph m cơ Rõ ràng, sự lựa chọn phần cứng sẽ khác nhau tùy theo nhà cung cấp service
Tùy biến Rom:
Android có một cộng đồng xây dựng các ROM tùy biến cho các thiết bị chạy Android Custom ROM không chỉ có t nh năng tương tự như Jailbreaking mà còn mang lại một mức độ tuỳ biến cao hơn Có những ROM có thể chuyển UI từ thiết bị này sang thiết bị khác Cũng có các ROM với nhiều t nh năng lớn và được tối ưu hóa cho tốc độ
b Khuyết điểm:
Thời lượng pin thấp:
Hầu hết các thiết bị Android đều có thời lượng pin thấp và đây là một trong những vấn đề quan trọng mà Google và các nhà sản xuất thiết bị Android đang chú trọng giải quyết Một chiếc smartphone Android điển hình có thời lượng sử dụng với tần suất bình thường trong chỉ một ngày, trong khi các loại điện thoại khác vẫn có thể hoạt động thêm dù được sử dụng với tần suất cao trong ngày
Trang 18 Nhiều ứng dụng không hữu ích:
Play Store có một mảng các ứng dụng miễn ph rộng lớn để tải về, tuy nhiên vì Google không kiểm duyệt khi ứng dụng được đăng tải lên nên vẫn có tình trạng tồn tại nhiều ứng dụng không hữu ch, cả kể các ứng dụng nguy hiểm có thể lấy cắp thông tin người dùng Vì thế, người dùng sẽ phải lướt qua nhiều ứng dụng kém chất lượng trước khi tìm ra một ứng dụng tốt để đáp ứng tiêu chuẩn của mình
Hình 1.2: Nhân Linux trên Android
Android sử dụng nhân Linux làm nhân cho các service hệ thống như bảo mật, quản l bộ nhớ, quản l tiến trình (xử l tiến trình, đa luồng), ngăn xếp mạng và trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không đây…) Nhân Linux này cũng có vai trò như một lớp trừu tượng giữa phần cứng và phần mềm
Trang 192.1.5 Thư viện và giao diện lập trình ứng dụng:
Android có một thư viện khá phong phú cung cấp sẵn để người lập trình có thể
sử dụng Hình sau là sơ đồ tóm tắt về hệ thống thư viện này:
Hình 1.3: Thư viện lâp trình ứng dụng trên Android
Android có một tập các thư viện nòng cốt để cung cấp hầu hết các chức năng sẵn có trong thư viện cốt lõi của ngôn ngữ lập trình Java Android Runtime: Bao gồm máy ảo Dalvik và các thư viện Android
Máy ảo Dalvik: Dalvik là máy ảo để chạy các ứng dụng trên Android, đã được
tối ưu để đảm bảo rằng một thiết bị có thể chạy được nhiều Instance một cách hiệu quả
Nó dựa vào nhân Linux để thực hiện đa luồng và quản l bộ nhớ cấp thấp
Bộ thư viện: Android cung cấp các gói API để phát triển ứng dụng Danh sách
các gói core API dưới đây giúp cho bạn có cái nhìn tổng quát về những gì được hỗ trợ sẵn, tất cả các thiết bị chạy Android đều phải hỗ trợ được tối thiểu các API này
android.util: Gói api lõi, chứa các class cấp thấp như containers, string
formatters, XML parsing
android.os: Truy cập tới các chức năng của hệ điều hành chẳng hạn như:
gửi nhận tin nhắn, giao tiếp nội bộ giữa các ứng dụng, thời gian,…
android.graphics: Cung cấp các lớp liên quan tới xử l đồ họa ở mức
thấp Hỗ trợ các hàm cơ bản như vẽ điểm, vẽ miền, tô màu,… trên một khung canvas
Trang 20 android.texT: Cung cấp các hàm phân tích và xử lý chuỗi
android.databasE: Cung cấp các lớp cấp thấp cần thiết để làm việc với
databases
android.content: Dùng để quản lý các tài nguyên, các nội dung, và các
gói
android.view: Views là lớp cha của mọi lớp giao diện người dùng
android.widget: Được kế thừa từ lớp View, bao gồm các lớp để cơ bản để
xây dựng giao diện widget như: lists, buttons, layouts
android.maps: Gói API cấp cao, dùng để truy cập đến các chức năng của
GoogleMap
android.app: Gói API cấp cao, bao gồm lớp Activity và Service - hai lớp
cơ sở cho mọi ứng dụng Android
android.telephony: Cung cấp cho bạn khả năng tương tác trực tiếp với các
chức năng cơ bản của một chiếc điện thoại như nghe, gọi, tin nhắn
android.webkit: Cung cấp một WebView control trên nền webkit để có
thể nhúng vào ứng dụng, cùng với các api điều khiển cơ bản như stop, refresh, cookie manager,…
Cùng với các API của Android, còn có một tập các thư viện C/C++ như:
OpenGL: Thư viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn
OpenGLES 1.0 API
FreeType: Hỗ trợ xử l bitmap và font vector
GGL: Thư viện cơ bản, dùng để cung cấp các engine đồ họa 2D
Libc: Thư viện C chuẩn, được tối ưu cho các thiết bị Linux-based
SQLite Engine: Cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu
của ứng dụng
Trang 21 SSL: Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo mật
truyền thông Internet
Ngoài các thư viện chuẩn của Android, để đáp ứng tiêu ch phù hợp với nhiều thiết bị khác nhau, Android còn có thể có các API phụ thuộc thiết bị như
android.location, android.media, android.opengl, android.hardware, android.bluetooth, android.net.wifi và android.telephony
2.1.6 Khung ứng dụng Android:
Hình 1.4: Khung ứng dụng
Ý tưởng của Android đó là khuyến kh ch việc tái sử dụng lại các thành phần đã
có, cho phép ứng dụng của bạn có thể chia sẻ Activity, Service, Dữ liệu với các ứng dụng khác trong giới hạn truy cập do bạn đặt ra
Cơ chế đó cho phép người lập trình tạo ra một trình quản l danh bạ hoặc trình quay số điện thoại mà có các thành phần người khác có thể tạo mới giao diện và mở rộng chức năng thay vì tạo lại chúng
Những service sau là những service kiến trúc cơ bản nhất của tất cả các ứng dụng, cung cấp một framework cho mọi mọi phần mềm được xây dựng:
Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả
quản l các tầng Activity
Views: Được sử dụng để tạo lập các giao diện người dùng cho các Activity
Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc
gửi các thông báo đến người dùng
Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng
Trang 22 Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn như là
chuỗi k tự, đồ họa được đặt bên ngoài
Các thành phần này không nhất thiết phải có mặt đầy đủ trong ứng dụng Chúng
ta có thể xem các thành phần nào được sử dụng trong ứng dụng bằng việc xem khai
báo trong file AndroidManifest.xml
2.1.8 Activity:
a Khái niệm:
Một hoạt động là một giao diện người dùng trực quan mà người dùng có thể thực hiện trên đó mỗi khi được k ch hoạt Một ứng dụng có thể có nhiều hoạt động và chúng có thể gọi đến nhau chuyển giữa các hoạt động với nhau Mỗi activity là một dẫn xuất của lớp android.app.Activity
Mỗi hoạt động có một cửa sổ để vẽ lên Thông thường cửa sổ này phủ đầy màn hình, ngoài ra nó cũng có thể có thêm các cửa sổ con khác như là hộp thoại…Nội dung của cửa sổ của hoạt động được cung cấp bởi một hệ thống cấp bậc các View (là đối tượng của lớp Views)
b Vòng đời của hoạt động:
Các hoạt động trong hệ thống được quản l bởi một cấu trúc dữ liệu ngăn xếp Khi có một hoạt động được khởi tạo, nó được đẩy vào trong ngăn xếp, chuyển sang trạng thái thực thi và hoạt trộng trước đó sẽ chuyển sang trạng thái chờ Hoạt động này chỉ trở lại trang thái k ch hoạt khi mà hoạt động vừa khởi tạo kết thúc việc thực thi
Trang 23 Stopped Khi một activity hoàn toàn bị che khuất, sẽ rơi vào trạng thái
Stopped Tuy nhiên, nó vẫn còn lưu trữ toàn bộ thông tin trạng thái Và nó thường bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ
Biểu đồ sau mô tả trạng thái trong vòng đời của một hoạt động Hình chữ nhật viên còn thể hiện các phương thức Callback mà chúng ta có thể khai báo để gọi thực thi một số thao tác khi hoạt động chuyển sang trạng thái khác (phương thức Callback là phương thức được gọi lại bởi một phương thức khác khi có một sự kiện xảy ra) Các trạng thái ch nh của một hoạt động được thể hiện bởi các hình viên thuốc
Trang 24Hình 1.5: Vòng đời của một activity
Trang 252.1.9 Service:
a Khái niệm:
Một service (service) là các đoạn mã được thực thi ngầm bởi hệ thống mà người
sử dụng không thấy được Mỗi Service đề được mở rộng từ lớp cơ sở là Service trong gói android.app Có thể kết nối tới hoặc k ch hoạt một Service thông qua interface mà Service đưa ra
b Vòng đời của một service:
Vòng đời của một service được hiểu là quá trình hoạt động từ khi nó được tạo ra cho tới khi bị loại khỏi hệ thống Có hai cách thức để một service có thể được chạy trong hệ thống:
Hình 1.6: Sơ đồ chuyển trạng thái của service
Trang 262.1.10 Broadcast receivers:
Broadcast receivers nhận và phản hồi lại các thông báo Nhiều thong báo có
nguồn gốc từ mã hệ thống, v dụ thông báo thay đổi múi giờ, pin yếu, ảnh đã chụp hay thay đổi ngôn ngữ Các ứng dụng có thể khởi động thông báo, v dụ để các ứng dụng khác biết rằng dữ liệu đã được tải về xong trên thiết bị và sẵn sàng sử dụng
Một ứng dụng có thể có bất kỳ số lượng bộ nhận quảng bá nào để nhận những thông báo quan trọng với nó Tất cả các bộ nhận quảng bá được kế thừa từ lớp BroadcastReceiver
Broadcast receivers không có giao diện Tuy nhiên, chúng có thể khởi động
một hoạt động để đáp lại thông tin mà nó nhận được, hay chúng có thể sử dụng
NotificationManager để thông báo người dùng biết Các thông báo có thể được sự chú
của người dùng theo các cách các nhau như là sáng màn hình, rung thiết bị, bật âm thanh nào đấy… Thông thường, chúng đặt thông báo trên thanh trạng thái, nơi người dùng có thể nhận được thông báo
2.2 SQLite:
SQLite là một dạng cơ sở dữ liệu tương tự như Mysql, PostgreSQL,…Đặc điểm của SQLite là gọn nhẹ, đơn giản Chương trình gồm một tập tin duy nhất, không cần cài đặt, không cần cấu hình hay khởi động mà có thể sử dụng ngay Dữ liệu database cũng được lưu ở một File duy nhất Không có khái niệm user, password hay quyền hạn trong SQLite Database
SQLite không th ch hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ Với các đặc điểm trên SQLite được sử dụng nhiều trong các việc phát triển, thử nghiệm, Hiện nay SQLite đang được ứng dụng vào smartphone như iphone và Android để lưu trữ dữ liệu
Trang 272.2.1 Tạo cơ sở dữ liệu:
Thêm 1 Class DBAdapter để xử l tất cả các thao tác liên quan đến cơ sở dữ liệu
public staticfinal String KEY_ID = "_id";
public staticfinal String KEY_NAME = "name";
+ "name text not null);";
private staticfinal String DATABASE_NAME = "Database_Demo";
private staticfinal String DATABASE_TABLE = "users";
private staticfinal int DATABASE_VERSION = 2;
privatefinal Context mContext;
Tạo một lớp bên trong DBAdapter được extend từ lớp SQLiteHelper, Overriede
2 phương thức onCreate() và onUpgrade() để quản l việc tạo cơ sở dữ liệu và version của cơ sở dữ liệu đó
private static classDatabaseHelper extendsSQLiteOpenHelper{
publicDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
publicvoid onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
@Override
publicvoid onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.i(TAG, "Upgrading DB");
db.execSQL("DROP TABLE IF EXISTS users");
Trang 282.2.3 Thêm giá trị và cơ sở dữ liệu:
publiclong createUser(String name)
2.3 Google Maps API và Google Web Service:
2.3.1 Google APIs Add-On:
Google APIs Add-On là một thành phần mở rộng của môi trường phát triển Android SDK, giúp người lập trình phát triển ứng dụng cho các thiết bị Google APIs
Trang 29Add On bao gồm các chương trình, thư viện và service tùy chỉnh của Google Đặc điểm ch nh của Add on này là Maps external library, cho phép người lập trình có thể thêm khả năng vẽ bản đồ mạnh mẽ vào chương trình Android
Add-On cung cấp Android system image tương th ch có thể chạy trên chương trình giả lập Android Emulator, giúp người lập trình debug, profile và kiểm thử chương trình trước khi phát hành cho người dùng System image bao gồm Maps library và những thành phần hệ thống tùy chỉnh cần thiết, để có thể truy cập vào các service của Google (như Android C2DM) Add-On này không bao gồm bất kỳ chương trình tùy chỉnh nào của Google Khi đã sẵn sàng phát hành chương trình, người lập trình có thể triển khai trên các thiết bị chạy trên phiên bản nền Android th ch hợp và cũng bao gồm những thành phần, thư viện và service tùy chỉnh của google
Các thành phần của Google APIs Add-On:
Maps external library
USB Open Accessory library (chỉ dành cho API cấp 10 và 12+)
Android system image (cùng với Maps library và những thành phần hệ thống tùy chỉnh được xây dựng bên trong)
Map Demo, chương trình Android đơn giản
Tài liệu dành cho Maps library
2.3.2 Maps external library:
Google APIs Add-On đã bao gồm Maps external library (gói com.google.android.maps), giúp người lập trình dễ dàng thêm khả năng vẽ bản đồ mạnh mẽ vào chương trình Các lớp của Maps library đề xuất tải built-in, dựng hình và caching các ô bản đồ, cũng như một loạt các tùy chọn và điều khiển
Lớp ch nh trong Maps library là MapView, lớp con của ViewGroup nằm trong Android standard library MapView biểu diễn bản đồ với dữ liệu thu được từ service Google Maps Khi MapView chạy, nó có thể bắt các sự kiện gõ từ và chạm điểm trên màn hình để tự động điều chỉnh bản đồ, bao gồm những yêu cầu xử l mạng cho bổ
Trang 30sung các ô bản đồ Nó cũng cung cấp tất cả các yếu tổ giao diện người dùng cần thiết cho điều khiển bản đồ Chương trình có thể sử dụng những phương thức của lớp MapView để tự động điều khiển MapView vẽ lên một số địa điểm trên bản đồ
Nói chung, lớp MapView cung cấp một gói bao bọc xung quanh Google Maps API, cho phép chương trình thao tác dữ liệu Google Maps thông qua các phương thức trong lớp
Lớp MapView trong Maps external library rất hữu ch cho người lập trình t ch hợp Google Maps vào ứng dụng của mình Nó cung cấp việc tải bản đồ built-in, dựng hình, caching các ô bản đồ, cũng như một loạt các tùy chọn và điều khiển Nó cung cấp một gói bao bọc xung quanh Google Maps API, cho phép chương trình thao tác dữ liệu Google Maps thông qua các phương thức trong lớp
Vì MapView để người lập trình truy cập dữ liệu Google Maps, người lập trình cần phải đăng k service Google Maps và đồng các điều khoản service trước khi MapView được phép nhận dữ liệu từ Google Maps Việc đăng k này áp dụng khi người lập trình đang phát triển ứng dụng trên trình giả lập emulator hoặc chuẩn bị triển khai cho thiết bị di dộng
Map external library không phải là một thành phần của thư viện chuẩn Android, cho nên nó có thể không có sẵn ở một vài thiết bị Android Google APIs Add-On cung cấp Maps library để người lập trình có thể phát triển, xây dựng và điều khiển chương trình dựa trên bản đồ truy cập dữ liệu Google Maps
Để sử dụng các lớp của Maps external library trong chương trình, người lập trình cần phải:
Tạo một project Android mới (hoặc cấu hình lại project) để cài đặt Google APIs Add-On
Cài đặt cấu hình thiết bị ảo Android AVD để sử dụng Google APIs
Add-On
Trang 31 Thêm các thư viện cần thiết vào tập tin manifest của chương trình để liên kết với Maps library
Lấy Maps API key, giúp chương trình có thể biểu diễn dữ liệu từ service Google Maps
Đăng k chương trình hợp lệ, sử dụng certificate phù hợp với API key 2.3.3 Google Places API:
Google Places API là một phần của Google Map API Web Service Google Places API trả về thông tin của các địa điểm Các thông tin được xác định trong API này như: cơ sở hình thành, vị tr địa l , các địa điểm nổi bật được quan tâm,…Places API có 4 loại request cơ bản:
Place Searches: trả về danh sách các địa điểm dựa trên vị tr của người
dùng
Place Details requests: trả về những thông tin chi tiết của một địa điểm cụ
thể
Place Check-ins: cho phép người dùng thông báo đã check-in một địa điểm
Nó được dùng để đo mức độ phổ biến của địa điểm đó
Place Reports: cho phép người dùng thêm một địa điểm mới và xóa địa
điểm mà ứng dụng của người dùng đã thêm
Google Places API cũng hỗ trợ cho việc nghiên cứu, thu thập các dữ liệu về hoạt động như thu thập hiệu suất, số lượng, nhằm tăng cường thông tin về các địa điểm trong Places Service
2.3.4 Place Searches:
Để tìm kiếm, sử dụng request url như sau:
https://maps.googleapis.com/maps/api/place/search/output?parameters
Đầu ra có thể là một trong các giá trị sau:
Json: dữ liệu đầu ra dưới dạng file JavaScript Object Notation
Trang 32 Xml: dữ liệu đầu ra dưới dạng file xml
Các parameter cần thiết phải có:
Key: key API của ứng dụng để quản l hạn ngạch sử dụng cũng như các
địa điểm được thêm bởi ứng dụng của người dùng
Location: Khoảng kinh độ, vĩ độ để lấy thông tin địa điểm
Radius: Phạm vi tìm kiếm Nên đặt cùng với độ ch nh xác của bộ cảm
biến địa điểm
Sensor: Xác định là yêu cầu có phải được gửi từ thiết bị có cảm biến địa
điểm hay không Giá trị thiết đặt true hoặc false
Ngoài các parameter cơ bản trên còn có các parameter tùy chọn khác như: keyword, language, name, rankby, types
V dụ khi tìm ATM quanh bán k nh 600m tại khu du lịch Văn Thánh Kết quả json trả về:
"name" : "ATM Đông Á",
"reference" : ps3YjZghHyrNP2lnyjyc_Azb6H_gBnMGgHgWrO7hp-74LJi5xiFYu-
"CnRkAAAA95DaXCjmZAMp0mwEI0CRN85sk_ncvIZfQo4gtdzd2ym-5yeokfmDPyJd7W0BDr8aO1I4gXmEPEBTXTB4AmI0H6gUL6NWsdVBIQ9KnJxG8Ekh5tkPCKUfRk7RoUb0SupGHeN1Z54U98EfT6mN1zMus",
"types" : [ "atm", "finance", "establishment" ],
"vicinity" : "Điện Biên Phủ, phường 21, tp Hồ Ch Minh"
}
],
"status" : "OK"
Trang 33}
Ý nghĩa các thuộc t nh:
Icon: chứa url tới icon mô tả về địa điểm
Id: một định danh duy nhất cho địa điểm Nó không giúp lấy thêm thông
tin mà giúp kiểm tra lại thông tin về địa điểm với những lần tìm kiếm riêng
rẽ
Geometry: thông tin vị tr địa l của địa điểm bao gồm lat và lng
Name: tên địa điểm
Reference: là token dùng để lấy thêm thông tin khác của địa điểm
Status: trạng thái trả về
2.3.5 Place Details Requests:
Dựa vào thuộc t nh reference ở phần search để lấy thông tin chi tiết hơn của địa điểm đó
Yêu cầu gửi đi có dạng:
Languague: ngôn ngữ sẽ đƣợc hiển thị
Reference: parameter định danh duy nhất ứng với địa điểm Là giá trị trả
về khi tìm kiếm
Trang 342.3.6 The Google Places Autocomplete API:
Google Places Autocomplete API là một phần của Google Places API , chia sẻ cùng API key và quota Do vậy mỗi request tới Google Places Autocomplete API được
t nh như một request tới Google Places
Google Places Autocomplete API trả về thông tin địa điểm dựa trên từ khóa tìm kiếm Nó thường được sử dụng để tạo chức năng gợi khi người dùng nhập chuỗi k
tự vào ô tìm kiếm
Place Autocomplete Request:
https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
Các parameter phải có:
Input: chuỗi k tự tìm kiếm, service sẽ trả về những gợi phù hợp
Sensor: Xác định là yêu cầu có phải được gửi từ thiết bị có cảm biến địa
điểm hay không Giá trị thiết đặt true hoặc false
Key: Place API Key
Các parameter tùy chọn khác: offset, location, radius, language, types
2.3.7 The Google Directions API:
Google Directions API là service có chức năng t nh toán, đưa ra hướng dẫn chỉ đường giữa 2 địa điểm thông qua http request API này sẽ xác định thông tin về điểm bắt đầu, điểm đến, điểm dừng dưới dạng chuỗi văn bản hoặc kinh vĩ độ Google Directions API có thể trả về đa phần chỉ dẫn sử dụng một loạt các điểm dừng
Quá trình thực hiện t nh toán chỉ dẫn đường đi đòi hỏi thời gian và sự làm việc chuyên sâu Vì vậy, bất cứ khi nào có thể, quá trình sẽ t nh toán trước thời gian thực hiện và có thể được lưu lại kết quả vào bộ nhớ cache tạm thời theo đồ thiết kế của người lập trình
Directions Request:
http://maps.googleapis.com/maps/api/directions/output?parameters
Trang 35Giá trị đầu ra được trả về ở dạng file json hoặc xml Các parameter cần thiết phải có:
Origin: địa chỉ hoặc tọa độ của địa điểm bắt đầu để tìm đường đi Nếu
người dùng nhập vào một chuỗi, thì chuỗi này sẽ được Direction service mã hóa và chuyển thành giá trị vĩ độ, kinh độ để t nh toán tìm đường
Destination: tương tự ta có parameter địa điểm đến
Sensor: Xác định là yêu cầu có phải được gửi từ thiết bị có cảm biến địa
điểm hay không Giá trị thiết đặt true hoặc false
Ngoài ra còn có các parameter tùy chọn khác: mode, waypoints, alternatives, avoid, units, region
2.3.8 Geocoding API:
Geocoding API là service mã hóa, chuyển đổi địa chỉ ( như: “1600 Amphitheatre Parkway, Mountain View, CA”) vào tọa độ địa l ( như: “ vĩ độ 37.423021 và kinh độ -122.083739”), mà lập trình viên có thể sử dụng để đánh dấu tọa
độ hay địa điểm trên bản đồ Ngoài ra, service còn cho phép bạn thực hiện chuyển đổi
từ tọa độ vào địa chỉ, quá trình này được gọi là “Mã hóa địa l đảo ngược”
Geocoding Request:
https://maps.googleapis.com/maps/api/geocode/output?parameters
Giá trị đầu ra có thể là json hoặc xml Các parameter cần thiết phải có:
Address: địa chỉ mà bạn muốn mã hóa
Hoặc:
Latlng: giá trị vĩ độ, kinh độ của địa điểm
Sensor: Xác định là yêu cầu có phải được gửi từ thiết bị có cảm biến địa
điểm hay không Giá trị thiết đặt true hoặc false
Ngoài ra còn có các parameter tùy chọn như: bounds , language, region
Trang 36CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ
3.1 Xác định yêu cầu hệ thống:
3.1.1 Tổng quan:
Ứng dụng có thể chạy trực tiếp trên thiết bị nền hệ điều hành Android
Yêu cầu thiết bị khi sử dụng ứng dụng phải được kết nối Internet
Ứng dụng có thể lấy thông tin dữ liệu từ dịch vụ Google Maps và biểu diễn lên bản đồ cho người dùng thao tác trên đó
Các chức năng năng ch nh của ứng dụng:
Định vị thiết bị: Xác định vị tr của thiết bị đang sử dụng ứng dụng
Tìm kiếm địa điểm: Tìm kiếm địa điểm bằng cách nhập từ khóa tìm kiếm
Quản l địa điểm: Ứng dụng có cơ sở dữ liệu chứa thông tin một số địa danh của Thành phố Hồ Ch Minh và cho phép người dùng bổ sung, chỉnh sửa và xóa địa điểm cần thiết cho nhu cầu người dùng
Tìm kiếm đường đi: Tìm đường đi từ thông tin điểm xuất phát và đ ch đến do người dùng cung cấp
Xem vị tr các địa điểm trên bản đồ: Vẽ vị tr các điểm lân cận và từng loại địa điểm (cây xăng, Ngân hàng, ATM, bệnh viện, trường học, bến xe…)
có sẵn trong cơ sở dữ liệu trên bản đồ
Trang 373.1.2 Chức năng định vị:
Xác định được vị tr của thiết bị đang sử dụng ứng dụng với sai lệch chấp nhận được (sai lệch tối đa 100m)
Biểu diễn vị tr vừa định vị lên bản đồ và hiện thị thông tin địa chỉ
3.1.3 Chức năng Tìm kiếm địa điểm:
Sử dụng các API cần thiết để của Google đế lấy thông tin tìm kiếm
Người dùng có thể nhập từ khóa là địa danh hoặc địa chỉ xác định, ứng dụng sử dụng thông tin đó mà thực hiện tìm kiếm đưa ra danh sách kết quả cho người dùng lựa chọn
Phạm vi tìm kiếm không giới hạn Nhưng ứng dụng đòi hỏi người dùng phải cung cấp thông tin đầy đủ, rõ ràng và ch nh xác thì mới cho ra kết quả tìm kiếm hiệu quả
Biểu diễn vị tr vừa tìm được lên bản đồ và hiện thị thông tin địa chỉ
3.1.4 Chức năng Quản l địa điểm:
Sử dụng hệ cơ sở dữ liệu SQLite
Cung cấp sẵn cho người dùng một số địa danh đặc trưng (chợ Bến Thành, nhà thờ Đức Bà, Dinh Độc lập…) và các loại địa điểm cần thiết cho nhu cầu của người dùng (cây xăng, Ngân hàng, ATM, bệnh viện, trường học, bến xe…) trên phạm vi địa bàn Thành phố Hồ Ch Minh
Người dùng có thể thực hiện các thao tác bổ sung, chỉnh sửa và xóa các địa điểm
Khi người dùng bổ sung và chỉnh sửa một địa điểm có thể bằng hai cách: chọn trên bản đồ hoặc nhập thông tin cần thiết Ứng dụng phải tự tìm kiếm vị tr ch nh xác của địa điểm để thêm hoặc cập nhật vào cơ sở dữ liệu trong trường hợp người dùng nhập thông tin mà không chọn trên bản đồ
Người dùng có thể xem vị tr các loại địa điểm trên bản đồ
Trang 383.1.5 Chức năng Tìm đường đi:
Sử dụng API của Google để lấy thông tin cần thiết
Người dùng cung cấp thông tin điểm xuất phát và đ ch đến bằng các cách sau:
Vị tr của thiết bị
Chọn trên bản đồ
Nhập thông tin cần thiết
Chọn từ danh sách địa điểm trong hệ cơ sở dữ liệu
Ứng dụng phải tự tìm kiếm địa điểm cập nhật vị tr ch nh xác để tìm đường đi hiệu quả trong trường hợp người dùng nhập thông tin mà không chọn trên bản đồ hoặc
dữ liệu có sẵn
Ứng dụng tự động thể hiện ưu tiên đường đi ngắn nhất và ngoài ra cho phép người dùng lựa chọn nhiều tuyến đường nếu có
Vẽ đường đi trên bản đồ và hiển thị hướng dẫn chi tiết cho người dùng
3.1.6 Chức năng Xem vị trí các địa điểm:
Cho phép người dùng xem các địa điểm lân cận hoặc xem theo loại địa điểm (cây xăng, Ngân hàng, ATM, bệnh viện, trường học, bến xe…) có sẵn trong cơ sở dữ liệu trên bản đồ
Sử dụng vị tr của thiết bị có được từ chức năng định vị phục vụ cho mục đ ch xem các điểm lận cận
Trang 39Mô tả tóm tắt Tên use-case: Định vị thiết bị
Mục đ ch: Cung cấp cho người dùng vị tr hiện hành của thiết bị đang sử dụng ứng dụng
Tác nhân: Người dùng
Dòng sự kiện ch nh Ứng dụng lấy tọa độ của thiết bị
Dòng sự kiện phụ Khi thiết bị thay đổi vị tr , ứng dụng cập nhật lại toạ độ vị
tr của thiết bị
Tiền điều kiện Người dùng k ch hoạt chức năng định vị
Tim kiem dia diem Dinh vi thiet bi
Quan ly dia diem
Tìm duong di
Xem dia diem
Su dung he thong Nguoi dung
Trang 40Hậu điều kiện Khi ứng dụng xác định được vị tr của thiết bị sẽ vẽ địa
điểm trên bản đồ và hiển thị địa chỉ
Bảng 3.1: Đặc tả use case định vị thiết bị
Hình 3.2: Sơ đồ use-case xác định vị trí
b Use case tìm kiếm đường đi:
Đặc tả use-case Tìm kiếm địa điểm
Mô tả tóm tắt Tên use-case: Tìm kiếm địa điểm
Mục đ ch: Tìm kiếm địa điểm bằng cách nhập từ khóa tìm kiếm
Ứng dụng hiển thị danh sách địa điểm tìm được khớp với
từ khóa tìm kiếm
Người dùng chọn địa điểm mong muốn
Dinh vi thiet bi Nguoi dung