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

Khóa luân tốt nghiệp: PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ NGƯỜI DÙNG DỊCH VỤ XE BUÝT TRÊN NỀN ANDROID

68 561 1

Đ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

Định dạng
Số trang 68
Dung lượng 1,97 MB

Nội dung

... Host-based card emulation Ứng dụng hỗ trợ người dùng DVXB Ứng dụng hỗ trợ người dùng dịch vụ xe buýt Ứng dụng quản lý người dùng DVXB Ứng dụng quản lý người dùng dùng dịch vụ xe buýt X XI DANH MỤC CÁC... thống hai ứng dụng: ứng dụng quản lý người sử dụng dịch vụ xe buýt ứng dụng hỗ trợ người dùng dịch vụ xe buýt việc quản lý tài khoản giao dịch đồ xe buýt để người sử dụng quan sát vị trí xe buýt trạm... Google API Từ khóa: Hệ thống quản lý người dùng dịch vụ xe buýt ,Ứng dụng quản lý người dùng dịch vụ xe buýt, NFC, Ứng dụng hỗ trợ người dùng dịch vụ xe buýt IV ABSTRACT Summary: Nowaday, under

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Quan Tuấn Vũ

PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ NGƯỜI DÙNG DỊCH VỤ XE BUÝT TRÊN NỀN ANDROID

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công Nghệ Thông Tin

HÀ NỘI - 2014

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Quan Tuấn Vũ

PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ NGƯỜI DÙNG DỊCH VỤ XE BUÝT TRÊN NỀN ANDROID

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công Nghệ Thông Tin

Cán bộ hướng dẫn: TS Nguyễn Ngọc Hóa

Cán bộ đồng hướng dẫn: ThS Dư Phương Hạnh

HÀ NỘI - 2014

Trang 3

VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY

Quan Tuan Vu

DEVELOPING USER MANAGEMENT

APPLICATION IN BUS SERVICE BASE ANDRIOD

Major: Engineering and Technology

Supervisor: TS Nguyen Ngoc Hoa

Co-Supervisor: ThS Du Phuong Hanh

HA NOI - 2014

Trang 4

TÓM TẮT NỘI DUNG

Tóm tắt: Ngày nay, đi với quá trình đô thị hóa nhanh chóng, nhu cầu di chuyển

của con người cũng theo đó tăng lên, mạng lưới xe buýt công cộng cũng theo đó ngàycàng mở rộng Với quy mô ngày càng lớn, việc xác thực người dùng, kiểm soát thanhtoán, quản lý và hỗ trợ khách hàng trên xe buýt ngày càng trở nên khó khăn Khóa luậntrình bày về việc xây dựng một phần của hệ thống quản lý người dùng dịch vụ xe buýt

Hệ thống gồm hai phần cơ bản chạy riêng biệt, phần thứ nhất là phía máy chủcung cấp các dịch vụ web nhằm thao tác dữ liệu với cơ sở dữ liệu – phần này thuộcvào phạm vi khóa luận “Phát triển hệ thống quản lý người dùng dịch vụ xe buýt trênnền tảng Struts2”[31] Phần thứ hai là phía máy khách dưới dạng ứng dụng Androidcũng được chia thành hai phần nhỏ hơn – là phần chính mà khóa luận này nói đến.Khóa luận sẽ trình bày xây dựng hai ứng dụng nhằm giải quyết hai bài toán khácnhau Ứng dụng quản lý người dùng dịch vụ xe buýt hướng tới việc quản lý kháchhàng trên xe buýt, giải quyết bài toán xác thực người dùng bằng thẻ NFC bằng các kếtquả trả về của dịch vụ web của phần thứ nhất của hệ thống Ngoài phần máy chủ thuộcphần một của hệ thống, tôi cũng xây dựng một máy chủ riêng với phạm vi nhỏ hơn,nhằm giải quyết các vấn đề truy xuất về dữ liệu bản đồ xe buýt của ứng dụng thứ hai.Ứng dụng hỗ trợ người dùng dịch vụ xe buýt hướng tới việc trợ giúp khách hàng sửdụng dịch vụ xe buýt, ứng dụng cung cấp cho người sử dụng những thông tin tàikhoản, giao dịch trong giới hạn cũng như một bản đồ xe buýt để người sử dụng có thểquan sát được vị trí hiện tại của các xe buýt và các trạm dừng của tuyến xe buýt đóđược xây dựng trên dữ liệu trạm xe buýt ở khóa luận “Số hóa hệ thống xe buýt trênnền Google Maps” [30] và Google API

Từ khóa: Hệ thống quản lý người dùng dịch vụ xe buýt ,Ứng dụng quản lý người dùng dịch vụ xe buýt, NFC, Ứng dụng hỗ trợ người dùng dịch vụ xe buýt.

Trang 5

Summary: Nowaday, under the rapid growth in urbanization process, the

demond for moving is quick increased As a result, network bus public transportation

is more and more wide The problems of user authentication, payment control,management and support bus service’s customer become to difficult work This thesisindicate the part of building user management system in bus service

The system include two basic part The first part is server which provides webservices for database interaction It is a part of another thesis [31] The second part isclient which was two Android application It’s main content of this thesis

This thesis indicate two Android application which is built to solve two differentproblems User management application in bus service is create towards bus customermanagement, user authencation by using NFC tag and the results of web services.Outside the scope of the first part, I have a small server to solve a database interaction

of bus location for the second Android Application User support application in busservice is build toward support bus customer This application prodive userinformation, payments and a map which show current location of buses, bus stop Thatmap base in data from “Digitize bus system based Google Maps” [30]

Words: User management system in bus service , User management application in bus service, NFC, User support application in bus service.

Trang 6

Hà Nội, ngày tháng năm

Sinh viên

Quan Tuấn Vũ

LỜI CAM ĐOAN

Tôi xin cam đoan những nghiên cứu của tôi về nội dung khóa luận “Pháttriển ứng dụng quản lý người dùng dịch vụ xe buýt trên nền Android” mà tôi viếttrong khoá luận này là sự thật Những gì tôi viết ra không sao chép từ các tài liệu,không sử dụng các kết quả của người khác mà không trích dẫn cụ thể

Tôi xin cam đoan ứng dụng này tôi trình bày trong khoá luận là do tôi tựphát triển, không sao chép mã nguồn của người khác.Nếu sai tôi hoàn toàn chịutrách nhiệm theo quy định của trường Đại Học Công Nghệ - Đại Học Quốc Gia

Hà Nội

Trang 7

Hà Nội, ngày 14 tháng 5 năm 2014

Xin gửi lời cảm ơn chân thành toàn thể các thầy cô trường Đại học Công Nghệ đại học Quốc Gia Hà Nội đã dạy dỗ và truyền đạt những kiến thức quí báu cho tôitrong những năm tháng qua

-Cuối cùng, tôi xin được cảm ơn cha mẹ, bạn bè và người thân, những người đã ởbên tôi, khuyến khích và động viên tôi trong cuộc sống, học tập

Trong quá trình hoàn thành khóa luận tốt nghiệp, Tôi mặc dù đã rất cố gắng tuynhiên sẽ không tránh khỏi những hạn chế về mặt kiến thức và cũng như kinh nghiệm

mà tự mình không thể nhìn thấy được Vậy nên, tôi rất mong nhận được sự đóng góp,phê bình của quý thầy cô, các nhà khoa

học, đọc giả và các bạn

Xin chân thành cảm ơn!

Trang 8

MỤC LỤC

Contents

LỜI CẢM ƠN vii

TÓM TẮT NỘI DUNG iv

ABSTRACT v

LỜI CAM ĐOAN vi

MỤC LỤC vii

BẢNG DANH MỤC TỪ VIẾT TẮT x

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

DANH MỤC BẢNG BIỂU xiii

CHƯƠNG 1: GIỚI THIỆU 1

CHƯƠNG 2: LÝ THUYẾT LIÊN QUAN 4

2.1 Tổng quan về Android 4

2.1.1 Giới thiệu chung 4

2.1.2 Một số đặc điểm của Android 4

2.1.3 Kiến trúc Android 6

