1. Trang chủ
  2. » Luận Văn - Báo Cáo

ứng dụng tìm kiếm điểm ATM trên android, có MAP

73 957 2
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Ứng Dụng Tìm Kiếm Điểm ATM Trên Android, Có Map
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Định dạng
Số trang 73
Dung lượng 3,69 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ứng dụng tìm kiếm điểm ATM trên android, có hỗ trợ map, có server viết bằng C#

Trang 1

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Báo cáo lý thuyết về khái niệm, tính năng, cấu trúc và lập trình trên Android,tìm hiểu lý thuyết về Webservice và áp dụng vào lập trình trong Android Ngoài racòn tìm hiểu về các Map API và ứng dụng Google Map API vào hiển thị vị trí trênbản đồ, tìm hiểu về lập trình Web với Asp.net và SQL Server

Tìm hiểu thực tế và phát biểu bài toán, phân tích thiết kết hệ thống: tìm các tácnhân, các Use case và mô tả, vẽ các biểu đồ cho các Use case này, thiết kế và tạolập các bảng trong cơ sở dữ liệu

Lập trình, gỡ lỗi và kiểm tra kiểm thử ứng dụng Lập trình Android client vớicông cụ Eclipse đã tích hợp bộ Android SDK trên Windows Lập trình Webservicebằng Visual studio và SQL server 2008 Lập trình Website bằng Visual webdeverloper và SQL server 2008

Trang 2

MỤC LỤC

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 2

LỜI CẢM ƠN 3

MỤC LỤC 4

DANH MỤC CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT 7

DANH MỤC CÁC BẢNG 8

DANH MỤC CÁC HÌNH VẼ 9

PHẦN I ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 11

Chương 1 ĐẶT VẤN ĐỀ 11

1.1 Phát biểu bài toán 11

1.2 Yêu cầu với ứng dụng ATM Location 11

1.3 Mục tiêu và phạm vi 12

Chương 2 CƠ SỞ LÝ THUYẾT 13

2.1 Tổng quan về các hệ điều hành trên di động 13

2.2 Android là gì ? 14

2.3 Tổ chức liên minh thiết bị cầm tay mã nguồn mở 15

2.4 Ưu điểm của Android 16

2.5 Tính năng của Android[2][4] 16

2.6 Kiến trúc của Android 19

2.7 Phần mềm trên Android 21

2.7.1 Cơ bản về phần mềm trên Android 21

2.7.2 Các thành phần trong phần mềm 22

2.7.3 Tập tin AndroidManifest.xml 23

2.8 Lập trình ứng dụng trên Android 23

2.8.1 Môi trường phát triển: 23

Trang 3

2.8.2 Máy ảo Dalvik 23

2.8.3 Tổng quan về các công cụ 24

2.8.4 Giao diện trong Android 25

2.9 Tổng quan về Map API 25

2.10 Google map API trên Android 26

2.11 Khái niệm về Web service và SOAP 27

2.12 Tiếp cận công nghệ ASP.NET và SQL Server 27

PHẦN 2: CÁC KẾT QUẢ ĐẠT ĐƯỢC 29

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 29

3.1 Đặc tả bài toán 29

3.2 Xác định các tác nhân của hệ thống 29

3.3 Xác định các Use case hệ thống, vẽ biểu đồ Use case 30

3.4 Đặc tả các Use case 31

3.4.1 Use case Xem thông tin địa điểm ATM 31

3.4.2 Use case Xem thông tin các ngân hàng 33

3.4.3 Use case Xem thông tin trên bản đồ 34

3.4.4 Use case Gửi ý kiến phản hồi 34

3.4.5 Use case Đăng nhập quản trị 35

3.4.6 Use case Cập nhật thông tin ATM 36

3.4.7 Use case Cập nhật thông tin Ngân hàng 38

3.4.8 Use case Quản lý ý kiến phản hồi 41

3.5 Tìm lớp 41

3.5.1 Xác định các lớp dựa vào các khái niệm của lĩnh vực ứng dụng 41

3.5.2 Xác định các lớp tham gia vào các Use case 43

3.6 Xây dựng các biểu đồ cho các Use case 45

3.6.1 Các biểu đồ cho Use case Xem thông tin địa điểm ATM 45

3.6.2 Các biểu đồ cho Use case Xem thông tin các ngân hàng 46

Trang 4

3.6.3 Các biểu đồ cho Use case Xem thông tin trên bản đồ 48

3.6.4 Các biểu đồ cho Use case Gửi ý kiến phản hồi 50

3.6.5 Các biểu đồ cho Use case Đăng nhập quản trị 51

3.6.6 Các biểu đồ cho Use case Cập nhật thông tin ATM 52

3.6.7 Các biểu đồ cho Use case Cập nhật thông tin Ngân hàng 55

3.6.8 Các biểu đồ cho Use case Quản lý ý kiến phản hồi 57

3.6.9 Biểu đồ lớp cho toàn hệ thống 59

3.7 Xây dựng biểu đồ triển khai 60

3.8 Thiết kế cơ sở dữ liệu 60

3.8.1 Ánh xạ các liên kết 60

3.8.2 Các bảng cơ sở dữ liệu của phần mềm ATM Location: 61

Chương 4 CÀI ĐẶT VÀ TRIỂN KHAI 64

4.1 Cài đặt chương trình 64

4.1.1 Lựa chọn môi trường cài đặt 64

4.1.2 Lựa chọn mô hình cài đặt 64

4.2 Cài đặt chương trình 64

4.2.1 Triển khai thử nghiệm ứng dụng trên Android Emulator 64

4.2.2 Triển khai thử nghiệm ứng dụng Web trên localhost 66

4.2.3 Các kịch bản thử nghiệm 67

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 74

TÀI LIỆU THAM KHẢO 75

Trang 5

DANH MỤC CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT

Các ký hiệu hình trong phân tích hệ thống UML[1]

Tác nhân(Actor)

Mô tả đối tượng là người hay một hệ thống nào khác tương tác lên hệ thống đang xét

ClassBoundary Lớp thể hiện các thành phần giao diện người dùng

hệ thống

Quan hệ kếthợp

Mô tả mối quan hệ giữa tác nhân và UseCase (một tác nhân kích hoạt một UseCase)

NQT: Người quản trị OHA: Open Handset Alliance

NSD: Người sử dụng GPS: Global Positioning System

CSDL: Cơ sở dữ liệu SDK: Software Development Kit

ATM: Automated Teller Machine JDK: Java Development Kit

Trang 6

DANH MỤC CÁC BẢNG

Bảng 3.1 Các tác nhân và các Use case 30

Bảng 3.2 Bảng Tài khoản 61

Bảng 3.3 Bảng Ngân hàng 61

Bảng 3.4 Bảng ATM 62

Bảng 3.5 Bảng Tỉnh 62

Bảng 3.6 Bảng Quận/huyện 62

Bảng 3.7 Bảng Ý kiến người sử dụng 63

Bảng 3.8 Bảng Liên ngân hàng 63

Trang 7

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 HĐH Android 2.3 14

Hình 1.2 Tổ chức liên minh nguồn mở OHA 15

Hình 1.3 Kiến trúc của Android [3] 19

Hình 3.1 Biểu đồ Use case 31

Hình 3.2 Biểu đồ trình tự cho Use case Xem thông tin địa điểm ATM 45

Hình 3.3 Biểu đồ lớp cho Use case Xem thông tin địa điểm ATM 46

Hình 3.4 Biểu đồ thành phần cho Use case Xem thông tin địa điểm ATM 46

Hình 3.5 Biểu đồ trình tự cho Use case Xem thông tin các ngân hàng 47

Hình 3.6 Biểu đồ lớp cho Use case Xem thông tin các ngân hàng 47

Hình 3.7 Biểu đồ thành phần cho Use case Xem thông tin ngân hàng 48

Hình 3.8 Biểu đồ trình tự cho Use case Xem thông tin trên bản đồ 48

Hình 3.9 Biểu đồ lớp cho Use case Xem thông tin trên bản đồ 49

Hình 3.10 Biểu đồ thành phần cho Use case Xem thông tin trên bản đồ 49

Hình 3.11 Biểu đồ trình tự cho Use case Gửi ý kiến phản hồi 50

Hình 3.12 Biểu đồ lớp cho Use case Gửi ý kiến phản hôi 50

Hình 3.13 Biểu đồ thành phần cho Use case Gửi ý kiến phản hồi 51

