1. Trang chủ
  2. » Giáo Dục - Đào Tạo

HEDSPI report of thesis lytuannam 20072018 IS1 k53

62 127 0

Đ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 62
Dung lượng 4,33 MB

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

Nội dung

Các nhiệm vụ cụ thể của ĐATN • Tìm hiểu nền tảng hệ điều hành Android bao gồm các “phần chính” tạo nênAndroid để có thể xây dựng được một ứng dụng tốt trên nó.. Tìm hiểu lý thuyết: phần

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Sinh viên thực hiện : Lý Tuấn Nam

Lớp IS1-Việt Nhật - K53

Giáo viên hướng dẫn : TS Nguyễn Kim Khánh

HÀ NỘI 5-2013

Trang 3

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

1 Thông tin về sinh viên

Họ và tên sinh viên: Lý Tuấn Nam

Điện thoại liên lạc: 01698455010 Email: nam.lt.ict@gmail.com

Lớp: IS1 - Việt Nhật - K53 Hệ đào tạo: Đại học chính quy

Tên đề tài: Xây dựng ứng dụng Traffic hỗ trợ người tham gia giao thông

Đồ án tốt nghiệp được thực hiện tại: Phòng thí nghiệm Hệ thống máy tính - Viện Công Nghệ Thông Tin và Truyền Thông - Đại Học Bách Khoa Hà Nội

Thời gian làm ĐATN: Từ ngày 22 / 08 /2012 đến 15 / 05 /2013

2 Mục đích nội dung của ĐATN

• Tìm hiểu cách thức và xây dựng, phát triển ứng dụng trên thiết bị di động

• Xây dựng dịch vụ hỗ trợ người dùng tham gia giao thông trên thiết bị di độngAndroid, sử dụng mô hình client-server Trong đó, nội dung chủ yếu là xâydựng ứng dụng phía client

3 Các nhiệm vụ cụ thể của ĐATN

• Tìm hiểu nền tảng hệ điều hành Android bao gồm các “phần chính” tạo nênAndroid để có thể xây dựng được một ứng dụng tốt trên nó

• Tìm hiểu công nghệ bản đồ số của GoogleMap và các API liên quan của Google

• Tìm hiểu mô hình Web Service trên nên tảng PHP

• Tìm hiểu mô hình phát triển ứng dụng trên mô hình client - server

4 Lời cam đoan của sinh viên:

Tôi - Lý Tuấn Nam - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của TS Nguyễn Kim Khánh

Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳcông trình nào khác

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

Tác giả ĐATN

Lý Tuấn Nam

Trang 4

5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảovệ.

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

Giảng viên hướng dẫn

TS Nguyễn Kim Khánh

Trang 5

LỜI CẢM ƠN

Trước tiên, tôi xin gửi lời cảm ơn tới các thầy cô giáo trong trường Đại học Bách Khoa

Hà Nội nói chung, Viện Công Nghệ Thông Tin và Truyền Thông, các thầy cô trong dự ánViệt Nhật nói riêng đã tận tình giảng dạy, truyền đạt cho tôi những kiến thức, kinh nghiệmquý báu trong suốt thời gian qua

Đặc biệt, tôi xin chân thành cảm ơn thầy giáo - TS Nguyễn Kim Khánh - người thầy

đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn tôi trong suốt quá trình làm đồ án tốtnghiệp Trong thời gian được sự hướng dẫn của thầy, tôi không chỉ tiếp thu thêm nhiềukiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa họcnghiêm túc, hiệu quả, đây là những điều rất cần thiết cho tôi trong quá trình học tập và làmviệc sau này

Cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, bạn bè đã động viên, đóng góp ý kiếngiúp đỡ tôi trong quá trình học tâp, tìm hiểu và hoàn thành đồ án tốt nghiệp

Tuy nhiên do thời gian và trình độ có hạn nên đồ án này chắc chắn không thiếu khỏinhững thiếu sót, tôi rất mong được sự đóng góp ý kiến quý báu của các thầy, các cô và toànthể các bạn Tôi xin chân thành cảm ơn

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

Tác giả ĐATN

Lý Tuấn Nam

Trang 6

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

Ngày nay các dịnh vụ bản đồ số được ứng dụng và phát triển rất rộng rãi Tuy nhiêncác ứng dụng sử dụng bản đồ số chưa có chức năng cung cấp thông tin giao thông chongười sử dụng Bản đồ án này đã đưa ra giải pháp để xây dựng một hệ thống thông tin bản

đồ số cung cấp cho người tham gia giao thông những chức năng thực sự hữu ích Các chứcnăng chính của hệ thống bao gồm: bản đồ số (sử dụng dữ liệu từ GoogleMap), định vị,hiển thị trạng thái giao thông của các tuyến đường, lưu trữ địa điểm yêu thích, tìm đường