2.1.4 Các thành phần chính trong một ứng dụng Android: 7

2.2 Giới thiệu về công nghệ NFC và Android NFC API 8

2.2.1 Giới thiệu về Công nghệ NFC 8

2.2.2 Android NFC API 11

2.3 Google Maps Android API 17

2.3.1 Các đối tượng Map 17

2.3.2 Vẽ trên bản đồ 19

2.3.3 Tương tác với bản đồ 19

2.3.4 Dữ liệu về tọa độ 20

Trang 9

2.3.5 Thay đổi góc nhìn 20

2.4 Hệ quản trị cơ sở dữ liệu MySQL 20

2.5 Cơ sở dữ liệu nhúng SQLite 21

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 23

3.1 Mô hình hệ thống 23

3.2 Phân tích và xác định yêu cầu 25

3.2.1 Ứng dụng quản lý người dùng dịch vụ xe buýt 25

3.2.2 Ứng dụng hỗ trợ người dùng dịch vụ xe buýt 35

3.3 Thiết kế 41

3.3.1 Kiến trúc ứng dụng 41

3.3.2 Xác định gói thiết kế 41

3.3.3 Thiết kế cho từng ca sử dụng 42

3.3.4 Thiết kế giao diện 47

CHƯƠNG 4: THỰC NGHIỆM 51

4.1 Môi trường thực nghiệm 51

4.1.1 Cấu hình thiết bị 51

4.1.2 Các công cụ phần mềm 52

4.2 Kết quả thực nghiệm 52

4.3 Đánh giá và hướng phát triển 53

CHƯƠNG 5: KẾT LUẬN 54

TÀI LIỆU THAM KHẢO 55

Tiếng Anh 55

Tiếng Việt 56

Trang 10

BẢNG DANH MỤC TỪ VIẾT TẮT

buýt

vụ xe buýt

Trang 12

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

Hình 2.1 Mô hình kiến trúc phần mềm Android 7

Hình 2.2 Cơ chế hoạt động của Hệ thống công văn Thẻ [22] 13

Hình 2.3 Giả lập thẻ NFC thông qua thành phần bảo mật [23] 15

Hình 2.4 Giả lập NFC thông qua HBC [23] 16

Hình 3.1 Mô hình hệ thống 24

Hình 3.2 Mô hình thực thể 25

Hình 3.3 Mô hình Use Case: Ứng dụng quản lý người dùng dịch vụ xe buýt 26

Hình 3.4 Use case: "Đăng nhập" 28

Hình 3.5 Use case: "Đăng xuất" 29

Hình 3.6 Use case: "Kiểm tra thông tin cá nhân" 30

Hình 3.7 Use case: "Kiểm tra lịch sử giao dịch" 31

Hình 3.8 Use case: "Xác thực người dùng dịch vụ xe buýt" 32

Hình 3.9 Uses case: "Báo cáo vi phạm" 33

Hình 3.10 Mô hình lớp phân tích: Ứng dụng quản lý người DVXB 33

Hình 3.11 Mô hình Use Case Ứng dụng hỗ trợ người dùng dịch vụ xe buýt 36

Hình 3.12 Use case: "Kiểm tra lịch sử giao dịch" 37

Hình 3.13 Use case: "Hiển thị bản đồ xe buýt" 38

Hình 3.14 Sequence Diagram: Khởi tạo bản đồ và Hiển thị trạm xe buýt 39

Hình 3.15 Mô hình lớp phân tích: Ứng dụng hỗ trợ người dùng DVXB 40

Hình 3.16 Kiến trúc ứng dụng 41

Hình 3.17 Gói Src 42

Hình 3.18 Giao diện quản lý quản lý người dùng dịch vụ xe buýt 49

Hình 3.19 Giao diện ứng dụng hỗ trợ người dùng dịch vụ xe buýt 50

Trang 13

DANH MỤC BẢNG BIỂU

Bảng 3.1 Các lớp phân tích: Ứng dụng quản lý người dùng DVXB 35

Bảng 3.2 Các lớp phân tích: Ứng dụng hỗ trợ người dùng DVXB 40

Bảng 3.3 Lớp thiết kế : “Đăng nhập” 43

Bảng 3.4 Lớp thiểt kế: “Đăng xuất” 44

Bảng 3.5 Lớp thiết kế: "Kiểm tra thông tin" 44

Bảng 3.6 Lớp thiết kế:"Xác thực người dùng xe buýt" 45

Bảng 3.7 Lớp thiết kế: "Báo cáo vi phạm" 46

Bảng 3.8 Lớp thiết kế: "Kiểm tra lịch sử giao dịch (nhân viên)" 46

Bảng 3.9 Lớp thiết kế: "Kiểm tra lịch sử giao dịch(người dùng)" 46

Bảng 3.10 Lớp thiết kế: "Hiển thị bản đồ xe buýt" 47

Bảng 4.1 Cấu hình thiết bị thực nghiệm 51

Bảng 4.2 Cấu hình máy tính 52

Bảng 4.3 Công cụ, và các gói phần mềm,… 52

Trang 14

CHƯƠNG 1: GIỚI THIỆU

Với tốc độ tăng trưởng chóng mặt như hiện nay, các nghành cũng phát triển vớiquy mô rộng lớn, đặc biệt với nghành dịch vụ Một nền kinh tế năng động phải có cácnghành dịch vụ phát triển với nhiều loại hình Khi kinh tế phát triển, nhu cầu conngười ngày càng cao, xu thế xuất hiện những nhu cầu mới phục vụ những nhu cầu đónhư các dịch vụ khách sạn, du lịch, chăm sóc sức khỏe,… Trong số các nhu cầu đó cầntính đến nhu cầu di chuyển

Tại nước ta đặc biệt Hà Nội nhu cầu di chuyển của người dân là rất lớn, vì vậydịch vụ xe buýt công cộng hiện nay đang rất sôi động Theo Tổng công ty Vận tải HàNội, năm 2009 đã có 385 triệu hành khách đi xe buýt chiếm trên 92% sản lượng vận

10.000 lượt xe, vận chuyển được trên 1 triệu lượt hành khách, hạn chế trên 700.000lượt xe máy tham gia giao thông trên đường phố [32] Với hệ thống xe buýt bao phủkhắp Hà Nội đã giảm đáng kể số vụ tai nạn trong thành phố, cũng như giảm tắc đường,bảo vệ môi trường của thủ đô Xe buýt không ngừng phục vụ cho những nhu cầu cầnthiết của con người như: đi học, đi làm, …

Tuy nhiên, với số lượng hành khách quá đông như hiện nay, khả năng đáp ứngcủa xe buýt là hoàn toàn không đủ và việc xác thực người dùng dịch, kiểm soát thanhtoán trên một chuyến xe cũng như việc hỗ trợ khách hàng là khó thực hiện Cũng vì lý

do trên, chúng tôi thực hiện đề tài này nhằm xây dựng một hệ thống quản lý ngườidùng dịch vụ xe buýt để khắc phục các vấn đề về xác thực người dùng và kiểm soátthanh toán trên xe buýt và hỗ trợ khách hàng để cải thiện thực trạng hiện nay Trongphạm vi khóa luận này, tôi sẽ đi sâu vào các nội dung xung quanh phần thứ hai của hệthống là hai ứng dụng: ứng dụng quản lý người sử dụng dịch vụ xe buýt và ứng dụng

hỗ trợ người dùng dịch vụ xe buýt trong việc quản lý tài khoản giao dịch của mình vàmột bản đồ xe buýt để người sử dụng có thể quan sát được vị trí hiện tại của các xebuýt và các trạm dừng của tuyến xe buýt đó

Để xây dựng được ứng dụng quản lý người dùng dịch vụ xe buýt, bài toán đặt ratrước hết là cách để định danh duy nhất một người sử dụng duy nhất Cách định danhphổ biến và thường được sử dụng là mỗi người dùng dịch vụ xe buýt thường được cấpphát một thẻ xe buýt trong đó ghi rõ nội dung cần thiết để xác thực người sử dụng vàtình trạng sử dụng dịch vụ hiện tại của người xe buýt đó Tuy nhiên, thẻ định danh