Hình 3.14 Biểu đồ trình tự cho Use case Đăng nhập quản trị 51

Hình 3.15 Biểu đồ lớp cho Use case Đăng nhập 51

Hình 3.16 Biểu đồ thành phần cho Use case Đăng nhập 52

Hình 3.17 Biểu đồ trình tự cho kịch bản Thêm một cây ATM 52

Hình 3.18 Biểu đồ trình tự cho kịch bản Xóa một cây ATM 53

Hình 3.19 Biểu đồ trình tự cho kịch bản Sửa thông tin một cây ATM 53

Hình 3.20 Biểu đồ lớp cho Use case Cập nhật thông tin ATM 54

Hình 3.21 Biểu đồ thành phần cho Use case Cập nhật thông tin ATM 54

Hình 3.22 Biểu đồ trình tự cho kịch bản thêm ngân hàng 55

Hình 3.23 Biểu đồ trình tự cho kịch bản sửa thông tin ngân hàng 55

Hình 3.24 Biểu đồ trình tự cho kịch bản xóa một ngân hàng 56

Trang 8

Hình 3.25 Biểu đồ lớp cho Use case Cập nhật thông tin ngân hàng 56

Hình 3.26 Biểu đồ thành phần cho Use case Cập nhật thông tin ngân hàng 57

Hình 3.27 Biểu đồ trình tự cho kịch bản cập nhật ý kiến phản hồi 57

Hình 3.28 Biểu đồ trình tự cho kịch bản xóa ý kiến phản hồi 58

Hình 3.29 Biểu đồ lớp cho Use case Quản lý ý kiến phản hồi 58

Hình 3.30 Biểu đồ thành phần cho Use case Quản lý ý kiến phản hồi 59

Hình 3.31 Biểu đồ lớp của toàn hệ thống 59

Hình 3.32 Biểu đồ triển khai của hệ thống 60

Hình 3.33 Bảng cơ sở dữ liệu toàn hệ thống 63

Hình 4.1 Hộp thoại Environment Variables 65

Hình 4.2 Cửa sổ lệnh của Windows 65

Hình 4.3 Cửa sổ Android Emulator – Skin HVGA-L 66

Hình 4.4 Giao diện khởi động 67

Hình 4.5 Giao diện chính 67

Hình 4.6 Danh sách Ngân hàng 68

Hình 4.7 Danh sách Tỉnh/TP 68

Hình 4.8 Danh sách Quận/huyện 69

Hình 4.9 Giao diện tìm kiếm ATM 69

Hình 4.10 Danh sách ATM 69

Hình 4.11 Hiển thị bản đồ 69

Hình 4.12 Giao diện Tab ngân hàng 70

Hình 4.13 Giao diện thông tin 70

Hình 4.14 Giao diện phần giới thiệu 70

Hình 4.15 Giao diện trang đăng nhập của người quản trị 71

Hình 4.16 Giao diện trang thay đổi mật khẩu 72

Hình 4.17 Giao diện trang cập nhật cơ sở dữ liệu 73

Trang 9

PHẦN I ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP

Chương 1 ĐẶT VẤN ĐỀ

Sự phát triển chóng mặt của Công nghệ thông tin nói chung và các thiết bị diđộng nói riêng đã đem lại những thay đổi to lớn cho mọi lĩnh vực của đời sống conngười Ngày nay, trong nhịp sống xã hội hiện đại, con người không thể tách rời vớichiếc điện thoại – một phương tiên liên lạc và hơn thế nữa là phương tiện làm việc,kết nối, giải trí Chính vì vậy, với nhu cầu ngày càng cao trong lĩnh vực điện thoại

di động, việc sắm cho mình một chiếc điện thoại thông minh để thỏa mãn nhu cầu

và niềm đam mê trở nên rất cần thiết Vì vậy, việc chọn lựa một chiếc điện thoạithông minh phù hợp cho mình cũng rất quan trọng Chúng ta đang đứng trước rấtnhiều lựa chọn về hệ điều hành cho chiếc điện thoại thông minh của mình như iOS,Android, Symbian, Blackberry, WebOS, Bada … và Android chính là sự lựa chọntốt nhất về giá cả, tính năng, thẩm mỹ, ứng dụng …

Trong thời đại công nghiệp này thì việc di chuyển và trao đổi tiền bạc đượcdiễn ra thường xuyên nên mọi người thường tìm đến các cột ATM để giao dịchđược tiện lợi Nhưng nhiều khi việc tìm được một địa điểm đặt máy ATM cũng làmột quá trình gian nan Như vậy, với nhu cầu đặt ra của người dùng khi cầm trongtay một chiếc điện thoại thông minh có thể tra cứu thông tin điểm đặt ATM mộtcách nhanh chóng chính xác thì rất tuyệt vời Do vậy, việc xây dựng một hệ thốngATM Location là rất thực tế và có cơ hội ứng dụng cao Khách hàng có thể dùngứng dụng để tra cứu thông tin dễ dàng, tiện lợi mà không mất chi phí về thông tin.Hơn nữa, việc vừa di chuyển vừa tìm kiếm trên bản đồ mà ứng dụng hỗ trợ cũng sẽrất đơn giản Bên cạnh đó, người dùng có thể đóng góp ý kiến để phát triển nguồn

dữ liệu cho cộng đồng người sử dụng

dàng, nhanh chóng Cung cấp thông tin về địa điểm, địa chỉ cây ATM đượctìm kiếm theo ngân hàng, quận huyện và địa chỉ người dùng nhập liệu, thôngtin về các ngân hàng, hiển thi vị trí ATM trên bản đồ số,Thông tin được cậpnhật thường xuyên, chính xác bằng cách kết hợp cả ý kiến phản hồi củangười sử dụng Hiển thị vị trí trên bản đồ sinh động, chính xác

về ATM, ngân hàng và ý kiến phản hồi của người sử dụng Yêu cầu trang

Trang 10

web cần có tính bảo mật tránh việc cơ sở dữ liệu bị phá hoại, các chức năngdành cho người quản trị hoạt động đầy đủ, chính xác.

- Xây dựng ứng dụng ATM Location trên Android cho người sử dụng

- Xây dựng Webservice cung cấp dữ liệu qua mạng cho ứng dụng trênAndroid của người sử dụng

- Xây dựng trang Web cung cấp cho người quản trị công cụ để cập nhật cơ

sở dữ liệu

Lập trình Location base service trên di động là một lĩnh vực tương đối rộng

và khá mới mẻ Trong phạm vi đồ án chỉ tập trung vào báo cáo một số vấn đềchính sau:

- Tìm hiểu lý thuyết về định nghĩa, tính năng, cấu trúc, công cụ và cách lậptrình trên Android Tìm hiểu thêm về lập trình webservice,, website vàGoogle map để hỗ trợ lập trình cho ứng dụng

- Tìm hiểu thực tế bài toán về địa điểm ATM, từ đó phân tích thiết kế hệthống, vẽ các biểu đồ cho bài toán

- Lập trình ứng dụng trên Android bằng Eclipse, tích hợp thêm GoogleMap API, trao đổi với webservice bằng ksoap2 Lập trình webservice vàwebsite trên Net bằng Microsoft Visual Studio 2010 Bẫy lỗi và kiểm thửứng dụng

Trang 11

Chương 2 CƠ SỞ LÝ THUYẾT

Tính chất thông minh (smart) của điện thoại thông minh (smartphone) chủ yếu

là do "phần mềm" mang lại Điện thoại thông minh hiện tại có thể xem như mộtmáy tính cá nhân thu nhỏ, kết nối mạng và hệ điều hành đang giữ vai trò quyết định

về sức mạnh, nét riêng của từng sản phẩm Khi chọn điện thoại thông minh, bạncũng phải chọn lựa nền tảng hệt như khi đứng trước hệ điều hành cho máy Mac vàPC.Mọi người vẫn quan niệm rằng: iPhone dành cho người sành điệu, Android củalập trình viên, Symbian cho người dùng phổ thông, Windows Mobile mạnh vănphòng, BlackBerry hướng tới giới "nghiền" thông tin, WebOS cho mạng xã hội…Hầu hết điện thoại thông minh hiện nay có màn hình và bàn phím cảm ứng,định vịGPS thời gian thực, hỗ trợ duyệt web, chạy ứng dụng, xem ảnh, video, chơi game nhưng đi đến chi tiết thì mỗi nền tảng vẫn có sự khác biệt:

