ứ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 1TÓ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 2MỤ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 32.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 43.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 5DANH 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 6DANH 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 7DANH 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 8Hì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 9PHẦ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 10web 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 11Chươ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 12quyề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 13C, 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 14Tuy 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 15Hỗ 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 16Bluetooth 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 17Tethering 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 18cá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 20nhỏ 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 21dụ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 22cấ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 23Trong 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 24phầ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 252.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 27Ngườ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 29Nguoi 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 30thẻ 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 31Tá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 32Mô 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 332 Ứ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 34liệ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