Trang 15

hiện tại đang được sử dụng tại Việt Nam là loại thẻ giấy và việc xác thực người dùngdịch vụ xe buýt được thực hiện một cách thủ công để xác thực chính xác thì mất nhiềuthời gian, khó có thể thống kê và có thể dễ dàng làm giả Vậy cách để định danh ngườidùng dịch vụ xe buýt phải đảm bảo độ tin cậy về thông tin, tốc độ nhanh, an toàn và cóthể thực hiện tự động.

Theo các điều kiện đặt ra ở trên, ý tưỏng của tôi là xác thực người sử dụngthông qua thẻ từ: cụ thể là loại thẻ NFC Như vậy việc định danh người sử dụng sẽđịnh danh thông qua ID của thẻ, thông tin người sử dụng sẽ được lưu trên một máychủ và truy vấn thông qua các dịch vụ web Ứng dụng quản lý người dùng dịch vụ xebuýt sẽ là trung gian giao tiếp giữa thẻ từ NFC định danh người dùng và dịch vụ webthẩm định người dùng Điều này có nghĩa là mỗi xe buýt sẽ được trang bị một thiết bị

có khả năng đọc thẻ từ, ở đây tôi chọn thiết bị Android có hỗ trợ đọc thẻ từ NFC.Còn với ứng dụng hỗ trợ người dùng dịch vụ xe buýt, ngoài việc sử dụng thẻNFC để định danh người sử dụng như ứng dụng quản lý người dùng dịch vụ xe buýt

đã nói ở phần trên Đối với bài toán còn lại là làm việc với dữ liệu bản đồ, tôi sẽ giảiquyết bài toán này thông qua Google Maps API vì tính phổ biến, dữ liệu vừa đủ và sự

đa dạng trong các tính năng mà nó cung cấp trên nền Android cùng với dữ liệu cáctrạm xe buýt được số hóa ở khóa luận “Số hóa hệ thống xe bus trên nền Google Maps”[30], và các dịch vụ web để giải quyết bài toán hiển thị bản đồ xe buýt

Nội dung khóa luận bao gồm 4 chương:

Chương 1 - Giới thiệu: Nêu thực trạng, giới thiệu bài toán, ý tưởng xây dựng vàcác vấn đề sẽ được trình bày

Chương 2 – Các công cụ được sử dụng: Nêu những công cụ, cơ sở lý thuyết được

Chương 5 – Kết luận: Tóm tắt lại quá trình xây dựng, những kết quả đã đạt được,

ý nghĩa thực tiễn của hệ thống

Trang 16

CHƯƠNG 2: LÝ THUYẾT LIÊN QUAN

2.1 Tổng quan về Android

2.1.1 Giới thiệu chung

Android là một hệ điều hành mã nguồn mở dành cho thiết bị di động như điệnthoại thông minh và máy tính bảng Được phát triển bởi Liên minh thiết bị cầm tay mởrộng, dẫn đầu là Google

Từ quan điểm của nhà phát triển, Android là một hệ điều hành xây dựng trênnhân Linux Nó bao gồm giao diện cảm ứng, widgets, camera, … và tập các chức năngcần thiết để có thể được gọi là điện thoại thông minh Android là một nền tảng hỗ trợcác ứng dụng khác nhau, có sẵn trong Google Play Store Nền tảng Android cũng chophép người dùng có thể phát triển, cài đặt và sử dụng ứng dụng của họ AndroidFrameWork được cấp phép theo chứng chỉ Apache

2.1.2 Một số đặc điểm của Android

Android cung cấp đầy đủ bộ phần mềm cho các thiết bị di động bao gồm: hệ điềuhành, middleware (các phần mềm có nhiệm vụ kết nối các thành phần phần mềm vàcác ứng dụng với nhau) và ứng dụng di động cốt lõi

Android được xây dựng trên nhân Linux (là phần mềm mở và miễn phí) và sửdụng máy ảo được thiết kế và tối ưu hóa bộ nhớ và tài nguyên phần cứng trong môitrường di động

Trang 17

Android có một cộng đồng các lập trình viên và những người đam mê rất năngđộng Họ sử dụng mã nguồn Android để phát triển và phân phối những phiên bảnchỉnh sửa của hệ điều hành.

2.1.2.2 Tính ngang bằng giữa các ứng dụng

Android không phân biệt các ứng dụng cốt lõi và các ứng dụng được phát triểnbởi bên cung cấp thứ ba Mọi ứng dụng đều được phát triển trên cơ sở truy cập toàn bộchức năng của thiết bị di động nhằm cung cấp cho người dùng các ứng dụng và dịch

vụ phong phú

Với các thiết bị xây dựng trên nền tảng Android, người dùng có thể tùy chỉnhthiết bị theo cách họ mong muốn Ví dụ như, cài đặt bất cứ ứng dụng nào, thay đổimàn hình chính của thiết bị, thiết đặt cách xử lý các sự kiện bằng các ứng dụng mà họnghĩ là phù hợp

2.1.2.3 Phá vỡ ranh giới ứng dụng

Android phá vỡ các rào cản cần thiết nhằm hướng tới xây dựng các ứng dụngmới và sáng tạo nhờ vào khai thác tối đa chức năng của phần cứng Ví dụ như, nhàphát triển có thể xây dựng các ứng dụng chụp ảnh với nhiều đổi mới so với ứng dụngcốt lõi có sẵn

2.1.2.4 Phát triển các ứng dụng một cách nhanh chóng và dễ dàng

Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng bộ pháttriển phần mềm Android (SDK) SDK bao gồm một bộ đầy đủ các công cụ dùng đểphát triển, gồm có công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trênQEMU, tài liệu hướng dẫn, mã nguồn mẫu, và hướng dẫn từng bước Môi trường pháttriển tích hợp (IDE) được hỗ trợ chính thức là Eclipse sử dụng phần bổ sung AndroidDevelopment Tools (ADT) Các công cụ phát triển khác cũng có sẵn, gồm có Bộ pháttriển gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, GoogleApp Inventor, một môi trường đồ họa cho những nhà lập trình mới bắt đầu, và nhiềunền tảng ứng dụng web di động đa nền tảng phong phú

2.1.2.5 Quản lý bộ nhớ

Android được thiết kế quản lý bộ nhớ (RAM) nhằm giảm tối thiệu tiêu thụ điệnnăng Khi một ứng dụng Android không còn được sử dụng, hệ thống sẽ tự động ngưnghoạt động của ứng dụng đó, mặc dù thực sự là nó vẫn ở trạng thái mở Vì điều đó, cácứng dụng được tạm ngưng không tiêu thụ tài nguyên và được khởi động lại khi cần

Trang 18

thiết Điều này giúp cho Android tăng khả năng đáp ứng người dùng (ứng dụng cầnkhởi động lại), mặt khác đảm bảo tối thiệu tiêu hao năng lượng của ứng dụng nền.Quản lý bộ nhớ được thực hiện một cách tự động: khi bộ nhớ đầy hệ thống sẽ bắtđầu diệt ứng dụng và tiến trình không hoạt động được một thời gian, sắp theo thờiđiểm cuối mà chúng được sử dụng.

2.1.2.6 Bảo mật và riêng tư

Các ứng dụng được giới hạn trong phạm vi tài nguyên của chính mình, chúngđược hoạt động một cách riêng biệt và không được phép chạm đến phần tài nguyêncòn lại ngoại trừ người sử dụng trao quyền đó một cách công khai cho ứng dụng khicài đặt Điều này làm giảm bớt ảnh hưởng của lỗi bảo mật hoặc lỗi chương trình cótrong ứng dụng

2.1.3 Kiến trúc Android

Kiến trúc Android (Hình 2.1) được chia làm bốn tầng bao gồm:

- Tầng một: tầng Application là tầng ở trên cùng cách xa với phần cứng nhất,

nó chứa các ứng dụng mà lập trình viên phát triển

- Tầng hai: Application Framework Một vài trong đó là:

o Activity Manager: quản lý vòng đời của các Activity

o Windows Manager: quản lý form của các ứng dụng