- iOS: iPhone vẫn tiếp tục duy trì và phát triền nền tảng của mình ngày một

tốt Điểm sáng nhất của hệ điều hành này chính là tính năng, được xây dựng có hệthống và bổ sung dần dần.Apple sẵn sàng bỏ đi một vài tính năng chủ chốt trênsmartphone do khó triển khai hoặc tiêu tốn nhiều pin Kết quả là thiết bị có một giaodiện đẹp nhưng chưa đủ làm hài lòng người dùng như không hỗ trợ Flash trên trìnhduyệt và khả năng chạy đa nhiệm còn hạn chế khi chỉ những ứng dụng của bên thứ

ba được tối ưu hóa mới có thể chạy đa nhiệm

- Android: Android là giấc mơ của các chuyên gia phát triển vì nó hoàn toàn

mở và người ta có thể xây dựng mọi ứng dụng trên đó Chẳng hạn, điện thoại không

có cảm ứng đa điểm thì sẽ có người viết tính năng này cho nó Khả năng chạy đanhiệm, tích hợp Google tối đa (Gmail, Google Talk, xem bản đồ trên Google Maps,

sử dụng các dịch vụ Google Goggles, YouTube, Google Calendar hay tìm kiếmGoogle Search), Android Market không tự tiện xóa các phần mềm của nhà pháttriển, đồng bộ điện thoại với máy tính và bộ nhớ, thiết bị ở nhiều mức giá, hệ điềuhành nguồn mở là những điểm đáng lưu tâm của Android

- Symbian: Giao diện vẫn giữ nguyên từ thời điện thoại thông minh chỉ có

phím số và một vài nút khác nên thường dẫn bạn duyệt qua một loạt trình đơn (cùngnhóm không dùng màn hình cảm ứng nhưng BlackBerry thiết kế nhanh, hiệu quảhơn) Hình thức lạc hậu so với chuẩn hiện tại khi vẫn dùng phông, biểu tượng đơngiản Ứng dụng mở rộng có sẵn khá nhiều trên những site như Handago nhờ hệ điềuhành này đã được sử dụng lâu đời, chấp nhận rộng rãi

- Windows Mobile: Hệ điều hành của Microsoft được giới doanh nhân đánh

giá cao nhờ khả năng bảo mật e-mail, chạy các ứng dụng doanh nghiệp có bản

Trang 12

quyền, làm việc và tương thích với máy tính Về mặt lý thuyết, họ thực hiện gầnnhư mọi thứ họ muốn trên hệ thống Windows Mobile Tuy nhiên, do chúng đượctích hợp trong điện thoại của nhiều hãng sản xuất khác nhau nên có sự khác biệt vềchất lượng, giao diện và trải nghiệm người dùng.

- BlackBerry: Giống Windows Mobile, RIM BlackBerry là điện thoại

hướng đến doanh nghiệp, nhưng đã thay đổi nhiều để phù hợp hơn với người dùngbình dân qua phiên bản OS 4.6 và điện thoại màn hình cảm ứng BlackBerry Storm.Tuy vậy, nền tảng này vẫn chủ yếu được đánh giá cao nhờ khả năng trao đổi thôngđiệp, e-mail

- WebOS: hệ điều hành WebOS của HP mới mua lại từ tay Palm Pre cũng

đang được quan tâm vì nó cho phép chạy nhiều chương trình cùng lúc và dễ dàngchuyển đổi giữa các ứng dụng Nếu iPhone phù hợp người sử dụng nói chung,Windows Mobile phục vụ doanh nhân, Android cho chuyên gia lập trình vàBlackBerry dành cho người nghiện e-mail thì WebOS sẽ được giới trẻ đam mê kếtnối và xu hướng Web 2.0 yêu thích

- Kết luận: Hiện tại, iPhone OS có phần thắng thế so với Google OS đáng

gờm nhưng theo thời gian, hệ điều hành nguồn mở của Android có thể sẽ vượt lênđứng đầu với những cải tiến nhắm thẳng vào những gì khách hàng mong đợi và sự

"cởi mở" với các nhà phát triển thứ ba Theo dòng lịch sử, BlackBerry OS vữngvàng thể hiện sức mạnh truyền thống nhưng vẫn có được những bổ sung khá hợpthời.WebOS mới được cập nhật song không mấy khả quan và Windows Mobile,Symbian đang dần trở nên "già nua" không còn hợp thời

Android không chỉ là một hệ điều hành dành

cho thiết bị di động thông minh mà nó còn đưa ra một

tập hợp hoàn chỉnh phần mềm cho các thiết bị di động

(phần mềm ngăn sếp – stack software): Một hệ điều

hành, phần mềm trung gian (để liên kết các phần mềm

hoặc ứng dụng khác – middleware) và các ứng dụng

phần mềm của Google (Google đã mua lại công ti liên

hợp Android vào năm 2005) nhưng nói chính xác hơn

thì đó là của một liên minh các thiết bị cầm tay nguồn

mở (Open Handset Alliance – OHA, được khởi xướng

thành lập và đứng đầu bởi Google) Lõi của Android là

nhân Linux có nền tảng là mã nguồn mở bao gồm 12

Trang 13

C, 2.1 triệu mã Java và 1.75 triệu dòng mã C++ Google đã công bố hầu hết các mãnguồn của Android theo bản cấp phép Apache – bản cấp phép dùng cho phần mềmnguồn mở Cùng với một kho ứng dụng phong phú và cộng đồng phát triển rộng lớncủa Android, Google còn đưa ra bộ công cụ Android SDK cung cấp rất nhiều APIscần thiết cho việc viết các ứng dụng Android bằng ngôn ngữ lập trình 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ậpcủa liên minh thiết bị cầm tay mã nguồn mở (Open Handset Alliance – OHA) đứngđầu bởi Google với 34 thành viên bao gồm các nhà sản xuất điện thoại di động, ứngdụng phát triển, một số mạng di động và nhà sản xuất bán dẫn được thành lập vớimục đích là thúc đẩy sự đổi mới trong tiêu dùng điện thoại di động và cung cấpnhững kinh nghiệm phong phú hơn, ít tốn kém, và tốt hơn cho điện thoại di động.Android, phần mềm hàng đầu của liên minh này, được dựa trên một giấy phépnguồn mở và cạnh tranh với các nền tảng di động của Apple,Microsoft, Nokia, Palm, Research In Motion, Symbian, và Bada Liên minh này sẽcùngphát triển các tiêu chuẩn mở cho thiết bị di động Hiện nay (5/2011), liên minhnày đã có 81 thành viên bao gồm một số thành viên sau:

Hình 2.2 Tổ chức liên minh nguồn mở OHA

Trang 14

Tuy mới ra đời nhưng Android đã chiếm được sự chú ý và đánh giá cao củacác nhà sản xuất điện thoại và các nhà phát triển phần mềm với những ưu điểm vượttrội, một số ưu điểm có thể nói đến đó là:

- Nguồn mở: Nhân của Android là Linux – một nền tảng hoàn toàn mở nên

các nhà sản xuất sẽ tiết kiệm được chi phí cho hệ điều hành điện thoại giúp giảm giáthành sản phẩm Hơn nữa, nó sử dụng một máy ảo tùy chỉnh được thiết kế để tối ưuhóa bộ nhớ và tài nguyên phần cứng trong môi trường di động Các nhà sản xuất cóthể phát triển Android theo hướng phát triển của mình để tạo ra đặc trưng riêngcuốn hút cho các dòng điện thoại của mình Ngoài ra, nguồn mở còn mang tới chocác nhà phát triển ứng dụng điện thoại Android những khả năng phát triển khôngngờ khi họ có thể làm mọi thứ trên Android, các ứng dụng có thể gọi đến ứng dụnglõi của Android, khai thác các phần cứng điện thoại Tính mở đã làm nên yếu tốcạnh tranh của Android tăng cao hơn nhiều so với các hệ điều hành nguồn đóngkhác như iOS, Symbian, Windows mobile, BlackBerryOS

- Tất cả ứng dụng lõi và ứng dụng được tạo ra đều ngang hàng nhau: Để

phát huy tối đa các khả năng của điện thoại thì Android không phân biệt đâu là ứngdụng lõi hay ứng dụng của bên phát triển mà tất cả đều có quyền ngang hàng nhau