đi giữa 2 vị trí Đồ án đã chọn xây dựng ứng dụng phía client trên nền tảng Android, phíaserver trên nền tảng PHP Nội dung của đồ án gồm các phần: tìm hiểu lý thuyết, phát triểnứng dụng, kết luận

Tìm hiểu lý thuyết: phần thứ nhất của đồ án trình bày tổng quan về các lí thuyết liên

quan đến:

• Xây dựng Webservice trên nền tảng PHP

• Hệ thống dữ liệu bản đồ GoogleMap API

• Một số API do Google cung cấp

• Nền tảng Android

Phát triển ứng dụng: phần thứ hai của đồ án trình bày các công việc đã thực hiện

trong quá trình phát triển ứng dụng, bao gồm các nội dung:

• Phân tích thiết kế

• Phát triển lập trình ứng dụng

• Cài đặt thử nghiệm

Kết luận: Phần kết luận đánh giá kết quả đã đạt được, tóm tắt lại những gì đã làm

được, chưa làm được, và định hướng phát triển trong tương lai

Trang 7

ABSTRACT OF THESIS

Nowadays, digital mapping services have been developed and widely applied.However, the applications using digital mapping have not had a function of providingtraffic information for users This thesis gives a solution to build a digital mappinginformation system providing people with useful functions Major functions of the systeminclude: Digital mapping (using data from GoogleMap), navigation, displaying the status

of roads, storing favorite locations, finding the way between two locations The thesis hasbeen chosen client side application based on the Android platform, server side based onPHP platform The content of the thesis includes: studying the theory, developingapplication and conclusion

Studying the theory: The first part of the thesis presents an overview of theoriesrelated to:

• Developing Webservice based on PHP platform

• GoogleMap API map data System

• Some API provided by Google

• Android platform

Developing application: The second part of the thesis presents works that has been

implemented in application development process including the following contents:

• Design analysis

• Developing application program

• Installation test

Conclusion: Evaluating results that have been achieved, summarizing works that have

been done, not done, and orientating development in the future

Trang 9

Danh mục hình vẽ

Danh mục bảng

Trang 10

Danh mục từ viết tắt

API Application Program Interface

GPS Global Positioning System

W3C World Wide Web Consortium

SOAP Simple Object Access Protocol

WSDL Web Service Description Language

UDDI Universal Description, Discovery, and Integration

BEEP Blocks Extensible Exchange Protocol

JSON JavaScript Object Notation

TCP/IP Transmission Control Protocol / Internet

ProtocolSMTP Simple Mail Transfer Protocol

MD5 Message-Digest algorithm 5

Trang 11

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

1.1 Tổng quan

Công nghệ thông tin đang trở thành một phần quan trọng của cuộc sống Cácthiết bị kĩ thuật cao ngày càng gần gũi với mọi hoạt động của con người Đặc biệtnhững năm gần đây, các thiết bị không dây - với ưu thế nhỏ gọn, dễ mang chuyển

đã chứng tỏ được lợi ích to lớn cho người sử dụng Trong đó điện thoại di động, vớicác chức năng liên lạc, nổi bật lên như một thiết bị “không thể thiếu” trong cuộcsống của nhiều người Với sự phát triển nhanh chóng của công nghệ sản xuất thiết

bị không dây, điện thoại di động đã trở thành phương tiện đa chức năng (nghe nhạc,chơi trò chơi, nhắc lịch làm việc…) phục vụ cho nhu cầu của người sử dụng mọilúc, mọi nơi

Trong xu thế phát triển của công nghệ hiện nay, và cùng theo đó là sự phát triển,

ra đời của các thiết bị smartphone tân tiến Việc tốc độ xử lý nhanh, bộ nhớ SDCardlớn trên các máy điện thoai smartphone cho phép thực hiện các nhiệm vụ trongcông việc hay giải trí dần dần thay thế cho máy tính Các ứng dụng trên môi trườngmạng dần thay thế các ứng dụng chạy trên máy đơn, cục bộ Với sự lớn mạnh vàphát triển vượt bậc trong những năm gần đây,HĐH Android đã cho thấy được thếmạnh của mình trong các thiết bị smartphone Các ứng dụng, phần mềm phát triểntrên Android OS ngày càng nhiều, và mục đích của các ứng dụng ngày càng đápứng được yêu cầu của người dùng

Trong bối cảnh ở 2 thành phố lớn Hà Nội và TP Hồ Chí Minh thường xuyên xảy

ra ùn tắc giao thông và một phần nguyên nhân dẫn đến tình trạng đó là người thamgia giao thông thường không biết những tuyến đường nào đang bị ùn tắc để nhờ đó