o Content Providers: cho phép các ứng dụng truy cập dữ liệu từ các ứngdụng khác hoặc để chia sẻ dữ liệu của riêng ứng dụng

o View UI - để xây dựng layout của ứng dụng

o Resource Manager - cung cấp cách thức truy cập đến non-coderesources

o Notification Manager - cho phép tất cả các ứng dụng hiển thị thôngbáo của mình trên hệ điều hành

o Google xây dựng cho các developer để phát triển các ứng dụng của họtrên Android chỉ bằng cách gọi các API

- Tầng ba: Libraries.là các thư viện được viết bằng ngôn ngữ C/C++ sẽ đượccác developer phát triển ứng dụng android thông qua tầng AndroidFramework Có thể kể ra đây một số thư viện quen thuộc với các lập trìnhviên như: Media Libraries, Surface Manager, LibWebCore, …

- Tầng bốn: Nhân Linux

Trang 19

Hình 2.1 Mô hình kiến trúc phần mềm Android

2.1.4 Các thành phần chính trong một ứng dụng Android:

Một ứng dụng Android thường có các thành phần sau:

dùng có thể tương tác vào đó để thực hiện một hành động nào đó

Khi được bật Service dùng để update dữ liệu, đưa ra các cảnh báo(Notifacation) và không bao giờ hiển thị cho người dùng nhìn thấy

điều hành (pin yếu, có sms, có cuộc gọi đến ) hoặc từ chính trong ứng dụngcủa chúng ta BR cũng không có giao diện người dùng

riêng với nhau

Trang 20

- Intent và bộ lọc Intent: là một đối tượng dùng để thông báo yêu cầu hànhđộng từ một thành phần khác như: khởi động một Activity, một Service hoặccung cấp một BR.

khác và được cập nhập một cách định kỳ

2.2 Giới thiệu về công nghệ NFC và Android NFC API

2.2.1 Giới thiệu về Công nghệ NFC

2.2.1.1 Khái quát về NFC

Near Field Communication là tập hợp các tiêu chuẩn cho smartphone và cácthiết bị tương tự có thể thiết lập một kết nối thông qua sóng radio khi các thiết bị đónằm trong một phạm vi đủ gần Kết nối cũng có thể được thiết lập giữa các thiết bịNFC và chip NFC không dùng năng lượng ( hay còn gọi là thẻ NFC).[1][2]

NFC xây đựng dựa trên các hệ thống RFID : là các hệ thống chỉ giao tiếp mộtchiều từ các thẻ thông minh, NFC cải tiến hơn so với RFID Nó cho phép giao tiếp haichiều giữa các thiết bị đầu cuối Một trong những thể hiện của việc giao tiếp này làtính năng Android Beam trên thiết bị thông minh Android Android Beam sử dụngNFC để bật Bluetooth ở cả hai thiết bị và tự động tăt Bluetooth khi kết thực hiện xongmột công việc nào đó S-Beam là mở rộng của AndroidBeam, sử dụng NFC để chia sẻđịa chỉ MAC và IP và thực hiện công việc trực tiếp trên mạng WIFI thay choBluetooth.[3]

Thiết bị NFC có thể sử dụng cho việc thanh toán điện tử, tương tự với các loạithẻ tín dụng và thẻ điện tử thông minh.Như Google Wallet cho phép người tiêu dùnglưu trữ thông tin thẻ tín dụng trong một chiếc ví ảo sau đó sử dụng thiết bị NFC vớithiết bị đọc thẻ chấp nhận giao dịch Master Card PayPass.[4] Germany[5], Austria[6],

cho dịch vụ xe công cộng

2.2.1.2 Các thông số kỹ thuật của thẻ NFC

NFC là một tập hợp các công nghệ không dây tầm ngắn ( phạm vi 10 cm hoặc íthơn ) NFC hoạt động ở tần số 13,56 MHz trên chuẩn ISO/IEC 18000-3 và tốc độ từ

106 kbit/s tới 424 kbit/s NFC luôn có một đối tượng khởi động và một đối tượng mụctiêu Nếu mục tiêu là đối tượng bị động, đối tượng khởi động tạo ra một vùng RF cung

Trang 21

cấp năng lượng cho mục tiêu bị động Cho nên đối tượng NFC có hình thức đơn giảnnhư : thẻ, thẻ dán, thẻ không cần pin Nếu cả hai đối tượng đều chủ động thì cả haithiết bị đều là đối tượng khởi động (nguồn cung cấp điện) và luân phiên tạo ra cácvùng riêng, thiết bị chờ dữ liệu sẽ vô hiệu hóa trường RF của chính nó Giao tiếp NFCpear-to-pear có thể kích hoạt khi hai thiết bị NFC đang bật.[3] Năng lượng RF tậptrung trong phạm vi ±7 KHZ phạm vi băng thông, nhưng đường bao phổ đầy đủ có thểrộng tới 1.8 MHz khi sử dụng biến điệu ASK.[12]

Thẻ NFC chứa dữ liệu và thường chỉ đọc, và có thể cho phép ghi đè Thẻ NFC cóthể được tùy chỉnh bởi nhà sản xuất hoặc sử dụng các thông số kỹ thuật được cung cấptrong diễn đàn NFC An toàn lưu dữ liệu cá nhân trong thẻ NFC như thẻ ghi nợ và thẻtín dụng, mã PIN và các thông tin khác Diễn đàn NFC định nghĩa có bốn loại thẻ NFC

có tốc độ truyền thông khác nhau về cấu hình, bảo mật, dữ liệu lưu trữ và độ bền Bộnhớ của thẻ từ 96 đến 4096 bytes

2.2.1.3 So sánh với Bluetooth

NFC và Bluetooth đều là công nghệ giao tiếp tầm ngắn và được tích hợp vào điệnthoại di động NFC hoạt động ở tốc độ chậm hơn so với Bluetooth, nhưng tiêu thụ ítđiện năng và không yêu cầu ghép nối NFC thiết lập nhanh hơn so với Bluetooth,nhưng có tốc độ truyền chậm hơn so với Bluetooth ngay cả ở trạng thái năng lượngthấp Với NFC, thay vì thực hiện các công việc thủ công để xác định các thiết bị, kếtnối của hai thiết bị NFC được thiết lập một cách nhanh chóng (chưa tới 1/10 giây).Vớikhoảng cách tối đa là 20cm, NFC có khoảng cách ngắn làm giảm khả năng bị chặn dẫnđến ngắt trong khu vực đông đúc Trái ngược với Bluetooth, NFC tương thích với hạtầng công nghệ RFID thụ động (13.56 MHz ISO/IEC 18000-3) [13]

2.2.1.4 Tổ chức tiêu chuẩn và dự án công nghiệp

Tiêu chuẩn: NFC được chấp nhận là tiêu chuẩn ISO/IEC vào 8/10/2003 và chuẩnECMA NFC là một công nghệ mở được chuẩn hóa ECMA-340 và ISO/IEC 18092 Tiêu chuẩn quốc tế này quy định cụ thể : tiêu chuẩn sản xuất, mã hóa, tốc độ truyền,định dạng khung và giao diện RF, cũng như khởi tạo các phương án và điều kiện cầnthiết để kiểm soát xung đột dữ liệu trong quá trình khởi tạo Hơn nữa, tiêu chuẩn nàyđịnh nghĩa giao thức vận chuyển bao gồm cả giao thức kích hoạt và phương pháp traođổi dữ liệu Giao diện không khí cho NFC được chuẩn hóa tại: ISO/IEC 18092 /ECMA-340[14] và ISO/IEC 21481 / ECMA-352[15] NFC cũng bao gồm cả chuẩnISO/IEC 14443 A, B, và FeliCa Ngoài ra diễn đàn NFC đã xác định kiểu dữ liệu phổbiến là NFC Data Exchange Format (NDEF)

Trang 22

GSMA: Hiệp hội GSMA là hiệp hội thương mại toàn cầu đại diện cho 800 nhàvận hành điện thoại di động và 200 công ty sản phẩm và dịch vụ trên 219 quốc gia.Nhiều tổ chức trong đó đã thực nghiệm công nghệ NFC trên toàn thế giới và đangchuẩn bị cho quá trình thương mại hóa [16]