về sự truy cập các dịch vụ của điện thoại Nhờ đó mà các nhà phát triển có thể cungcấp cho người dừng một loạt các ứng dụng và dịch vụ hoàn hảo

- Phá bỏ ranh giới ứng dụng: Android đã phá bỏ đi các rào cản để nhà phát

triển xây dựng những ứng dụng mới và sáng tạo Các ứng dụng có thể liên kết đểtrao đổi thông tin và tương tác với nhau để tạo ra những tiện ích phù hợp nhất vớinhu cầu người dùng

- Phát triển ứng dụng nhanh chóng và dễ dàng: Android cung cấp truy cập

tới một loạt các thư viện hữu ích và các công cụ có thể được sử dụng để xây dựngcác ứng dụng phong phú Ngoài ra, Android bao gồm một bộ đầy đủ các công cụ đãđược xây dựng với nền tảng giúp cho các nhà phát triển tạo ra các ứng dụng với một

sự thấu hiểu sâu và đạt năng suất cao nhất

Nhờ những ưu điểm vượt trội này mà Android đang có triển vọng phát triểnrất lớn đi kèm theo là tốc độ tăng trưởng nhanh trong những năm sắp tới

Giao

diện

Trong một ứng dụng Android, giao diện người dùng được xây dựngbằng cách sử dụng đối tượng view và ViewGroup và các widget Android được thiết kế thích nghi với VGA, thư viện đồ họa 2D, 3Ddựa trên thư viện OpenGL ES 2.0, và giao diện theo truyền thống trên

Trang 15

Hỗ trợ

NFC

Android 2.3 cung cấp gói hỗ trợ sóng vô tuyến ngắn với hiệu năng nổi bật giúp khách hàng thanh toán bằng smartphone thay cho thẻ tín dụng.Không dừng ở đó, người dùng còn có thể đọc nhanh các thông báo, áp-phích, quảng cáo từ NFC để tìm hiểu thêm về các chương trình khuyếnmãi hay nhiều thứ khác mà chỉ cần đưa chú dế của mình lướt qua những thiết bị tương thích

Kết nối Android hỗ trợ công nghệ kết nối bao gồm GSM/EDGE, IDEN,

CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE vàWiMAX

Tìm kiếm Người dùng có thể tìm kiếm bất kỳ dữ liệu nào có sẵn cho họ, cho dù

nội dung được đặt trên điện thoại hoặc Internet Ta có thể tìm kiếmbằng giọng nói, tìm kiếm dựa vào lần truy xuất gần nhất, tìm kiếm tùychỉnh và tìm kiếm ứng dụng toàn hệ thống

nhắn văn bản và bây giờ là Android Cloud to DeviceMessaging(C2DM) là dịch vụ giúp các nhà phát triển gửi dữ liệu từmáy chủ đến các ứng dụng của họ trên các thiết bị Android, nó cũng làmột phần của dịch vụ nhắn tin tới Android

Hộ trợ

Java

Các lớp Java được thực hiện biên dịch lại vào Dalvik và chạy trênmáy ảo Dalvik Dalvik là một máy ảo chuyên thiết kế đặc biệt choAndroid và tối ưu hóa cho pin thiết bị di động với bộ nhớ và CPU giớihạn J2ME có thể được hỗ trợ thông qua ứng dụng của bên thứ ba nhưJ2ME MIDP Runner

Hỗ trợ

Media

Android hỗ trợ các phương tiện truyền thông audio/video/still với cácđịnh dạng: H.263, H.264 (trong 3GP hoặc MP4), MPEG-4 SP, AMR,AMR-WB (trong 3GP), AAC, HE–AAC (trong 3GP hoặc MP4), MP3,MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, BMP

Trang 16

Bluetooth Android đã hỗ trợ A2DP và AVRCP trong phiên bản 1.5 Gửi file

(OPP) và truy cập vào danh bạ điện thoại (PBAP) đã được thêm vàophiên bản 2.0 quay số bằng giọng nói, gửi địa chỉ liên lạc giữa các điệnthoại đã được thêm vào trong phiên bản 2.2

Video

calling

Các phiên bản Android không chính thức hỗ trợ videocalling Tuynhiên, một số thiết bị cầm tay có thể có phiên bản tùy biến của hệ điềuhành hỗ trợ nó, hoặc thông qua mạng UMTS hoặc qua IP

Đa nhiệm Android có hỗ trợ đa nhiệm cho các ứng dụng

cho Exchange ActiveSync của Microsoft, bao gồm giao thức mã hóa truyền dữ liệu SSL và tính năng xóa từ xa

Các tính

năng

thoại

Google tìm kiếm thông qua âm thanh có sẵn, như là đầu vào tìm kiếm

kể từ khi phát hành Android cũng ra mắt tiếng nói hỗ trợ hành động

từ phiên bản 2.2 trở đi

Trang 17

Tethering Android hỗ trợ tethering, cho phép điện thoại sử dụng như một điểm

truy cập wireless/wired Cho phép một máy tính xách tay có thể chia sẻkết nối 3G trên điện thoại Android qua phần mềm, phần mềm có thể cóthể phải cài trên cả điện thoại lẫn máy tính xách tay

Vị trí và

bản đồ

Android hỗ trợ định vị vệ tinh GPS và bản đồ số Google Map

Sơ đồ dưới đây cho thấy các thành phần chính của hệ điều hành Android Kiến trúc của Android bao gồm 4 mức được mô tả chi tiết hơn dưới đây

Hình 1.3 Kiến trúc của Android [3]

- Ứng dụng (Application): Đây là các ứng dụng được sử dụng và tương tác

với người dùng Phần này bao gồm một bộ ứng dụng cốt lõi và ứng dụng của cácnhà viết phần mềm Các ứng dụng gồm có một chương trình tin nhắn SMS, ứngdụng email, lịch, bản đồ, trình duyệt, địa chỉ liên hệ, games Tất cả các ứng dụngđược viết bằng ngôn ngữ lập trình Java, người dùng có thể tìm thấy các ứng dụngtrên Android Market tại http://www.android.com/market/

- Khung ứng dụng (Application Framework): Bằng cách cung cấp một nền

tảng phát triển mở, Android cung cấp cho các nhà phát triển khả năng xây dựng cácứng dụng vô cùng phong phú và sáng tạo Các nhà phát triển có thể tự do tận dụng

Trang 18

các thiết bị phần cứng, thông tin địa điểm truy cập, chạy các dịch vụ nền, thiết lập

hệ thống báo động, thêm các thông báo để các thanh trạng thái, và nhiều, nhiều hơnnữa.Các nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sửdụng bởi các ứng dụng lõi Các kiến trúc ứng dụng được thiết kế để đơn giản hóaviệc sử dụng lại các thành phần; bất kỳ ứng dụng có thể đưa ra các khả năng củamình và bất kỳ ứng dụng khác thì có thể sử dụng những khả năng đó(có thể hạn chếbảo mật thực thi theo khuôn khổ) Cơ chế này cho phép các thành phần tương tựđược thay thế bởi người dùng

Tất cả các ứng dụng cơ bản là một tập hợp các dịch vụ và các hệ thống, bao gồm:

trí cửa sổ, trạng thái,

khác chia sẻ dữ liệu của nó cho các ứng dụng

 View System: Cung cấp các thành phần giao diện như button, text,checkbox

 Package Manager: Chứa các công cụ quản lý việc cài đặt, nâng cấp , cấu hìnhhoặc gỡ bỏ các gói ứng dụng

 Telephone Manager: quản lý các dịch vụ thoại như thông tin, trạng thái cáccuộc gọi, tin nhắn

trong code như các chuỗi, icon, file layout, các đối tượng graphics được sửdụng

trạng thái

- Các thư viện (Libraries): Android bao gồm một bộ các thư viện C / C + +

được sử dụng bởi các thành phần khác nhau của hệ thống Android Một số các thưviện cơ bản được liệt kê dưới đây:

System C library: thừa kế từ thư viện hệ thống thư viện C chuẩn (libc) được

cung cấp cho các thiết bị nhúng dựa trên nhân Linux

phát và ghi các định dạng audio và video, cũng như các file hình ảnh tĩnh,bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG

thể hiện đồ họa, kết hợp các lớp đồ họa 2D và 3D từ nhiều ứng dụng

duyệt Web Android và trình duyệt Web nhúng

Trang 19

3D library: thư viện đồ họa 3D phát triển dựa trên các API OpenGL ES 1.0;