có thể loại những tuyến đường đó ra khỏi lộ trình của mình Với tình hình như vậytôi đã đưa ra một hưởng giải quyết phần nào giúp người tham gia giao thông có thểtránh được những tuyến đường đang ùn tắc vào giờ cảo điểm Bằng cách hiển thịthông tin về những tuyến đường đang ùn tắc 1 cách trực quan lên trên giao diệnGoogle Map Ứng dụng cần phát triển trên nền tảng SmartPhone để người sử dụng

có thể dễ dàng lắm bắt các thông tin đó một cách nhanh chóng

Ngoài ra cần có chức năng giúp người tham gia giao thông có thể tìm kiếm địađiểm (ATM, Bệnh viện…) một cách dễ dàng, tìm đường đi giữa 2 vị trí (địa điểm),xác định vị trí hiện tại của mình, tìm kiếm thông tin về các địa điểm nổi tiếng…

Vì các lý do trên tôi đã tìm hiểu và phát triển hệ thống trợ giúp người tham giagiao thông với mong muốn có thể phần nào giảm được ùn tắc giao thông trong giờcao điểm tại các thành phố lớn Trong đồ án này tôi xây dựng và phát triển đề tài:

“Xây dựng ứng dụng Traffic hỗ trợ người tham gia giao thông” Với mục đính

phát triển ứng dụng về phía người dùng than gia giao thông Ứng dụng hỗ trợ các

Trang 12

chức năng cơ bản như: hiển thị thông tin ùn tắc giao thông tại các địa điểm, tìmkiếm địa điểm, tìm đường đi giữa 2 địa điểm, xác định vị trí hiện tại…

1.2 Mục tiêu và nhiệm vụ của đồ án

Mục tiêu của đồ án:

- Tìm hiểu lý thuyết về Web Service trên nền tảng PHP

- Tìm hiểu nền tảng hệ điều hành Android

- Tìm hiểu về Google API (Google Map API, Google Place API, GoogleDirection API)

Nhiệm vụ của đồ án:

- Tìm hiểu phát triển ứng dụng theo mô hình client- server

- Xây dựng ứng dụng phía client trên thiết bị di động và phía Server sử dụngnền tảng PHP, cung cấp các dịch vụ hỗ trợ người tham gia giao thông

1.3 Định hướng giải quyết vấn đề

Để thực hiện đồ án phương pháp chính của tôi là:

- Phân tích hệ thống thông tin về các điểm ùn tắc giao thông Phân tích cácmặt hạn chế từ đó đưa ra hướng khắc phục và cải tiến

- Tìm hiểu lý thuyết liên quan đến Web Service, xây dựng mô hình kết nốiclient - server

- Lựa chọn nền tảng di động phát triển phía client là hệ điều hành Android,phía server là PHP

- Tìm hiểu thư viện Google Map API,Google Place API và Google DirectionAPI để cung cấp thông tin bản đồ

- Lựa chọn nguồn dữ liệu về thông tin địa điểm từ Google Place API

Chương 2: Cơ sở lý thuyết

Đề cập tới lý thuyết đã tìm hiểu về Webservice, Google Map API, Google PlaceAPI, Google Direction API và nền tảng Android

Chương 3: Khảo sát hệ thống

Tập trung vào việc khảo sát hiện trạng thực tế của dịch vụ, đưa ra kiến trúc xâydựng dịch vụ

Trang 13

Chương 6 Cài đặt và thử nghiệm dịch vụ

Chương này đề cập tới vấn đề cài đặt, thử nghiệm ứng dụng và đánh giá kết quảcác chức năng đã thực hiện được

Trang 14

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

2.1 Web Service

2.1.1 Khái niệm về Web Service

Theo định nghĩa của W3C (World Wide Web Consortium), Web Service là một

hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụngtrên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kếtcủa nó được mô tả bằng XML hoặc JSON Dịch vụ Web là tài nguyên phần mềm cóthể xác định bằng địạ chỉ URL, thực hiện các chức năng và đưa ra các thông tinngười dùng yêu cầu Một dịch vụ Web được tạo nên bằng cách lấy các chức năng vàđóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đếnnhững dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ dịch vụ Webkhác Nó bao gồm các mô đun độc lập cho hoạt động của khách hàng và doanhnghiệp và bản thân nó được thực thi trên server

2.1.2 Đặc điểm của Web Service

Đặc điểm chung

- Web Service cho phép client và server tương tác được với nhau ngay cảtrong những môi trường khác nhau

- Phần lớn kỹ thuật của web service được xây dựng dưa trên mã nguồn mở

và được phát triển theo các chuẩn đã được công nhận

- Là sự kết hợp của việc phát triển theo hướng từng thành phần với nhữnglĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanhnghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân thôngqua mạng Internet