GSMA có liên quan đến:

- Thiết lập tiêu chuẩn: GSMA đang phát triển chứng nhận và thử nghiệm đểđảm bảo khả năng tương tác toàn cầu của dịnh vụ NFC [16]

- Xác định cách tiếp cận toàn cầu chung nhất để sử dụng NFC để liên kết cácthiết bị NFC với hệ thống thanh toán không tiếp xúc [17][18]

- 17/11/2010 AT&T, Verizon và T-Mobile ra mất công ty liên doanh (ISIS)nhằm phát triển nền tảng duy nhất sử dụng công nghệ NFC để thanh toán diđộng ISIS cho phép thiết bị NFC có chức năng như thẻ tín dụng cho 200triệu khách hàng

Diễn đàn NFC: là một hiệp hội phi lợi nhuận được thành lập vào 18/3/2004 bởiNXP Semiconductors, Sony và Nokia để thúc đẩy việc sử dụng NFC trong thiết bịđiện tử tiêu dùng, thiết bị di động và máy tính NFC Forum thúc đẩy việc thực hiện vàtiêu chuẩn của công nghệ NFC để đảm bảo khả năng tương tác giữa các thiết bị vàdịch vụ Tính đến tháng 6 năm 2013, Diễn đàn NFC đã có hơn 190 thành viên.[19]

2.2.1.5 Các khía cạnh an toàn

Mặc dù phạm vi giao tiếp của NFC chỉ giới hạn trong một vài centimet nhưngcông nghệ NFC không đảm bảo thông tin liên lạc được an toàn Năm 2006, ErnstHaselsteiner và Klemens Breitfuß đã liệt kê các loại tấn công có thể xảy ra khi sử dụngthẻ NFC [20] NFC không cung cấp phòng chống việc nghe trộm thông tin và dễ bị tổnthương bởi thay đổi dữ liệu Ứng dụng phải sử dụng các phương thức cao hơn nhưgiao thức mã hóa để thiết lập an toàn Các kiểu tấn công khi sử dụng thẻ NFC baogồm:

ten Phạm vi có thể nghe trộm tín hiệu RF phụ thuộc vào nhiều thông số.Thường là 10m với thiết bị chủ động và 1m cho thiết bị thụ động.[20] [21]

cách nào hiện nay có thể ngăn chặn được sự tấn công này Tuy nhiên, nếuthiết bị NFC kiểm tra vùng RF trong khi đang gửi dữ liệu thì nó có thể pháthiện dược các cuộc tấn công

IEC 14443, các kiểu tấn công chuyến tiếp cũng có tính khả thi Trong kiểu tấncông này, kẻ tấn công có thể chuyển các yêu cầu của người đọc cho nạn nhân

Trang 23

và chuyển tiếp câu trả lời của kẻ tấn công cho người đọc, để kẻ tấn công cóthể giả mạo là chủ của chiếc thẻ Cũng tương tự như kiểu tấn công “người ởgiữa”.

tin chứng thực được lưu trong thẻ của người mất Để thiết giải quyết vấn đềnày, cần nhiều hơn một yếu tố xác thực vật lý

hệ thống thườmg đặt chế độ time-out khi không sử dụng Cuộc tấn công cóthể xảy ra vào thời điểm hệ thống chưa time-out Cách giải quyết kiểu tấncông cần nhiều hơn một yếu tố xác thực vật lý

2.2.2 Android NFC API

Thẻ NFC có độ phức tạp, tinh vi tùy vào loại thẻ Loại đơn giản chỉ cung cấp đọc

và viết, đôi khi cũng có một số trường trong thẻ được dùng để quy định thẻ chỉ có thểđược đọc Thẻ phức tạp hơn cung cấp các hoạt động toán học, có phần cứng mã hóa đểphân quyền truy cập vào khu vực của thẻ Thẻ thiết kế tinh vi nhất cung cấp tương tácphức tạp với mã thực thi trên thẻ Dữ liệu trong thẻ NFC thường có chung một địnhdạng khung, hầu hết Android NFC API được xây dựng trên chuẩn NDEF (NFC DataExchange Format) của diễn đàn NFC Thiết bị Android hỗ trợ NFC với ba chế độchính:

Android Beam

2.2.2.1 Các vấn đề cơ bản của NFC trong Android

2.2.2.1.1 Hệ thống công văn thẻ

Các thiết bị Android thường tìm kiếm thẻ NFC khi màn hình mở khóa và chế độNFC được bật Hệ thống này thực thi phân tích thẻ đã được thiết bị phát hiện, phânloại dữ liệu và khởi động ứng dụng quan tâm đến dữ liệu thu nhập được bằng cách:

2.2.2.1.2 Cơ chế ánh xạ NFC tới định dạng MIME, URI

NDEF được đóng gói bên trong một tin nhắn ( NdefMessage ) có chứa các bảnghi ( NdefRecord ) Mỗi NdefRecord phải được hình thành theo các đặc điểm kỹ thuật

Trang 24

của loại bản ghi Khi thiết bị Android quét một thẻ NFC chứa dữ liệu định dạngNDEF Từ NdefMessage quét được, hệ thống phân tích NdefMessage nhằm tìm cácđịnh dạng MIME và URI Để thực hiện điều đó, hệ thống đọc NdefRecord đầu tiêntrong NdefMessage để xác định cách đọc toàn bộ dữ liệu NDEF Một NdefMessage tốt

có cấu trúc NdefRecord đầu tiên như sau:

- Variable length payload: tải trọng thực tế của dữ liệu để đọc hoặc viết

Hệ thống công văn thẻ sử dụng NdefRecord đầu tiên để ánh xạ định dạng MIME

và URI Nếu thành công, thông tin đó được đóng gói trong một intentACTION_NDEF_DISCOVERED Trong một số trường hợp, hệ thống này không xácđịnh dược NdefRecord đầu tiên (đồng nghĩa với việc không thể ánh xạ định dạngMIME hay URI hoặc dữ liệu không bắt đầu với kiểu cấu trúc NDEF) Trong trườnghợp này, thông tin về các công nghệ thẻ và tải trọng thực tế được đóng gói trong intentACTION_TECH_DISCOVERED

2.2.2.1.3 Cơ chế kích hoạt ứng dụng qua thẻ NFC

Khi thông tin được đóng trong một intent, hệ thống công văn thẻ sẽ gửi intent đótới các ứng dụng quan tâm tới intent đó Nhìn chung có ba loại intent chính cho cơ chếquét thẻ NFC:

thẻ chứa dữ liệu NDEF Đây là loại intent được ưu tiên hàng đầu, nó sẽ được

ưu tiên kích hoạt hàng đầu so với hai kiểu intent còn lại

intent ACTION_NDEF_DISCOVERED: hệ thống công văn thẻ sẽ cố gắngkích hoạt ứng dụng đăng ký xử dụng loại thẻ này Intent này cũng được kíchhoạt đầu tiên, nếu thẻ quét được không chứa kiểu dữ liệu NDEF

ACTION_NDEF_DISCOVERED và ACTION_TECH_DISCOVEREDintent này được kích hoạt

Các hoạt động cơ bản của hệ thống công văn thẻ hoạt động:

- Cố gắng kích hoạt Activity bởi intent đã được tạo khi quét thẻ NFC(ACTION_NDEF_DISCOVERED hoặc ACTION_TECH_DISCOVERED)

Trang 25

- Nếu không có Activity nào được kích hoạt, kích hoạt Activity với độ ưu tiên

ACTION_TAG_DISCOVERED)

Hình 2.2 Cơ chế hoạt động của Hệ thống công văn Thẻ [22]

2.2.2.1.4 Lấy thông tin từ Intent

NFC intent có thể chứa các thành phần sau của thẻ được quét:

từ thẻ ( thành phần bắt buộc có trong intents)

2.2.2.1.5 Tạo NdefRecord phổ biến

Từ phiên bản Android 4.0 ( API level 14)[22], Android hỗ trợ việc tạo Uri tựđộng Từ phiên bản 4.1 (API lv 16) [22], hỗ trợ các phương thức tạo MIME và cácNdefRecord mở rộng