các thư viện sử dụng hoặc phần cứng tăng tốc 3D (nếu có) hoặc bao gồmphần mềm tối ưu hóa cao asterizer 3D

 FreeType: render các ảnh bitmap và vector font

dụng

- Android runtime: Android bao gồm một tập hợp các thư viện cơ bản cung

cấp hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java.Tất cả các ứng dụng Android chạy trong tiến trình riêng với các trường hợp của nó

ở máy ảo Dalvik Máy ảo Dalvik đã được viết để cho một thiết bị có thể chạy nhiềumáy ảo hiệu quả Các máy ảo Dalvik thực thi các tập tin trong Dalvik định dạng cóthể chạy được (.Dex) được tối ưu hóa cho bộ nhớ tối thiểu Máy ảo là dựa trên đăng

ký, và chạy các lớp đã được biên dịch bởi một trình biên dịch ngôn ngữ Java đãđược chuyển đổi thành các định dạng dex bởi công cụ "1dx" đã được tích hợp Cácmáy ảo Dalvik dựa trên nhân Linux cho các chức năng cơ bản như luồng và cấpquản lý bộ nhớ cấp thấp

- Linux Kernel: Android dựa trên Linux phiên bản 2.6 cho dịch vụ hệ thống

cốt lõi như an ninh, quản lý bộ nhớ, quản lý tiến trình, ngăn xếp mạng, và mô hìnhđiều khiển Nhân Linux cũng hoạt động như là một lớp trừu tượng hóa giữa phầncứng và phần còn lại của phần mềm ngăn xếp

Phần mềm trên Android có hai dạng chia theo mã nguồn Dạng thứ nhất là cácphần mềm viết bằng mã thuần C cho kiến trúc ARM có thể biên dịch bằng bộ biêndịch mã nguồn mở GCC và cài đặt vào Android thông qua công cụ Android NativeDevelopment Kit Các phần mềm này chạy trực tiếp với nhân Linux, vì vậy chúngthường là các thư viện trong lớp Libraries của Android Các lớp trong thư viện này

có thể được gọi từ các chương trình viết bằng mã Java khác thông qua máy ảoDalvik Google có cung cấp bộ công cụ để cài đặt và thực thi các chương trình viếtbằng ngôn ngữ C trên Android nhưng việc phát triển các ứng dụng dạng này là khókhăn bởi vì các thư viện C của Android không phải là các thư viện chuẩn như trêncác hệ điều hành khác

Dạng thứ hai được viết bằng ngôn ngữ Java Mã Java sau khi được biên dịch sẽđược đóng gói thành file apk duy nhất Đây chính là dạng file dùng cho việc phânphối và cài đặt các ứng dụng Android trên thiết bị Tuy nhiên, điểm cần chú ý làthực chất Android chỉ sử dụng lại cú pháp của ngôn ngữ Java là chủ yếu chứ không

hỗ trợ đầy đủ ngôn ngữ này Các thư viện Java cũng như các hàm API của Androidchỉ là một phần của bộ chuẩn Java Platform Standard Edition (Java SE) hay bộ thu

Trang 20

nhỏ dành cho di động Java Platform Micro Edition (Java ME hay còn gọi là J2ME).Máy ảo của Java cũng là một dạng khác dựa trên cấu trúc của máy ảo Java Vì vậyviệc tái sử dụng mã nguồn của các ứng dụng viết cho các hệ điều hành khác vào cácứng dụng trên Android cũng khá khó khăn.

b, Service: Một Service không có một giao diện trực quan mà chạy ở nền trongmột khoảng thời gian không xác định Cũng giống như các activity và các thànhphần khác, các service chạy trong tiến trình chính của ứng dụng Vì vậy nó sẽkhông ngăn chặn các thành phần khác hoặc giao diện người dùng, nó thường tạo ramột tiến trình cho các nhiệm vụ tốn thời gian

c, Broadcast Reciver: Là thành phần không làm gì ngoài việc nhận và hưởngứng lại những thông báo được phát ra như thông báo pin yếu, có cuộc gọi đến, cácthông báo cho người dùng của các ứng dụng Ngoài ra một ứng dụng cũng có thểkhởi tạo các broadcasts nhằm thông báo cho các ứng dụng khác các thông tin cầnbiết Reciver để hưởng ứng lại các thông báo tương ứng mà nó thấy là quan trọng vàcần thiết

d, Content Provider: Là thành phần dùng để chia sẻ dữ liệu giữa các ứng dụngvới nhau Các cơ sở dữ liệu có thể được lưu trữ trong hệ thống tập tin, trong một hệ

cơ sở dữ liệu SQLite hoặc các cách khác

2.7.3 Tập tin AndroidManifest.xml

Trong bất kì một project Android nào khi tạo ra đều có một fileAndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, cácpermission cũng như các theme cho ứng dụng Đồng thời nó cũng chứa thông tin vềphiên bản SDK cũng như main activity sẽ chạy đầu tiên File này được tự động sinh

ra khi tạo một Android project Trong file manifest bao giờ cũng có 3 thành phần

chính đó là: application, permission và version Application dùng để chỉ định file

icon, tên của ứng dụng, theme và mô tả các thành phần (component) của ứng dụng:

activity, service, broadcast receiver hoặc content provider Permission bao gồm các

thuộc tính chỉ định quyền truy xuất và sử dụng tài nguyên của ứng dụng, khi cần sử

Trang 21

dụng một loại tài nguyên nào đó thì trong file manifest của ứng dụng cần phải khai

báo các quyền truy xuất này SDK Version chỉ ra phiên bản nhỏ nhất mà ứng dụng

hiện đang sử dụng

2.8.1 Môi trường phát triển:

- Hệ điều hành: Hiện nay Google hỗ trợ hầu hết các hệ điều hành dành thôngdụng như Windows, Mac OS, Linux

- Ngôn ngữ lập trình và công cụ hỗ trợ: các ứng dụng Android chủ yếu được viếtbằng Java sau khi được biên dịch sẽ dịch tiếp sang mã bytecode dalvik để chạy trênmáy ảo DVM Vì vậy môi trường chính để phát triển ứng dụng cho Android là môitrường Java (JDK 6 hoặc cao hơn) và các IDE cho Java như Eclipse,Netbeans …

2.8.2 Máy ảo Dalvik

Dalvik là máy ảo giúp các ứng dụng Java chạy được trên các thiết bị độngAndroid Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi Dalvik(dex) Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc

độ xử lý Dalvik đã được thiết kế và viết bởi Dan Bornstein, người đã đặt tên cho nósau khi đến thăm một ngôi làng đánh cá nhỏ có tên là Dalvík ở đảo Eyjafjörður, nơi

mà một số tổ tiên của ông sinh sống Từ góc nhìn của một nhà phát triển, Dalviktrông giống như máy ảo Java (Java Virtual Machine) nhưng thực tế thì hoàn toànkhác Khi nhà phát triển viết một ứng dụng dành cho Android, nó sẽ thực hiện cácđoạn mã trong môi trường Java sau đó sẽ biên dịch sang các bytecode của Java, tuynhiên để thực thi được ứng dụng này trên Android thì nhà phát triển phải thực thimột công cụ có tên là dx Đây là công cụ dùng để chuyển đổi bytecode sang mộtdạng gọi là dex bytecode "Dex" là từ viết tắt của "Dalvik executable" đóng vai trònhư cơ chế ảo thực thi các ứng dụng Android

2.8.3 Tổng quan về các công cụ

Android SDK bao gồm nhiều công cụ tùy chỉnh giúp ta phát triển ứng dụng diđộng trên nền tảng Android Điều quan trọng nhất trong số này là các EmulatorAndroid và Công cụ phát triển Android plugin cho Eclipse, nhưng SDK này cònbao gồm nhiều công cụ khác để đóng gói, gỡ lỗi, và cài đặt các ứng dụng trên trìnhgiả lập Dưới đây là một số công cụ chính:

a, Công cụ phát triển Android Plugin (đối với Eclipse IDE)

Sử dụng Eclipse kết hợp với plugin ADT (Android Development Tool) sẽ rút gọn

và đơn giản hóa công việc tạo lập project, gỡ rối,…tốt hơn Yêu cầu với Eclipse làphải có kèm theo gói JDT (Java Development Tool), vì vậy ta chọn các gói Eclipse

Trang 22

cấu hình có sẵn như Eclipse for Java Development, Eclipse for Java EEDevelopment.