- Một ứng dụng được triển khai đều hoạt động theo mô hình client-server

- Web service có ứng dụng thực tế rộng rãi trong các lĩnh vực dịch vụ chọnlọc và phân loại tin tức, ứng dụng cho các dịch vụ du lịch, bán hàng quamạng, tỉ giá, chứng khoán, các dịch vụ giao dịch trực truyến như đặt vémáy bay, tàu xe

Ưu điểm và nhược điểm của Web Service

- Nâng cao khả năng tái sử dụng

- Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phépcác tiến trình/chức năng nghiệp vụ đóng gói trong giao diện webservice

- Tạo mối tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệthống, dễ dàng cho việc phát triển các hệ thống phân tán

Trang 15

- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống.

Nhược điểm :

- Có quá nhiều chuẩn cho dịch vụ web khiến người dùng khó nắm bắt

- Cần quan tâm hơn nhiều về vấn đề bảo mật

- Các giao thức được thay đổi và nâng cấp, đòi hỏi ứng dụng của clientphải được nâng cấp, thay đổi

2.1.3 Kiến trúc của Web Service

Dịch vụ Web gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol),WSDL (Web Service Description Language) và UDDI (Universal Description,Discovery, and Integration) UDDI được sử dụng để đăng ký và khám phá dịch vụWeb đã được miêu tả cụ thể trong WSDL.Giao tác UDDI sử dụng SOAP để nóichuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web.Cácthông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP

Hình 2 - 1: Cấu trúc Web Service

Có 4 thành phần chính :

- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệpgiữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP,JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks ExtensibleExchange Protocol- BEEP)

- Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML

để có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiện tại,những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST

- Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch

vụ Web cụ thể WSDL thường được sử dụng cho mục đích này, nó là mộtngôn ngữ mô tả giao tiếp và thực thi dựa trên XML.Dịch vụ Web sẽ sử dụngngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chứcnăng mà dịch vụ Web cung cấp

Trang 16

- Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đógiúp một dịch vụ Web có thể dễ dàng khám phá ra những dịch vụ nào đã cótrên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác.Một dịch vụ Web cũng phải tiến hành đăng ký để các dịch vụ khác có thểtruy cập và giao tiếp Hiện tại, UDDI API thường được sử dụng để thực hiệncông việc này.

Hình 2 - 2: Các thành phần Web Service Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol)với công nghệ chuẩn là SOAP SOAP là giao thức nằm giữa tầng vận chuyển vàtầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xathông qua một thông điệp XML Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn

và bảo mật thông tin, trong kiến trúc dịch vụ Web, chúng ta có thêm các tầng Policy,Security, Transaction, Management

vị trí, và nếu vật nào đó có một vị trí thì nó có thể hiển thị trên một bản đồ

Có một số công ty cung cấp các giải pháp về bản đồ như Yahoo! Maps và BingMaps, nhưng phổ biến nhất vẫn là Google Maps Thực tế theo trangprogrammableweb.com, google maps là API phổ biến nhất trên internet Theo thống

kê của trang này tháng 5/2010, 43% là sử dụng Google Maps API

Trang 17

Hình 2 - 3: Hình ảnh nhìn từ vệ tinh trên Google Maps

Đăng ký API Key

Việc đăng ký một Maps API key rất đơn giản, miễn phí, bao gồm hai phần

- Đăng ký mã MD5 mà bạn sẽ sử dụng trong ứng dụng của mình Servicesau đó sẽ cung cấp cho bạn một Maps API Key

- Thêm một đoạn tham chiếu đến Maps API trong mỗi MapView Bạn có thể

sử dụng Maps API Key cho bất kỳ MapView trong bất kỳ ứng dụngAndroid, cung cấp ứng dụng được ký kết với giấy chứng nhận mã MD5 màbạn đã đăng ký với service

2.2.2 Google Place API

Giới thiệu

Google Places API là dịch vụ web cung cấp cho người dùng trả về thông tin cácđịa điểm được tìm kiếm Định nghĩa bên trong API này là cơ sở, vị trí địa lý, các địađiểm nổi bật bằng cách sử dụng các yêu cầu thông qua HTTP Các địa điểm nàyđược xác định bằng cách thông qua tọa động vĩ độ/kinh độ(latitude/longitude)

4 chức năng chính của Google Places API :

dùng đang tìm kiếm

Place Details request : trả về chi tiết các thông tin về 1 địa điểm đang tìm

kiếm

địa điểm này Mục đích nhằm đánh giá phổ biến những nơi hay được tìmkiếm

Trang 18

Place Reports cho phéo thêm mới 1 địa điểm đến Place service Và xóa 1

địa điểm mà bạn đã thêm vào

Chứng thực