2.2.2.1.6 Android Application Record (AAR)

AAR được hỗ trợ ở phiên bản Android 4.0 trở lên AAR chắc chắn cho ứng dụngđược ưu tiên khi xử lý NdefMessage thông qua tên gói được nhúng trong mộtNdefRecord Có thể thêm AAR vào bất cứ NdefRecord nào của NdefMessage, bởi vìAndroid tìm kiếm AAR trên tất cả NdefRecord của NdefMessage Nếu tìm thấy AAR,Android kích hoạt ứng dụng qua tên gói của ứng dụng được nhúng trong AAR Nếukhông tìm thấy ứng dụng, Android sẽ bật Google Play để tìm kiếm ứng dụng và tải về

Trang 26

AAR được sử dụng để ngăn các ứng dụng khác cùng xử lý một itent mà lập trìnhviên triển khai trong thẻ NFC AAR chỉ hỗ trợ ở mức độ ứng dụng, bộ lọc Intent hỗ trợ

ở mức Activity Một thẻ NFC có chứa AAR, sẽ được hệ thống công văn thẻ xử lý nhưsau:

kiện AAR thì khởi động Activity

Activity có thể xử lý intent đó, hoặc không Activity nào có thể xử lý Kíchhoạt ứng dụng thỏa mãn AAR

- Nếu không ứng dụng nào có thể bắt đầu với AAR, vào GooglePlay vàdownload ứng dụng

2.2.2.1.7 Truyền NdefMessage tới thiết bị Android hỗ trợ NFC khác

AnroidBeam cho phép hai thiết bị Android hỗ trợ NFC có thể trao đổi dữ liệu.Ứng dụng dùng để truyền dữ liệu cần nằm ở tiền cảnh và thiết bị nhận đang ở trạngthái không khóa Khi thiết bị truyền nằm trong phạm vi vừa đủ với thiết bị nhận, người

sử dụng có thể chọn hoặc không chọn truyền dữ liệu cho thiết bị nhận

Một Activity chỉ có thể đẩy một NdefMessage tại một thời điểm Thiết bị NFCnhận dữ liệu phải được hỗ trợ gói com.android.npp - giao thức đẩy dữ liệu NDEF hoặcgiao thức SNEP (Simple NDEF Exchange Protocol) của diễn đàn NFC Giao thứccom.android.npp là cần có của phiên bản Android API level 9 (Android 2.3) tới level

13 (Android 3.2) [22] Từ Android 4.0 trở lên đều cần cả com.android.npp lẫnSNEP[22]

2.2.2.2 Các vấn đề nâng cao của NFC trong Android

Phần này nói qua về các API cho phép sử dụng các công nghệ thẻ khác nhau màAndroid hỗ trợ Android đọc, ghi dữ liệu dưới các chuỗi byte và sử dụng giao thức dongười lập trình thiết lập (có thể không phải kiểu dữ liệu NDEF hoặc là NDEF) để pháthiện và xác định và kết nối với thẻ

Khi làm việc với thẻ NFC và các thiết bị hỗ trợ Android, định dạng chínhthường đước sử dụng là NDEF Với kiểu dữ liệu NDEF, Android hỗ trợ phân tích cúpháp của thông điệp và đặt nó trong một NdefMessage nếu có thể

Tuy nhiên, có những trường hợp thẻ không chứa dữ liệu NDEF hoặc không thểánh xạ MIME/URI, trong trường hợp này lập trình viên cần kết nối với thẻ, đọc và viết

Trang 27

theo giao thức riêng Android cung cấp gói android.nfc.tech để sử dụng trong cáctrường hợp nói trên.

2.2.2.3 Mô phỏng thẻ NFC

Nhiều thiết bị Android cung cấp chức năng giả lập thẻ NFC Chức năng nàythường được thực hiện bởi một chip riêng biệt trong thiết bị, là một thành phần bảomật Một số SIM được cung cấp bởi một số nhà mạng không dây cũng có thành phầnnày

Android 4.4 có một số phương pháp bổ sung giả lập thẻ mà không cần thông quacác thành phần bảo mật là : “host-based card emulation” (HCE)[23] Điều này chophép bất cứ ứng dụng Android có thể giả lập thẻ NFC và giao tiếp với các thiết bị đọcthẻ NFC

2.2.2.3.1 Giả lập với thành phần bảo mật

Khi giả lập thẻ NFC được thực hiện thông qua thành phần bảo mật, thẻ được môphỏng nằm trong thành phần bảo mật và các thông tin được truy xuất thông qua ứngdụng Android Khi đọc thẻ NFC, bộ điều khiển NFC chuyển hướng đích đọc của thiết

bị đọc sang thành phần bảo mật

Hình 2.3 Giả lập thẻ NFC thông qua thành phần bảo mật [23]

Các thành phần bảo mật tự thực hiện các công việc giao tiếp với các thiết bị đọcthẻ NFC mà không cần sự hỗ trợ nào của tầng ứng dụng Sau khi giao dịch hoàn tất,

Trang 28

ứng dụng có thể truy vấn đến các yếu tố bảo mật để lấy các thông tin cần thiết từ giaodịch.

2.2.2.3.2 Host-Based Card Emulation

Khi mô phỏng thẻ bằng HCE, dữ liệu được chuyển tới CPU mà trên đó ứng dụngAndroid đang chạy trực tiếp

Hình 2.4 Giả lập NFC thông qua HBC [23]

2.2.2.3.3 Các loại thẻ giao thức NFC được hỗ trợ để tạo giả lập

Android 4.4 hỗ trợ nhiều giao thức, loại thẻ phổ biến Cụ thể hơn là các loại thẻdựa trên các chuẩn của diễn đàn NFC : ISO-DEP (dựa trên ISO/IEC 14443-4) [23] vàtiến trình Application Protocol Data Units (APDUs) được nêu trong các chuẩn kĩ thuậtISO/IEC 7816-4 [23] Android chỉ được giới hạn giả lập công nghệ tiêu chuẩn ISO-DEP NFC-A (ISO / IEC 14.443-3 Loại A) [23] Còn công nghệ NFC-B (ISO / IEC14.443-4 Loại B) [23] là tùy chọn

2.2.2.3.4 Dịch vụ HCE

Kiến trúc HCE dựa trên thành phần dịch vụ Android (Android service) Lợi thếcủa thành phần dịch vụ Android là có thể chạy nền để có thể phản hồi thiết bị đọc NFCtrong nền mà không cần khởi động giao diện

Trang 29

2.2.2.3.5 HCE và bảo mật

Kiến trúc HCE bản thân nó cung cấp một phần cốt lõi của an ninh: vì dịch vụ nàyđược bảo vệ bới system permission BIND_NFC_SERVICE, chỉ có hệ điều hành có thểgiao tiếp và liên kết với dịch vụ HCE

2.3 Google Maps Android API

Google Maps Android API hỗ trợ việc thêm bản đồ dựa trên dữ liệu bản đồ củaGoogle Maps API này tự động xử lý các việc truy cập vào máy chủ Google Mapsnhằm tải tài liệu, hiển thị bản đồ, và phản hồi biển hiện bản đồ API này cũng đượcdùng cho việc đánh dấu bản đồ, vẽ đa giác, tạo một lớp phủ lên bản đồ cơ bản, thayđổi góc nhìn của người sử dụng trên một khu vực bản đồ Các đối tượng cung cấpthông tin bổ sung thêm cho các địa điểm, cho phép người dùng tương tác với bản đồ.API cho phép thêm đồ họa trên bản đồ

2.3.1 Các đối tượng Map

Google Maps API cho phép hiển thị Google Map trên ứng dụng Loại bản đồ nàygiống với bản đồ của ứng dụng Google Maps for Mobile (GMM)[25], bản đồ doGoogle Maps API tạo ra và bản đồ của ứng dụng GMM có nhiều tính năng tương tự.Nhưng có hai sự khác biệt cơ bản, bản đồ tạo ra bởi API thì:

nhân