b, Android Emulator: Một thiết bị dựa trên công cụ mô phỏng dùng để thiết kế,

gỡ lỗi, và kiểm thử các ứng dụng của bạn trong một môi trường thực tế chạyAndroid Android Emulator được trang bị đầy đủ hầu hết các tính năng của mộtthiết bị thật Tuy nhiên, một số đã bị giới hạn như là kết nối qua cổng USB, camera

và video, nghe phone, nguồn điện giả lập và bluetooth Android Emulator thực hiệncác công việc thông qua một bộ xử lý mã nguồn mở, công nghệ này được gọi làQEMU (http://bellard.org/qemu/) được phát triển bởi Fabrice Bellard

c, Android Virtual Device (AVDs): cấu hình thiết bị ảo để mô hình đặc điểmthiết bị trong Android Emulator Trong mỗi cấu hình, ta có thể chỉ định các nền tảngAndroid để chạy, các tùy chọn phần cứng, và các mô phỏng để sử dụng Mỗi chứcnăng AVD như là một thiết bị độc lập với lưu trữ riêng của nó cho dữ liệu ngườidùng, thẻ SD

d, Dalvik Debug Monitor Service (ddms): Tích hợp với Dalvik, VM tùy chỉnhnền tảng của Android, công cụ này cho phép bạn quản lý các quá trình trên một giảlập hoặc một thiết bị và hỗ trợ trong việc gỡ lỗi Bạn có thể sử dụng nó để xóa bỏcác quy trình, lựa chọn một quá trình cụ thể để gỡ rối, tạo ra dấu vết dữ liệu, cácthread xem thông tin, chụp ảnh màn hình của trình giả lập hoặc thiết bị, và nhiềuhơn nữa

e, Android Debug Bridge (adb): Các công cụ adb cho phép bạn cài đặt ứng dụngvới các file apk Trên một giả lập hoặc thiết bị và truy cập trình giả lập hoặc thiết bị

từ một dòng lệnh Bạn cũng có thể sử dụng nó để liên kết một trình gỡ rối tiêuchuẩn dùng cho mã hóa ứng dụng đang chạy trên Android hoặc thiết bị giả lập

f, Công cụ đóng gói (aapt): Các công cụ aapt cho phép bạn tạo ra File apk cóchứa những chương trình và nguồn lực của các ứng dụng Android

g, SQLite3: 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 1 file

duy nhất vỏn vẹn chưa đến 500kB, 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 Use, password hay quyền hạn trong SQLite database SQLitekhô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áthuy uy lực và không hề yếu kém về mặt chức năng hay tốc độ

2.8.4 Giao diện trong Android

Android dùng XML để bố trí giao diện của người phát triển XML cung cấpmột cấu trúc của con người có thể đọc được để bố trí giao diện giống như HTML

Trang 23

Trong một ứng dụng Android, ta sẽ sử dụng các Activity để thể hiện một giao diện.Mỗi Activity sẽ chứa các View theo dạng cấu trúc cây, nghĩa là một layout gốcchứa các view/layout con bên trong hoặc chỉ có một view duy nhất Ta có thể thiếtthế giao diện trong code Java hoặc thể hiện bằng file xml trong thư mục layout.

Map API là một phương thức cho phép nhúng các dịch vụ bản đồ vào các trangWeb hoặc các ứng dụng về bản đồ Một Map API tối thiểu phải cho phép tìm kiếmmột địa điểm và đánh dấu trên bản đồ Đồng thời, người dùng có thể sử dụng chuột

để rê trên bản đồ để tìm kiếm vị trí mình muốn Map API ở Việt Nam có bốn nhà

cung cấp đáng để xem xét, đó là: 1650km, diadiem, vietbando và google map Mỗi

công ty có mỗi cách thức cung cấp API khác nhau và style hiển thị bản đồ cũngkhác nhau

Đầu tiên là 1650km (1650km.com), API của họ miễn phí nhưng ít chức năng.Dịch vụ 1650km MapAPI phiên bản 1.0 thích hợp cho các website về nhà đất, raovặt, giới thiệu doanh nghiệp 1650km MapAPI được thiết kế linh động, dễ sửdụng

Tiếp theo là vietbando (vietbando.vn), API của họ cũng miễn phí nhưng cáichức năng quan trọng nhất là tìm vị trí của 1 địa chỉ lại thu phí Tuy nhiên, API củavietbando cũng có khá nhiều chức năng (class, phương thức) giúp việc thao tác trênbản đồ được phong phú hơn, cú pháp và cách hoạt động khá giống với Map API củagoogle

Tiếp nữa là diadiem(diadiem.com/vn/), là API thu khá chuyên nghiệp và bắtmắt nhưng cũng hơi rối Việc tìm địa điểm, đường đi, công ti cũng khá dễ dàng vàchính xác Vì có thu phí nên việc tiếp xúc và sử dụng API này là tương đối hạn chế Cuối cùng là google map (maps.google.com), API miễn phí hoàn toàn, nhiềuchức năng, bản đồ dễ dùng, sáng sủa Chức năng tìm kiếm và đánh dấu một địa chỉtrên bản đồ khá đơn giản Do vậy, chọn Map API của google cho ứng dụng là đảmbảo về thời gian, chi phí và đạt được hiệu quả nhất

2.10 Google map API trên Android

Địa điểm và các ứng dụng dựa trên bản đồ được người sử dụng thiết bị di độngrất quan tâm Ta có thể xây dựng các ứng dụng này bằng cách sử dụng các lớp củagói android.location và thư viện mở rộng Google Maps

- Dịch vụ vị trí: Android cho phép các ứng dụng truy cập vào các dịch vụ định vịđược hỗ trợ bởi các thiết bị thông qua các lớp trong gói android.location Các thành

Trang 24

phần trung tâm của framwork vị trí là hệ thống dịch vụ LocationManager, nó cungcấp các API để xác định vị trí và chịu lực của các thiết bị cơ bản (nếu có) Cũng nhưcác dịch vụ hệ thống khác, không cần khởi tạo một LocationManager trực tiếp

mà thay vào đó là yêu cầu một thể hiện từ hệ thống bằng cách gọi getSystemService(Context.LOCATION_SERVICE) Phương thức này trả về một xử lý cho một thểhiện LocationManager mới.Một khi ứng dụng có một LocationManager, ứng dụng

có thể làm được ba vấn đề sau:

dùng đã được biết đến lần cuối

 Đăng ký / huỷ đăng ký để cập nhật định kỳ các vị trí hiện tại của người dùng

từ một nhà cung cấp vị trí (quy định hoặc theo các tiêu chí hoặc theo tên)

kèm trong một khoảng cách nhất định (xác định bằng bán kính bằng mét) củamột lat/long trong Map API

Google Maps ngoài Thư viện: Google cung cấp một thư viện bản đồ mở rộngbao gồm các gói com.google.android.maps Các lớp của góicom.google.android.maps cung cấp được xây dựng cho tải về, vẽ, và bộ nhớ đệmcủa Maps, cũng như một loạt các tùy chọn hiển thị và điều khiển Các lớp chínhtrong gói Maps là com.google.android.maps.MapView, một lớp concủa ViewGroup MapView sẽ hiển thị một bản đồ với dữ liệu thu được từ dịch vụGoogle Maps Khi MapView đã được focus tới, nó sẽ bắt bấm phím cảm ứng và cửchỉ để xoay và phóng to bản đồ tự động, bao gồm cả việc xử lý các yêu cầu hệthống mạng cho các bản đồ bổ sung Nó cũng cung cấp tất cả các yếu tố giao diệnngười dùng cần thiết cho người dùng để kiểm soát bản đồ Ứng dụng cũng có thể sửdụng phương thức lớp MapView để kiểm soát các MapView được lập trình và rút ramột số loại Lớp phủ trên bản đồ

Nói chung, lớp MapView cung cấp một bao bọc xung quanh Google Maps API chophép ứng dụng của bạn thao tác với Google Maps dữ liệu thông qua phương thứclớp, và nó cho phép bạn làm việc với dữ liệu bản đồ Các thư viện bản đồ mở rộngkhông phải là một phần của thư viện chuẩn Android, vì vậy không thể có mặt trênmột số thiết bị hỗ trợ Android Tương tự như vậy, thư viện bản đồ bên ngoài khôngđược bao gồm trong thư viện chuẩn Android SDK cung cấp Vì vậy mà ta có thểphát triển bằng cách sử dụng các lớp của gói com.google.android.maps, các hư việnbản đồ mở rộng được tạo sẵn cho bạn như là một phần của các API của Google tiệních cho Android SDK Để hiển thị dữ liệu Google Maps trong một MapView, ta cầnphải đăng ký với dịch vụ Google Maps để được một Maps API Key tại

http://code.google.com/android/add-ons/google-apis/mapkey.html

Trang 25

2.11 Khái niệm về Web service và SOAP

Webservice là một dịch vụ cung cấp cơ chế triệu gọi các đối tượng từ xa thôngqua giao thức HTTP cùng với cơ chế truyền tải định dạng đối tượng theo công nghệXML Chính vì sử dụng giao thức HTTP của Web nên giờ đây các lời gọi trở nênđơn giản và thông qua được các rào cản về tường lửa Để đảm bảo điều này, mộtgiao thức mới là SOAP (Simple Object Access Protocol) ra đời để hỗ trợ cho Webservices SOAP được định nghĩa dựa trên giao thức chuẩn HTTP, SOAP cho phép

dữ liệu chuyển đi bằng HTTP và định dạng theo chuẩn XML Các lời gọi hàm tham

số truyền hàm, dữ liệu trả về từ hàm, tất cả đều được chuyển sang dạng XML và cóthể dễ dàng xử lý bởi tất cả các ngôn ngữ Một thế mạnh khác đó là nếu các đốitượng phân tán xây dựng trên mô hình Web services sẽ có thể triệu gọi lẫn nhau, bấtchấp đối tượng đó được viết trên ngôn ngữ Java của Sun hay NET của Microsoft.Hiện tại, SOAP được coi là một sự thay đổi lớn kể từ khi COM, RMI, CORBA rađời

2.12 Tiếp cận công nghệ ASP.NET và SQL Server

ASP.NET là một PlatForm phát triển các ứng dụng web hợp nhất cung cấpcác dịch vụ cần thiết cung cấp các dịch vụ cần thiết xây dựng các ứng dụngEnterprise-class web ASP.NET thiết kế để tương thích với các phiên bản ASPtrước đó của Microsoft, cho nên chúng ta có thể phát triển cả ASP chung vớiASP.NET trên cùng một máy chủ mà không cần phải thay đổi cấu hình ứng dụng

ASP.NET được biên dịch dựa trên môi trường NET cho phép tạo ra các ứngdụng trong bất kỳ ngôn ngữ lập trình nào có hổ trợ NET chẳng hạn như: VB.NET,Javascript.NET, C# Ngoài ra NET FrameWork sẵn sàng cho ứng dụng ASP.NET

ASP.NET được thiết kế tương tự như trình soạn thảo HTML với WYSIWYG

và các công cụ lập trình khác, bao gồm có Visual Studio không chỉ cho phép pháttriển các ựng dụng dễ dàng hơn

Một số đặc điểm của ASP.NET:

ngôn ngữ, thực hiện việc tối ưu với các ngôn ngữ khác nhau Chúng ta có thể sửdụng Visual Basic, C++, C#, J#

chức theo một cấu trúc thuận tiện cho nhà phát triển đó là việc tách mã chương trình

và mã giao diện thành hai

Tính mềm dẻo và khả năng nâng cấp

Hổ trợ nhiều trình khách

ASP.NET được hổ trợ trên Window cho cả ứng dụng cả phía Client và Server

Hiện nay hệ thống quản lý CSDL có một vài công cụ như My SQL, SQL Server, Orche, Acessec, Mỗi hệ quản trị CSDL đều có những đặc điểm chung và đặc

Trang 26

điểm riêng của nó Tuy nhiên nhìn chung xu thế hiện nay thì hệ quản trị My SQL và SQL Server chiếm tỷ lệ cao trong các ứng dụng.

SQL là một chuẩn của ANSI (American National Standards Institute - Viện tiêuchuẩn quốc gia Hoa kỳ) về truy xuất các hệ thống CSDL Các câu lệnh SQL được

sử dụng để truy xuất và cập nhật dữ liệu trong một CSDL

SQL hoạt động với hầu hết các chương trình CSDL như MS Access, DB2,Informix, MS SQL Server, Oracle, Sybase v.v

Một CSDL thường bao gồm một hoặc nhiều bảng (table) Mỗi bảng được xác địnhthông qua một tên (ví dụ Customers hoặc Orders) Bảng chứa các mẩu tin - dòng(record - row), là dữ liệu của bảng

Với SQL ta có thể truy vấn CSDL và nhận lấy kết quả trả về thông qua các câu truyvấn

SQL là cú pháp để thực thi các câu truy vấn SQL cũng bao gồm cú pháp để cậpnhật - sửa đổi, chèn thêm và xoá các mẩu tin

Phần Data Definition Language của SQL cho phép tạo ra hoặc xoá các bảng Chúng

ta cũng có thể định nghĩa các khoá (key), chỉ mục (index), chỉ định các liên kết giữacác bảng và thiết lập các quan hệ ràng buộc giữa các bảng trong CSDL

Trang 27

Người dùng chọn tỉnh/thành phố và quận huyện để tìm kiếm các cột ATMtrên địa bàn này để lấy ra danh sách những cột ATM và chọn lựa Người dùng cóthể giao dịch từ cột ATM của ngân hàng mình mở thẻ hoặc chọn một cột ATM củangân hàng khác có thể sử dụng được thẻ ATM này mà gần mình hơn để giao dịchđược nhanh gọn Khi đó, người dùng cũng có thể có nhu cầu xem thông tin về chiphí giao dịch cột ATM, các thông tin của ngân hàng mình mở thẻ hoặc của các ngânhàng khác để lựa chọn cột ATM phù hợp hay để tìm hiểu thêm thông tin các ngânhàng.

Với những thông tin về địa điểm, địa chỉ đặt cột ATM được cung cấp dướidạng văn bản thì có thể người dùng chưa quen thuộc địa bàn hoặc không hình dung

ra được vị trí cột ATM thì hơn hết là việc hỗ trợ bản đồ số ngay trên phần mềm làrất hữu ích và cần thiết Từ đó, người dùng dễ dàng định vị được cột ATM bằng mắtthường hoặc có thể định vị qua hệ thống định vị vệ tinh GPS hay tìm đường, xácđịnh khoảng cách

Với các thông tin người dùng nhận được có thể bị sai lệch, không chính xác,chưa đầy đủ thì người dùng có thể đóng góp ý kiến của mình bằng cách gửi trực tiếpqua phần mềm, qua tin nhắn, qua email hoặc gọi điện thoại cho Người quản trị để

họ tiến hành xác minh rồi cập nhật, sửa đổi cơ sở dữ liệu cho chính xác và hoànthiện

Người quản trị có nhiệm vụ tiếp nhận các thông tin mới và các thông tin củangười dùng để cập nhật lại những thông tin này thông qua mạng Internet Sau khikiểm tra hết các ý kiến này, Người quản trị có thể đánh dấu đã xem hoặc xóa chúngđi

Dựa vào văn bản mô tả bài toán, ta xác định được các tác nhân của hệ thống là:

Trang 28

Tác nhân Người sử dụng: Sử dụng phần mềm để tra cứu thông tin, địa điểm

ATM, xem bản đồ, thông tin về ngân hàng, các ngân hàng cùng hệ thống thẻATM và gửi ý kiến đóng góp cho người quản trị

Tác nhân Người quản trị: Tiếp nhận những ý kiến đóng góp của người

dùng, cập nhật cơ sở dữ liệu trên Server những thông tin về Tình/Thành phố,quận/huyện, các ngân hàng, ngân hàng và thông tin về địa điểm ATM

Dựa trên văn bản mô tả bài toán và việc phân tích để tìm ra các tác nhân, taxác định được các Use case như sau:

Xem thông tin các ngân hàngXem thông tin trên bản đồGửi ý kiến phản hồi

Cập nhật thông tin ATMCập nhật thông tin Ngân hàngQuản lý ý kiến phản hồi

Bảng 3.1 Các tác nhân và các Use case

Vẽ biểu đồ Use case

Trang 29

Nguoi quan tri

quan ly y kien phan hoi

<<include>>

xem tt ngan hang

xem tt dia diem atm

xem tt tren ban do Nguoi su dung

gui y kien phan hoi

Hình 3.1 Biểu đồ Use case

3.4.1 Use case Xem thông tin địa điểm ATM

Đặc tả

Tác nhân

(actor)

Người sử dụng

Mô tả Use case này để người dùng tra cứu các thông tin ATM có trên

địa bàn mà mình đã chọn để tra cứu như: địa điểm đặt máy, địachỉ, vị trí, thông tin hoạt động

thông tin tìm kiếm

Trang 30

thẻ ATM.

danh sách các ngân hàng

xem

danh sách tỉnh/tp

danh sách các quận/huyện trên địa bàn tỉnh đã chọn

ngân hàng có thể giao dịch thẻ ATM

danh sách thông tin các cây ATM phùhợp với điều kiện tìm kiếm

Luồng sự kiện

khác

thông báo tới người dùng và yêu cầu chọn tỉnh/tp trước

4b, 7b, 10b,14b

thì thông báo tới người dùng và yêu cầu thử lại, kiểm tra kết nối hoặc thử lại sau

3.4.2 Use case Xem thông tin các ngân hàng

Đặc tả

Trang 31

Tác nhân

(actor)

Người sử dụng

Mô tả Use case này dùng cho Người sử dụng tra cứu các thông tin về

các Ngân hàng như: tên, địa chỉ, số điện thoại liên hệ, email.website, logo, phí giao dịch ATM, các ngân hàng liên kết giaodịch và phí giao dịch của các ngân hàng liên kết này

thông tin ngân hàng

Luồng sự kiện

khác

thì thông báo tới người dùng và yêu cầu thử lại, kiểm tra kết nối

3.4.3 Use case Xem thông tin trên bản đồ

Đặc tả

Trang 32

Mô tả Hiển thị vị trí các cây ATM trong địa bàn Người sử dụng tìm

kiếm lên trên bản đồ số

Tác nhân

(actor)

Người sử dụng

Mô tả Khi người sử dụng phát hiện những thông tin mà phần mềm

cung cấp sai lệnh, chưa đầy đủ thì có thể gửi ý kiến đóng góp đểNgười quản trị cập nhật lại Các thông tin này có thể liên quanđến Ngân hàng, cây ATM hoặc quá trình sử dụng phần mềm

Trang 33

2 Ứng dụng Hiển thị giao diện gửi ý kiến phản hồi

số điện thoại, nội dung và nhấn chọn nút gửi thông tin

tin phản hồi

phản hồi đến người quản trị

Luồng sự kiện

khác

dụng chưa điền nội dung phản hồi

3.4.5 Use case Đăng nhập quản trị

Đặc tả

Tác nhân

(actor)

Người quản trị

Mô tả Cung cấp cho người quản trị công cụ để có quyền thực hiện cập

nhật cơ sở dữ liệu của ứng dụng

tài khoản, mật khẩu và mã bảo vệ để tránh đăng nhập ảo

thông tin đăng nhập

Trang 34

liệu khi đăng nhập thành công

Luồng sự kiện

khác

dụng chưa điền nội dung đăng nhập hoặc điền nội dung đăng nhập sai

liệu thất bại, trình duyệt hiển thị thông báo lỗi và yêu cầu thử lại

3.4.6 Use case Cập nhật thông tin ATM

Đặc tả

Tác nhân

(actor)

Người quản trị

Mô tả Giúp cho người quản trị quản lý, chỉnh sửa, thêm bớt các thông

tin về cây ATM Người quản trị có thể thêm, sửa, xóa cây ATM

giao diện thông tin ATM

3 Trình duyệt Hiển thị các lựa chọn: Thêm, sửa,

xóa, thoát

- Yêu cầu Người quản trị nhập thôngtin của cây ATM bao gồm: Địa điểm,địa chỉ, thông tin, quận huyện, kinh

Trang 35

- Cây ATM mới được thêm vào cơ

sở dữ liệu

- Phần mềm yêu cầu Người quản trị

chọn một cây ATM để sửa

- Người quản trị chọn cây ATM để

sửa

- Người quản trị chỉnh sửa lại các

thông tin cần thiết và xác nhận việcsửa đổi

- Kiểm tra ràng buộc của các thôngtin nhập vào và cập nhật lại nhữngthay đổi vừa thực hiện

- Yêu cầu Người quản trị chọn một

cây ATM để xóa

- Người quản trị chọn cây ATM để

xóa

- Hiển thị thông báo nhắc Người

quản trị xác nhận việc xóa cây ATM

- Người quản trị xác nhận việc xóa.

- Cây ATM đó sẽ bị xóa khỏi cơ sở

cây ATM không chính xác

Trang 36

- Hiển thị thông báo lỗi cho Ngườiquản trị.

- Hiển thị yêu cầu Người quản trịnhập lại thông tin hoặc hủy bỏ thaotác

- Nếu Người quản trị nhập lại thì quaylại luồng đang thực hiện

3.4.7 Use case Cập nhật thông tin Ngân hàng

Đặc tả

Tên use case Cập nhật thông tin ngân hàng

giao diện thông tin ngân hàng

3 Trình duyệt Hiển thị các lựa chọn: Thêm, sửa,

xóa, thoát

- Yêu cầu Người quản trị nhập thôngtin của Ngân hàng bao gồm: Tên viếttắt, tên đầy đủ, địa chỉ, email, số điệnthoại, website, logo, mức phí giao

Ngày đăng: 20/01/2014, 15:56

HÌNH ẢNH LIÊN QUAN

Hình 2.2. Tổ chức liên minh nguồn mở OHA - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 2.2. Tổ chức liên minh nguồn mở OHA (Trang 13)
Hình 3.2. Biểu đồ trình tự cho Use case Xem thông tin địa điểm ATM - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.2. Biểu đồ trình tự cho Use case Xem thông tin địa điểm ATM (Trang 42)
Hình 3.3. Biểu đồ lớp cho Use case Xem thông tin địa điểm ATM - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.3. Biểu đồ lớp cho Use case Xem thông tin địa điểm ATM (Trang 43)
Hình 3.5. Biểu đồ trình tự cho Use case Xem thông tin các ngân hàng - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.5. Biểu đồ trình tự cho Use case Xem thông tin các ngân hàng (Trang 44)
Hình 3.6. Biểu đồ lớp cho Use case Xem thông tin các ngân hàng - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.6. Biểu đồ lớp cho Use case Xem thông tin các ngân hàng (Trang 44)
Hình 3.8. Biểu đồ trình tự cho Use case Xem thông tin trên bản đồ - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.8. Biểu đồ trình tự cho Use case Xem thông tin trên bản đồ (Trang 45)
Hình 3.9. Biểu đồ lớp cho Use case Xem thông tin trên bản đồ - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.9. Biểu đồ lớp cho Use case Xem thông tin trên bản đồ (Trang 46)
Hình 3.11. Biểu đồ trình tự cho Use case Gửi ý kiến phản hồi - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.11. Biểu đồ trình tự cho Use case Gửi ý kiến phản hồi (Trang 47)
Hình 3.12. Biểu đồ lớp cho Use case Gửi ý kiến phản hôi - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.12. Biểu đồ lớp cho Use case Gửi ý kiến phản hôi (Trang 48)
Hình 3.14. Biểu đồ trình tự cho Use case Đăng nhập quản trị - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.14. Biểu đồ trình tự cho Use case Đăng nhập quản trị (Trang 49)
Hình 3.17. Biểu đồ trình tự cho kịch bản Thêm một cây ATM - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.17. Biểu đồ trình tự cho kịch bản Thêm một cây ATM (Trang 50)
Hình 3.18. Biểu đồ trình tự cho kịch bản Xóa một cây ATM - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.18. Biểu đồ trình tự cho kịch bản Xóa một cây ATM (Trang 51)
Hình 3.19. Biểu đồ trình tự cho kịch bản Sửa thông tin một cây ATM - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.19. Biểu đồ trình tự cho kịch bản Sửa thông tin một cây ATM (Trang 51)
Hình 3.20. Biểu đồ lớp cho Use case Cập nhật thông tin ATM - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.20. Biểu đồ lớp cho Use case Cập nhật thông tin ATM (Trang 52)
Hình 3.23. Biểu đồ trình tự cho kịch bản sửa thông tin ngân hàng - ứng dụng tìm kiếm điểm ATM trên android, có MAP
Hình 3.23. Biểu đồ trình tự cho kịch bản sửa thông tin ngân hàng (Trang 53)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w