Được sử dụng với mục đích chứng thực cho Google biết rằng ứng dụng đang sửdụng Place service.Sau khi chứng thực, google sẽ cung cấp 1 key sẽ được sử dụngtrong chương trình

Cách đăng kí lấy API Key :

- Vào đường link sau :https://code.google.com/apis/console và đăng nhập bằnggmail

- Google sẽ tạo ra cho bạn 1 API Project trong lần đăng nhập đầu tiên

- Sau đó bạn click vào Status để bật Place Service lên

- Cuối cùng click vào API access tab bạn sẽ nhận được key do Google cungcấp

Hình 2 - 4 : API key đã đăng ký với Google

Place Searches

Place API cung cấp 2 kiểu tìm kiếm :

 Place Searches : trả về danh sách các địa điểm gần với vị trí của ngườidùng

 Place Details : trả về thông tin chi tiết hơn về 1 địa điểm đang tìm kiếm Yêu cầu để tìm kiếm :

Để tìm kiếm 1địa điểm nào đó , Place Search yêu cầu HTTP URL theo mẫu sau :

Với:

output : là kiểu trả về của truy vấn có thể là file json hoặc xml theo yêu cầu

của người phát triển

Parameters : Các tham số được cung cấp bởi google giúp cho thông tin tìm

kiếm được chính xác hơn

các Parameters được cung cấp :

Trang 19

- key : bắt buộc có Đây là API Key đã đăng ký ở trên.

- location : bắt buộc có Định nghĩa bằng 1 cắp latitude/longitude

- radius: bắt buộc có Bán kính tìm kiếm

- sensor : bắt buộc có Đòi hỏi yêu cầu địa điểm từ 1 thiết bị GPS

- keyword : (tùy chọn) Từ khóa xuất hiện trong kết quả tìm kiếm

- language (tùy chọn) Lựa chọn ngôn ngữ hỗ trợ tìm kiếm

- name (tùy chọn) Tên xuất hiện trong kết quả tìm kiếm

- types : kiểu tìm kiếm được hỗ trợ bởi Google Place API

2.3 Nền tảng Android

2.3.1 Giới thiệu chung về hiệu hành android

Android là một hệ điều hành di động dựa trên nền tảng linux phiên bản 2.6 dànhcho các dòng điện thoại SmartPhone Đầu tiên được ra đời bởi công ty liên hợpAndroid, sau đó được Google mua lại và phát triển từ năm 2005 và trở thành một hệđiều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưa chuộng cao trênthế giới

2.3.2 Kiến trúc hệ điều hành android

Hệ điều hành android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (Phiênbản 2.6), tầng Tầng Libraries & Android runtime , Tầng Application Framework vàtrên cùng là tầng Application

Trang 20

Hình 2 - 5: Kiến trúc HĐH Android

A.Tầng hạt nhân Linux (Linux Kernel layer)

Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể là hạt nhânlinux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọi hoạtđộng của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ởlớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng(driver model), thực hiện bảo mật (security), quản lý tiến trình (process)

Tầng này có các thành phần chủ yếu :

Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận

những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng )

Camera Driver : Điều kiển hoạt động của camera, nhận luồng dữ liệu từ

camera trả về

Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth.

USB driver : Quản lý hoạt động của các cổng giao tiếp USB.

Keypad driver : Điều khiển bàn phím.

Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi.

Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu

dạng audio thành tín hiệu số và ngược lại

Trang 21

Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng

vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyềnthông được thực hiện

M-System Driver : Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ SD,

flash

Power Madagement : Giám sát việc tiêu thụ điện năng.

B Tầng Library và android runtime

Phần này có 2 thành phần là phần Library và Android Runtime :

Phần Libraries Phần này có nhiều thư viện được viết bằng C/C++ để các

phần mềm có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như :

- Thư viện hệ thống (System C library) : thư viện dựa trên chuẩn C, được

sử dụng chỉ bởi hệ điều hành

- Thư viện Media (Media Libraries) : Có nhiều codec để hỗ trợ việc phát

và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng

- Thư viện web (LibWebCore) : Đây là thành phần để xem nội dung trên

web, được sử dụng để xây dựng phần mềm duyệt web(Android Browser)cũng như để các ứng dụng khác có thể nhúng vào Nó cực kỳ mạnh, hỗ trợđược nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM,AJAX…

- Thư viện SQLite : Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng.

Phần Android runtime : Phần này chứa các thư viện mà một chương trình

viết bằng ngôn ngữ Java có thể hoạt động Phần này có 2 bộ phận tương tựnhư mô hình chạy Java trên máy tính thường Thứ nhất là các thư viện lõi(Core Library) , chứa các lớp như JAVA IO,Collections, File Access Thứ hai