nhiên, các địa điểm được thêm vào có thể được nhấp, API hỗ trợ việc đánhdấu nghe gọi cho các tương tác khác nhau

Ngoài chức năng tạo lập bản đồ, API cũng hỗ trợ các chức năng phù hợp với giaodiện người dùng Android Ví dụ, thiết lập các tương tác với bản đồ bằng cách thiết lậplắng nghe sự kiện phản hồi lại tương tác của người sử dụng

Lớp quan trọng khi làm việc với đối tượng bản đồ là lớp GoogleMap Trong giaodiện người dùng Android, một bản đồ sẽ được biểu diễn bằng một MapFragment hoặcđối tượng MapView

GoogleMap xử lý hoạt động tự động sau:

Trang 30

- Phản hồi tương tác cho pan và zoom như di chuyển bản đồ và zoom in vàzoom out.

2.3.1.1 MapFragment

MapFragment là lớp con Fragment trong Android, cho phép đặt bản đồ Googletrong một Fragment của Android Các đối tượng MapFragment cung cấp các phươngthức truy cập vào GoogleMap

Không giống như một View, một Fragment là một hành vi hay một phần của giaodiện người dùng trong một Activity Nhiều Fragment có thể kết hợp trong mộtActivity để tạo một giao diện đa cửa sổ[26]

2.3.1.2 MapView

MapView là lớp con của View trong Android, cho phép đặt bản đồ Google trongmột View của Android View là một đại diện cho vùng chữ nhật trên màn hình là mộtkhối cơ bản để xây dựng giao diện Android và Widgets Các đối tượng Mapview cungcấp các phương thức truy cập vào GoogleMap

2.3.1.3 Các loại bản đồ

Google Maps Android API cung cấp bốn loại bản đồ:

các đối tượng tự nhiên quan trọng như: sông, hồ, … Đường bộ và tính năngnhãn cũng được hiển thị

tính năng nhãn cũng được hiển thị

nhãn Đường bộ và tính năng nhãn cũng được hiển thị

trống

2.3.1.4 Indoors Maps

Ở các mức độ zoom khác nhau, bản đồ có thể hiển thị mặt phẳng đáy cho cáckhông gian kiến trúc như: sân bay, trung tâm mua sắm, cửa hàng lớn, trạm trungchuyển,… Loại hiển thị này được áp dụng cho bản đồ loại Normal, sẽ được tự độngkích hoạt khi người dùng thay đổi mức độ zoom

Trang 31

Mặt phẳng đáy được hiển thị trên bản đồ tại một thời điểm Mặc định sẽ là bản

đồ đầu tiên được bổ sung vào ứng dụng

2.3.2 Vẽ trên bản đồ

Google Maps Android API cung cấp chức năng thêm vào bản đồ các đối tượngsau:

cung cấp cho phép lắng nghe sự kiện tương tác của người dùng với Marker

tác động vào Markers Chỉ một Infor Wondow được phép hiển thị trong mộtthời điểm

một số cách đơn giản, để thêm các Shape vào bản đồ bao gồm: tập các đoạnthẳng giữa hai đường thẳng có ít nhất một đỉnh (Polyline) thường dùng đểđánh dấu đường và các tuyến đường, đa giác (Polygon) thường dùng để đánhdấu các khu vực trên bản đồ, hình tròn (Circle) là hình chiếu của hình tròntrên trái đất được vẽ trên bản đồ

Không giống Marker, Ground Overlays được định hướng với trái đất chứkhông phải màn hình

của các ô trên bản đồ cơ sở

2.3.3 Tương tác với bản đồ

Google Maps Android API cung cấp cách thức người dùng có thể tương tác với bảnđồ

có thể thấy ở ứng dụng Google Maps bao gồm: điều khiển zoom, la bàn, vịtrí hiện tại

của bản đồ khi người dùng tương tác như: phản hồi bằng cách zoom (với cáctương tác như: nhấp đúp, kéo bằng hai tương tác đồng thời,… ), phản hồibằng cách di chuyển điểm nhìn,

Trang 32

2.3.4 Dữ liệu về tọa độ

Các dữ liệu có sẵn của một thiết bị Android bao gồm vị trí hiện tại của thiết bị,Google API cho phép đồng bộ vị trí đó lên bản đồ Google Play services Location APIcho phép: xác định vị trí thiết bị, lắng nghe sự thay đổi của vị trí, xác định phươngthức vẩn chuyển, tạo và giám sát các khu vực địa lý trước

2.3.5 Thay đổi góc nhìn

Google Maps Android API v2 có thể nghiêng, xoay góc và di chuyển điểm nhìnbản đồ, tạo cho người dùng khả năng định hướng một cách dễ dàng dù là ở mức độzoom nào

2.4 Hệ quản trị cơ sở dữ liệu MySQL

MySQL là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở được sử dụng nhiềuthứ hai trên thế giới được phát triển bởi MySQL AB MySQL là miễn phí nằm ở vị trítrung tâm trong nhóm LAMP cho ứng dụng web mã nguồn mở (Linux-Apache-MySQl-Pearl/PHP/Python) Vì MySQL ổn định và dễ sử dụng, có tính khả chuyển,hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích mãnh

mẽ, MySQL có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL vì thế

mà MySQL được sử dụng và hỗ trợ của những lập trình viên yêu thích mã nguồn mở MySQL là một hệ cơ sở dữ liệu quan hệ, dữ liệu được lưu trữ trong nó theo cácbảng riêng biệt và giữa các bảng được liên kết với nhau theo các mối quan hệ xác địnhchứ không đưa dữ liệu vào một khối chung Cách lưu trữ như vậy làm tăng thêm tốc

độ và tính linh hoạt Giao dịch trong MySQL được thực hiện tuân theo mô hình ACID,cho phép đánh chỉ mục, hỗ trợ các kiểu dữ liệu chuẩn, cho phép thực hiện replicationdatabase,… Với các đặc tính như vậy, hệ quản trị cơ sở dữ liệu quan hệ MySQL thíchhợp trong các mô hình và giải pháp thương mại điện tử

MySQL được viết bằng ngôn ngữ C/C++ và được sử dụng trên nhiều hệ điềuhành khác nhau như: AIX, BSDi, FreeBSD, HP-UX, eComStation, i5/OS, IRIX,Linux, OS X, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD,OpenSolaris, OS/2 Warp, QNX, Oracle Solaris, Symbian, … Hầu hết các ngôn ngữ lậptrình đều hỗ trợ các API để thao tác với MySQL như: Connector/Net của Microsoft'sVisual Studio , JDBC cho java, …

MySQL bao gồm các lớp bảo mật dữ liệu vững chắc để bảo vệ dữ liệu nhạy cảm

từ những kể xâm nhập Thêm vào đó, tính mở rộng là rất quan trọng với hệ quản trị cơ

Trang 33

hạn kích thước tập tin (file) mặc định là 4GB tuy nhiên, chúng ta có thể tăng co số nàylên đến 8TB.[26] Và cuối cùng, MySQL có khả năng quản lý bộ nhớ tốt, máy chủ củaMySQL thường xuyên được kiểm tra kĩ lưỡng để tránh việc rò rỉ bộ nhớ.

2.5 Cơ sở dữ liệu nhúng SQLite

Được giới thiệu để giúp các ứng dụng quản lý dữ liệu của mình thuận tiện hơn,SQLite là một bộ thư viện dùng trong lập trình để hiện thực một SQL Database Engine

có khả năng tự tổ chức quản lý dữ liệu, không cần server mà thực hiện đọc ghi vào filetrực tiếp, không cần cấu hình mà vẫn hỗ trợ đầy đủ các tính năng quản lý giao tác.SQLite là SQL Database Engine nhúg mã nguồn mở theo mô hình dữ liệu quan hệđang được sử dụng nhiều nhất trên thế giới do tính cơ động cao, dễ sử dụng, gọn nhẹ,hiệu quả và tin cậy