là một máy ảo java (Dalvik Virtual Machine) Mặc dù cũng được viết từ ngônngữ Java nhưng một ứng dụng Java của hệ điều hành android không đượcchạy bằng JRE của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảoDalvik do Google phát triển

C Tầng Application Framework

Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trình viên cóthể nhanh chóng xây dựng ứng dụng Nó được viết bằng Java, có khả năng sử dụngchung để tiết kiệm tài nguyên

Giới thiệu một số thành phần của phần này :

- Activity Manager : Quản lý các chu kỳ sống của một ứng dụng cũng nhưcung cấp công cụ điều khiển các Activity

Trang 22

- Telephony Manager : Cung cấp công cụ để thực hiện việc liên lạc như gọiđiện thoại

- XMPP Service : Cung cấp công cụ để liên lạc trong thời gian thực

- Location Manager : Cho phép xác định vị trí của điện thoại thoại dựa vào

hệ thống định vị toàn cầu GPS và Google Maps

- Window Manager : Quản lý việc xây dựng và hiển thị các giao diện ngườidùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng

- Notication Manager : Quản lý việc hiển thị các thông báo (như báo có tinnhắn, có e-mail mới )

- Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao gồmcác file hình ảnh, âm thanh, layout, string (Những thành phần không đượcviết bởi ngôn ngữ lập trình)

D Tầng Application

Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như :

- Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọiđiện(phone), quản lý danh bạ(Contacts), duyệt web (Browser), nhắn tin(SMS), lịch làm việc (Calendar), đọc e-mail (Email-Client), bản đồ (Map),quay phim chụp ảnh (camera)

- Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), cáctrò chơi (Game), từ điển

Các chương trình có các đặc điểm là :

 Viết bằng Java, phần mở rộng là apk

 Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine đượcdựng lên để phục vụ cho nó

 Nó có thể là một Active Program : Chương trình có giao diện với người sửdụng hoặc là một background : chương trình chạy nền hay là dịch vụ

Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm,

có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì códuy nhất một thực thể (instance) được phép chạy mà thôi Điều đó có tác dụng hạnchế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn

Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyền hạn khi

sử dụng tài nguyên, cấu hình phần cứng và hệ thống

Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di độngkhác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền.Các ứngdụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dung quá 5~10%công suất CPU, điều đó nhằn để tránh độc quyền trong việc sử dụng CPU

Trang 23

2.3.3.1 Vòng đời của Activity

Các hoạt động trong hệ thống được quản lý bởi một cấu trúc dữ liệu ngăn xếp.Khi có một hoạt động được khởi tạo, nó được đẩy vào trong ngăn xếp, chuyển sangtrạng thái thực thi và hoạt trộng trước đó sẽ chuyển sang trạng thái chờ Hoạt độngnày chỉ trở lại trang thái kích hoạt khi mà hoạt động vừa khởi tạo kết thúc việc thựcthi

Và nó thường bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ

Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với cácbước chuyển:

• void onCreate(Bundle savedInstanceState)

Trang 24

Biểu đồ sau mô tả trạng thái trong vòng đời của một hoạt động Hình chữ nhậtthể hiện các phương thức Callback mà chúng ta có thể khai báo để gọi thực thi một

số thao tác khi hoạt động chuyển sang trạng thái khác (phương thức Callback làphương thức được gọi lại bởi một phương thức khác khi có một sự kiện xảy ra) Cáctrạng thái chính của một hoạt động được thể hiện bởi các hình viên thuốc

Vòng đời của một hoạt động có thể được thể hiện trong những quá trình sau:

Hình 2 - 6: Vòng đời của 1 Activity Toàn bộ thời gian sống của một hoạt động bắt đầu từ lời gọi đầu tiên tới phươngthức onCreate(Bundle) tới lời gọi phương thức onDestroy() Trong quá trìnhnày, một hoạt động sẽ khởi tạo lại tất cả các tài nguyên cần sử dụng trong phươngthức onCreate() và giải phóng chúng khi phương thức onDestroy() được thựcthi

Thời gian sống có thể nhìn thấy của một hoạt động bắt đầu từ lời gọi tới phươngthức onStart(), cho tới khi phương thức onStop() của nó được thực thi Toàn bộ

Trang 25

các tài nguyên đang được sử dụng bởi hoạt động vẫn tiếp tục được lưu giữ, ngườidùng có thể thấy giao diện nhưng không tương tác được với hoạt động do trong quatrình này hoạt động không ở trạng thái chạy tiền cảnh.

Thời gian sống tiền cảnh của một hoạt động là quá trình bắt dầu từ khi có lờigọi tới phương thức onResume() và kết thúc bằng lời gọi tới phương thức

người dùng

Trang 26

Chương 3 KHẢO SÁT HỆ THỐNG

3.1 Khảo sát chức năng