SQLite là một thư viện nhỏ gọn kích thước tối đa là 500 KB, tùy thuộc vào nềntảng hướng đến mà thiết lập để tối ưu hóa trình biên dịch Nếu các tính năng tùy chọnđược bỏ qua, kích thước tối đa của SQLite là 300 KB, hơn nữa nó được thiết kế đểchạy chiếm một khoảng nhỏ trong không gian stack và rất nhỏ trong heap Chính vìvậy, SQLite là công củ cơ sợ dữ liệu phổ biến trên các bộ nhớ hạn chế các tiện íchnhư: điện thoại di động, máy nghe nhạc MP3, … Lưu ý, bộ nhớ cấp phát càng nhiềuthì Sqlite có tốc độ càng lớn, nhưng không có nghĩa là tốc độ của nó không chấp nhậnđược trong môi trường bộ nhớ hạn chế.[28]

SQLite có thể làm việc với cơ sở dữ liệu lên đến hằng TetraByte, và hầu hết cácthao tác trên dữ liệu thông thường đều chạy nhanh hơn các hệ cơ sỡ dữ liệu theo môhình client-server phổ biến khác Và hơn nữa nó có khả năng tổ chức lưu trữ mà khôngphải phụ thuộc vào các thư viện bên ngoài Đây là một đặc điểm khá quan trọng khiếnSQLite trở thành CSDL phù hợp để nhúng vào các thiết bị di động hoặc tích hợp vàocác ứng dụng muốn chạy mà không cần phải điều chỉnh cấu hình hệ thống

Ngoài ứng dụng như một định dạng tập tin vào các ứng dụng và làm cơ sở dữliệu cho các thiết bị điện tử SQLite còn có thể sử dụng làm cơ sở dữ liệu cho cácwebsite vì SQLite không cần phải cấu hình và dữ liệu được lưu trữ thành các tập tintrên đĩa thật sự nên nó đang trở thành lựa chọn phổ biến cho các website vừa và nhỏ

Mỗi phiên bản SQLite được kiểm tra cẩn thận trước khi công bố cho nên Sqliterất đáng tin cậy Giao dịch trong SQLite được thực hiện tuân theo mô hình ACID và

nó vẫn tuân thủ ACID trong trường hợp có sự cố hệ thống hay mất điện Đương nhiên,điều đó không có nghĩa là SQLite không tồn tại lỗi

Trang 34

Hiển nhiên, các đặc điểm tạo nên các ưu điểm của SQLite là con dao hai lưỡi làmcho SQLite có các hạn chế sau:

- Kết nối mạng: SQLite không có máy chủ, biện pháp là chia sẻ thông quanetwork file systems Hệ thống này có độ trễ nhất định điều này làm ảnhhưởng đến hiệu xuất của SQLite Mặt khác, khi sử dụng điều này lỗ hổng anninh là có thể xảy ra vì: các tập tin truyền đi có thể bị mở và điều chỉnh từ xa

- Chỉ phù hợp với các ứng dụng quy mô nhỏ: SQLite không phải là lựa chọnthích hợp cho các loại dữ liệu lớn và được cập nhập một cách liên tục

- Tính đồng thời: SQLite cho phép đọc đồng thời nhưng chỉ một người có thểđược ghi trong một thời điểm

Ngày đăng: 01/10/2015, 09:01

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. [1] “ What is NFC? ” , NFC Forum. Retrieved 14 June 2011 Sách, tạp chí
Tiêu đề: “ What is NFC? ”
2. [2] a b Nikhila (26 October 2011), “NFC — future of wireless communication ” , Gadgetronica Sách, tạp chí
Tiêu đề: “NFC — future of wireless communication ”
3. [3] a b Nosowitz, Dan (1 March 2011), “ Everything You Need to Know About Near Field Communication ” . Popular Science Magazine. Popular Science, Retrieved 14 June 2011 Sách, tạp chí
Tiêu đề: “ Everything You Need to Know About Near Field Communication ”
4. [4] “ Google Wallet — where it works ” , Google, Retrieved 11 December 2011 Sách, tạp chí
Tiêu đề: “ Google Wallet — where it works ”
5. [5] “ Germany: Transit Officials Enable Users to Tap or Scan in New Trial ” , NFC Times, February 11, 2011 Sách, tạp chí
Tiêu đề: “ Germany: Transit Officials Enable Users to Tap or Scan in New Trial ”
6. [6] “ Austria: 'Rollout' Uses NFC Reader Mode To Sell Tickets and Snacks ” , NFC Times, March 1, 2011 Sách, tạp chí
Tiêu đề: “ Austria: 'Rollout' Uses NFC Reader Mode To Sell Tickets and Snacks ”
7. [7] Saylor, Michael (2012). “The Mobile Wave: How Mobile Intelligence Will Change Everything”, Perseus Books/Vanguard Press, p. 63. ISBN 978- 1593157203 Sách, tạp chí
Tiêu đề: ). “The Mobile Wave: How Mobile Intelligence Will Change Everything”
Tác giả: [7] Saylor, Michael
Năm: 2012
8. [8] “ Telecom New Zealand and Westpac test NFC with Auckland Transport ” , NFC World, April 30, 2012 Sách, tạp chí
Tiêu đề: “ Telecom New Zealand and Westpac test NFC with Auckland Transport ”
9. [9] “ Italy: Telecom Italia and ATM to launch NFC ticketing service in Milan ” , NFC World, April 24, 2009 Sách, tạp chí
Tiêu đề: “ Italy: Telecom Italia and ATM to launch NFC ticketing service in Milan ”
10. [10] “ Irancell demonstrates NFC payments and ticketing ” , NFC World, Retrieved 2 April 2014 Sách, tạp chí
Tiêu đề: “ Irancell demonstrates NFC payments and ticketing ”
11. [11] “ Turkcell Wallet Transport ” , NFC, April 30, 2012 Sách, tạp chí
Tiêu đề: “ Turkcell Wallet Transport ”
12. [12] Patauner, C. “High Speed RFID/NFC at the Frequency of 13.56 MHz ” (PDF), EuraSIP Sách, tạp chí
Tiêu đề: “High Speed RFID/NFC at the Frequency of 13.56 MHz ”
13. [13] “ Near Field Communication Versus Bluetooth ” , Retrieved 28 November 2012 Sách, tạp chí
Tiêu đề: “ Near Field Communication Versus Bluetooth ”
14. [14] “Ecma International: Standard ECMA-340, Near Field Communication Interface and Protocol (NFCIP-1)”, December 2004 Sách, tạp chí
Tiêu đề: “Ecma International: Standard ECMA-340, Near Field Communication Interface and Protocol (NFCIP-1)”
15. [15] “Ecma International: Standard ECMA-352, Near Field Communication Interface and Protocol–2 (NFCIP-2)”, December 2003 Sách, tạp chí
Tiêu đề: “Ecma International: Standard ECMA-352, Near Field Communication Interface and Protocol–2 (NFCIP-2)”
16. [16] “World's leading mobile operators announce commitment to NFC technology”, GSMA press release, corporate website, February 21, 2011.[2] Sách, tạp chí
Tiêu đề: “World's leading mobile operators announce commitment to NFC technology”
17. [17] “GSM Association Aims For Global Point Of Sale Purchases by Mobile Phone”, GSM Association, 13 February 2007 Sách, tạp chí
Tiêu đề: “GSM Association Aims For Global Point Of Sale Purchases by Mobile Phone”
18. [18] “Momentum Builds Around GSMA's Pay-Buy Mobile Project”, GSM Association, 25 April 2007 Sách, tạp chí
Tiêu đề: “Momentum Builds Around GSMA's Pay-Buy Mobile Project”
19. [19] “Verizon Wireless and Discover Financial Services Join the NFC Forum as Principal Members”, NFC Forum Press Release, June 19, 2013 Sách, tạp chí
Tiêu đề: “Verizon Wireless and Discover Financial Services Join the NFC Forum as Principal Members”
20. [20] “Ernst Haselsteiner, Klemens Breitfuò: Security in near field communication (NFC) PDF (158 kB)”, Philips Semiconductors, Printed handout of Workshop on RFID Security RFIDSec 06, July 2006 Sách, tạp chí
Tiêu đề: “Ernst Haselsteiner, Klemens Breitfuò: Security in near field communication (NFC) PDF (158 kB)”

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