Hiện nay số người tham gia giao thông đang tăng lên rất là nhanh đặc biệt là tại

2 thành phố lớn là Hà Nội và TP.Hồ Chí Minh Khiến các tuyến đường luôn luôntrong tình trạng tắc nghẽn đặc biệt là tại các giờ cao điểm Trong khi đó hầu hếtnhững người tham gia giao thông trong giờ cao điểm thường có rất ít thông tin vềcác điểm ùn tắc Do vậy hầu như họ không biết cách lựa chọn cho mình 1 lộ trìnhgiao thông thật hợp lý để có thể tránh được phần nào tình trạng tắc nghẽn nêu trên Các kênh thông tin cung cấp thông tin về tình hình ùn tắc giao thông hiện naynhư: kênh VOV Giao thông,báo VOV… hiện tại cung cấp thông tin khá đầy đủ vềtrạng thái giao thông tại các tuyến đường quan trọng Nhưng những thông tin màcác kênh thông tin này cung cấp ở dạng trang Web, sách, báo, TV… không trựcquan Người tham gia giao thông khó có thể tiếp cận được các nguồn thông tin đó 1cách dễ dàng

Hình 3 - 1 : Ứng dụng bản đồ giao thông trên Web của VOV giao thông Nhu cầu cấp thiếp đặt ra là người tham gia giao thông cần có 1 kênh thông tincung cấp đầy đủ các thông tin về các điểm ùn tắc giao thông trong giờ cao điểm.Kênh thông tin đó phải thuận tiện cho người sử dụng, họ có thể tra cứu thông tin vềcác địa điểm ùn tắc ở bất cứ nơi đâu và bất cứ thời điểm nào Ngoài ra còn phải hỗtrợ người tham gia giao thông các chức năng cơ bản của 1 ứng dụng bản đồ giaothông như: tìm đường, tìm kiếm địa điểm…Vì những yêu cầu thực tiễn như vậy đềtài đã đi sâu vào tìm hiểu và phát triển ứng dụng trên nền tảng di động cung cấp

Trang 27

thông tin đầy đủ về tình trạng ùn tắc giao thông tại các địa điểm, ngoài ra còn có cácchức năng giúp cho người sử dụng thuận tiện hơn khi tham gia giao thông

3.3 Phân tích yêu cầu

Nhiệm vụ của đồ án là xây dựng ứng dụng hỗ trợ người tham gia giao thông trênthiết bị di động Vì vậy cần đáp ứng các yêu cầu của người dùng như sau:

• Bản đồ thể hiện đầy đủ thông tin về các địa điểm, đường xá…

• Có chức năng định vị, xác định vị trí hiện tại của người dùng

• Có chức năng tìm kiếm địa điểm theo tên, địa chỉ hoặc vị trí mà ngườidùng muốn

• Có khả năng hiển thị trạng thái giao thông tại các địa điểm để người dùng

có thể lựa chọn 1 lộ trình tham gia giao thông thích hợp cho mình

• Người dùng có khả năng đăng ký và đăng nhập để có thể chia sẻ trạngthái giao thông hiện tại của mình cho những người sử dụng khác

• Cung cấp cho người dùng khả năng tìm đường đị giữa hai địa điểm, từ vịtrí hiện tại tới một địa điểm…

• Ngoài ra người dùng có thể lưu trữ danh sách các địa điểm yêu thích củamình để tiện cho việc quản lý danh mục các địa điểm thường xuyên lưutới

Ngoài các yêu cầu ở trên, vì đây là một ứng dụng nên cần phải có giao diện thânthiện, dễ dùng, hạn chế tối đa các lỗi và ngoại lệ, có thông báo đến người dùng khi

có ngoại lệ hoặc lỗi xảy ra…

HTTP request

Server Client

Response

Hình 3 - 2: Kiến trúc hệ thống

Trang 28

3.4 Đặc tả yêu cầu

3.4.1 Yêu cầu chức năng

Các yêu cầu chức năng của ứng dụng:

• Hiển thị bản đồ: đây là chức năng cơ bản nhất, vì vậy thời gian ứng dụngtải dữ liệu bản đồ từ server phải chấp nhận được Các modul phóng to,thu nhỏ, hay di chuyển phải có thời gian đáp ứng nhanh Có chức nănglựa chọn cách hiển thị bản đồ như: vệ tinh, giao thông…

• Định vị: hiển thị vị trí hiện tại của người sử dụng lên bản đồ Người sửdụng có thể lựa chọn 2 phương pháp định vị: sử dụng Network thì tốc độđịnh vị sẽ nhanh hơn nhưng độ chích xác không cao, ngược lại sử dụngGPS thì tốc độ định vị sẽ lâu hơn nhưng độ chích xác sẽ cao hơn

• Tìm kiếm địa điểm: người dùng có thể tìm kiểm địa điểm theo tên, địa chỉhoặc theo vị trí Kết quả trả về là 1 danh sách các địa điểm tìm được Từ

đó người dùng có thể hiển thị địa điểm này trên bản đồ, dẫn đường từ vịtrí hiện tại đến đây, thêm vào danh sách yêu thích…

• Hiển thị trạng thái giao thông của các địa điểm 1 cách đầy đủ và trựcquan giúp người sử dụng có thể dễ dàng nắm bắt được thông tin giaothông và chọn cho mình 1 lộ trình giao thông thích hợp nhất

• Người sử dụng có thể đăng ký và đăng nhập để có thể dễ dàng chia sẻtrạng thái, thông tin giao thông tại vị trí mình đang tham gia giao thôngvới những người tham gia giao thông khác

• Chức năng lưu trữ và quản lý danh sách các địa điểm yêu thích của mìnhnhư: thêm, xóa, hiển thị trên map… 1 cách trực quan để thuận tiện choviệc tìm kiếm các địa điểm thường xuyên lưu tới

• Tìm đường: người dùng có khả năng tìm đường đi giữa 2 địa điểm Cácđịa điểm ở đây có thể là : vị trí hiện tại, điểm trên bản đồ, trong danh sáchyêu thích…Có thể lựa chọn phương tiện đi lại là: lái xe hoặc đi bộ

3.4.2 Yêu cầu phi chức năng

Bên cạnh những yêu cầu chức năng, để thuận tiện cho người sử dụng thì ứngdụng còn phải đáp ứng các yêu cầu phi chức năng như mô tả sau đây

 Tính ổn định: ứng dụng hoạt động hạn chế tối đa các ngoại lệ - những lỗikhi đang mở ứng dụng mà người dùng gặp phải.Trong trường hợp khi xảy

ra lỗi hoặc ngoại lệ thì ứng dụng phải đưa ra các thông báo,hướng dẫn trựcquan đối với người sử dụng

Trang 29

- Với chức năng dẫn đường: kết quả hiển thị các bước dẫn đường trựcquan, hiển thị cả trên bản đồ các bước đi để người sử dụng dễ dàngquan sát.

- Với chức năng hiển thị trạng thái giao thông: phải hiển thị đầy đủ cácthông tin giao thông, dễ hiểu với người dùng Người sử dụng có thể dễdàng biết được tình trạng giao thông của các tuyến đường trong lộ trìnhcủa mình từ đó có thể quyết định 1 lộ trình thích hợp

- Chức năng định vị: hiển thị vị trí của người sử dụng trên bản đồ tươngđối chính xác chấp nhận được, thời gian cập nhập vị trí trong khoảngthời gian cho phép

 Tính sẵn dùng: ứng dụng vẫn có thể cung cấp một số chức năng khi không

Trang 30

Chương 4 PHÂN TÍCH HỆ THỐNG

4.1 Biểu đồ phân cấp chức năng

Biểu đồ phân cấp chức năng (hay biểu đồ phân rã chức năng) là loại biểu đồdiễn tả sự phân rã dần dần các chức năng từ đại thể đến chi tiết của hệ thống Mỗinút trong biểu đồ là một chức năng, và quan hệ duy nhất giữa các chức năng đượcdiễn tả bởi các cung nối liền các nút là các quan hệ bao hàm Như vậy, biểu đồ phâncấp chức năng cho một cái nhìn tổng quát, dễ hiểu, từ đại thể đến chi tiết về cácchức năng, nhiệm vụ cần thực hiện Biểu đồ phân cấp chức năng của ứng dụngđược biểu diễn như hình dưới đây

Hình 4 - 1: Biểu đồ phân cấp chức năng

4.2 Biểu đồ use case

Một biểu đồ Use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối liênkết của chúng đối với Use case mà hệ thống cung cấp Một Use case là một lời miêu

tả của một chức năng mà hệ thống cung cấp Lời miêu tả Use case thường là mộtvăn bản tài liệu, nhưng kèm theo đó cũng có thể là một biểu đồ hoạt động Các Usecase được miêu tả duy nhất theo hướng nhìn từ ngoài vào của các tác nhân (hành vicủa hệ thống theo như sự mong đợi của người sử dụng), không miêu tả chức năngđược cung cấp sẽ hoạt động nội bộ bên trong hệ thống ra sao Các Use case địnhnghĩa các yêu cầu về mặt chức năng đối với hệ thống Như vậy một biểu đồ usecase bao gồm:

Trang 31

uc Primary Use Cases

Manage liked Location

Manage traffic status

Login & Regiser

Hình 4 - 2: Biểu đồ use case tổng quát

Ngày đăng: 08/04/2019, 18:41

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w