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

Xây dựng thư viện trên nền tảng android hỗ trợ các ứng dụng quản lý

59 10 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 59
Dung lượng 2,15 MB

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

Nội dung

Từ viết tắt Mô tả JSON Ký hiệu đối tượng JavaScript JavaScript Object Notation XML Một ngôn ngữ đánh dấu mở rộng Extensible Markup Language API Giao diện lập trình ứng dụng Application

Trang 2

Em xin chân thành cảm ơn các thầy cô trong khoa tin học, trường Đại học Sư Phạm Đà Nẵng đã truyền đạt những kiến thức quý báu cho em trong những năm học vừa qua và nhất là đã tạo điều kiện thuận lợi cho em học tập, thực hiện đề tài tốt nghiệp này

Đặc biệt, em xin chân thành cảm ơn TS Nguyễn Trần Quốc Vinh đã trực tiếp, tận tình giúp đỡ và hướng dẫn em trong suốt thời gian thực hiện đề tài

Và để có được kết quả như ngày hôm nay, em rất biết ơn gia đình đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất về vật chất lẫn tinh thần trong suốt quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này

Mặc dù, đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý thầy cô và các bạn

Một lần nữa xin chân thành cám ơn!

Trang 3

Em xin cam đoan:

1 Những nội dung trong khó luận này là do em thực hiện dưới sự hướng dẫn trực tiếp của TS Nguyễn Trần Quốc Vinh

2 Mọi tham khảo dùng trong khóa luận đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,

em xin chịu hoàn toàn trách nhiệm

Sinh viên

Võ Lê Anh Thư

Trang 4

CHƯƠNG 1 1

TỔNG QUAN ĐỀ TÀI VÀ CƠ SỞ LÝ THUYẾT 1

1.1 Bối cảnh đề tài 1

1.1.1 Mục đích của đề tài 2

1.1.2 Phương pháp nghiên cứu 2

1.1.3 Công cụ xây dựng 2

1.2 Bố cục khóa luận 2

1.3 Cơ sở lý thuyết 3

1.3.1 Tìm hiểu nền tảng Android 3

1.3.2 GPS và vấn đề định vị tọa độ 5

1.3.3 Google Map API 6

1.3.4 NodeJS và Socket.io 7

1.3.5 Khả năng ứng dụng thực tiễn 8

CHƯƠNG 2 9

PHÂN TÍCH YÊU CẦU VÀ ĐẶC TẢ CHỨC NĂNG CỦA CHƯƠNG TRÌNH 9

2.1 Yêu cầu của hệ thống 9

2.1.1 Yêu cầu chức năng 9

2.1.2 Yêu cầu về phần cứng (tối thiểu) 9

2.1.3 Yêu cầu về phần mềm 9

2.2 Đặc tả chức năng của chương trình (Use-case) 10

2.2.1 Use-case tổng quát 10

2.2.2 Mô tả Actor 10

2.2.3 Mô tả use-case 11

2.3 Đặc tả yêu cầu cụ thể 12

2.3.1 Chức năng quản lý các công việc liên quan đến GPS 12

2.3.2 Chức năng quản lý danh sách các yêu cầu 14

2.3.3 Chức năng quản lý các kết nối mạng Internet của người dùng 15

2.3.4 Chức năng quản lý các tin nhắn nhắc nhở từ hệ thống của các ứng dụng 16

2.3.5 Chức năng quản lý các thông báo từ hệ thống của các ứng dụng hay người dùng 17

Trang 5

2.4 Phân tích và thiết kế chức năng 20

2.4.1 Quản lý chức năng liên quan đến GPS 20

2.4.2 Quản lý danh sách các yêu cầu gửi lên máy chủ của các ứng dụng 25

2.4.3 Quản lý các thông báo từ máy chủ của các ứng dụng hay người dùng 28

2.4.4 Quản lý các kết nối mạng Internet của người dùng 30

2.4.5 Quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng 32

2.4.6 Hỗ trợ xây dựng phòng chat 35

2.4.7 Quản lý tài khoản 38

2.5 Dự kiến kết quả đạt được 39

CHƯƠNG 3 42

TRIỂN KHAI CHƯƠNG TRÌNH 42

3.1 Cách sử dụng thư viện trong Android 42

3.2 Triển khai chương trình 44

TÀI LIỆU THAM KHẢO 50

Trang 6

Hình 1 – Sơ đồ use-case tổng quát 10

Hình 2 - Use-case quản lý chức năng liên quan đến GPS 12

Hình 3 - Use-case quản lý danh sách các yêu cầu gửi lên máy chủ của các ứng dụng 14 Hình 4 - Use-case quản lý các kết nối mạng Internet của người dùng 15

Hình 5 - Use-case quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng 16

Hình 6 – Use case quản lý các thông báo từ hệ thống của các ứng dụng hay người dùng 17

Hình 7 - Use-case quản lý tài khoản 18

Hình 8 - Use-case hỗ trợ xây dựng phòng chat 19

Hình 9 – Biểu đồ lớp quản lý chức năng liên quan đến GPS 20

Hình 10 – Biểu đồ lớp quản lý danh sách các yêu cầu gửi lên máy chủ của các ứng dụng 25

Hình 11 – Biểu đồ lớp quản lý thông báo từ máy chủ của các ứng dụng hay người dùng 28

Hình 12 – Biểu đồ lớp quản lý các kết nối mạng Internet của người dùng 30

Hình 13 – Biểu đồ lớp quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng 32

Hình 14 – Biểu đồ lớp quản lý tài khoản 38

Hình 15 – Cấu trúc thư viện 42

Hình 16 – Tạo gói jar cho thư viện 43

Hình 17 – Hiển thị vị trí của người dùng 44

Hình 18 – Vẽ đường đi giữa hai vị trí 45

Hình 19 – Hiển thị các vị trí gần nhất so với vị trí người dùng hiện tại 45

Hình 20 – Hiển thị các vị trí gần nhất so với một địa điểm 46

Hình 21 – Nhắc nhở bằng đèn Flash hay đèn nhấp nháy 46

Hình 22 – Nhắc nhở bằng cách thiết lập chế độ rung 47

Hình 23 – Giao diện đăng nhập để chat 47

Hình 24 – Giao diện tạo phòng chat 48

Trang 7

Bảng 1 - Mô tả Actor 10 Bảng 2 - Mô tả use-case 11 Bảng 3 - Danh sách các chức năng 41

Trang 8

Từ viết tắt Mô tả

JSON Ký hiệu đối tượng JavaScript (JavaScript Object Notation)

XML Một ngôn ngữ đánh dấu mở rộng (Extensible Markup Language ) API Giao diện lập trình ứng dụng (Application Programming Interface) GPS Hệ thống định vị toàn cầu xác định vị trí dựa trên các vệ tinh nhân

tạo (Global Positioning System) SDK Bộ công cụ phát triển phần mềm trên Android (Software

Development Kit) ADT Một plugin cho eclipse giúp mở rộng khả năng tương thích của

eclipse với các ứng dụng Android (Android Development Tools)

Trang 9

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI VÀ CƠ SỞ LÝ THUYẾT

1.1 Bối cảnh đề tài

Trong cuộc sống, nhu cầu thông tin liên lạc là hết sức cần thiết Vô số phương pháp liên lạc đã ra đời nhằm phục vụ nhu cầu thư tín, điện thoại bàn đến thư điện tử, điện thoại di động, kết nối Wi-Fi, chat Web, Camera, Trong đó, điện thoại di động nổi bật lên như một phương tiện liên lạc hữu ích nhất, tiện lợi nhất, đặc biệt đối với những người sống và làm việc trong các đô thị Nhờ chức năng đàm thoại trực tiếp mọi lúc mọi nơi, mà điện thoại di động ngày càng được sử dụng rộng rãi

Hiện nay trên thế giới, thế giới điện thoại di động phát triển không ngừng bởi các nhà sản xuất lâu đời có tên tuổi như Samsung, Nokia, Motorola, Giờ đây, Google một hãng nổi tiếng nhất về Internet, tiếp tục tham vọng xâm chiếm thị trường di động bằng việc tung ra gói phần mềm cho điện thoại di động Android Gói phần mềm này sẽ tương thích với gần như tất cả các mẫu điện thoại trên thị trường

Điện thoại di động không chỉ là thiết bị đàm thoại thông thường mà đang dần trở thành một chiếc điện thoại thông minh Một trong những tiền đề thúc đẩy sự chuyển biến này của điện thoại di động chính là nhu cầu của người dùng Các bước tiến vượt bậc về công nghệ giúp bộ nhớ của điện thoại di động ngày càng lớn, tốc độ xử lý nhanh hơn, người ta tích hợp vào đó máy ảnh, máy quay video, radio, thậm chí cả tivi

và nhiều tính năng khác Năm 2007, Google đã giới thiệu Android và bộ công cụ phát triển phần mềm mới nhất (GPhone), do liên minh Open Handset Alliance mà Google đứng đầu Google cho biết, Android cho phép điện thoại nối mạng đơn giản hơn máy tính, ngoài ra, sẽ có hàng triệu phần mềm, ứng dụng khác được tạo ra, với chiếc điện thoại này, dù bạn đang dùng dòng điện thoại nào có tích hợp Android, bạn có thể vào mạng Google tra cứu cập nhật thông tin hay thư giãn với những thông tin mới nhất trên thế giới Nhưng điều đó chưa đủ, người dùng vẫn mong muốn có thêm nhiều phần mềm ứng dụng hơn nữa, chính vì vậy ngày nay trên thế giới đang hình thành ngành công nghiệp phần mềm ứng dụng cho điện thoại di động, một ngành công nghiệp được

dự báo sẽ đem lại nguồn thu lớn

Từ những thực tế và lý do trên, em xây dựng một thư viện trên nền tảng Android nhằm hỗ trợ nhiều chức năng cho các ứng dụng Android Thư viện sẽ hỗ trợ các chức năng quản lý tài khoản, quản lý danh sách yêu cầu, quản lý các kết nối mạng, xác định

Trang 10

được vị trí của người dùng trên bản đồ, thông báo hay nhắc nhở người dùng, hỗ trợ việc xây dựng phòng chat cho người dùng Tùy vào sự cho phép của mỗi ứng dụng đối với người dùng mà họ có quyền sử dụng khác nhau

1.1.1 Mục đích của đề tài

Xây dựng được một thư viện mở rộng, linh động và hỗ trợ được nhiều chức năng cho các ứng dụng Android như quản lý các chức năng liên quan đến GPS, ngoài ra có các chức năng quản lý tài khoản, quản lý danh sách yêu cầu, quản lý các kết nối mạng, thông báo hay nhắc nhở người dùng, hỗ trợ việc xây dựng phòng chat cho người dùng

1.1.2 Phương pháp nghiên cứu

 Thu thập và nghiên cứu các tài liệu có liên quan đến đề tài

 Nghiên cứu nền tảng Android

 Nghiên cứu GPS

 Tìm hiểu và sử dụng Google Map APIv2

 Nghiên cứu cách gửi và nhận thông tin từ máy chủ

 Nghiên cứu NodeJS và Socket.io

 Tìm hiểu và sử dụng Genymotion để chạy máy ảo trên Android

 Phân tích các yêu cầu của hệ thống

 Thiết kế, cài đặt và kiểm thử

Chương I: Tổng quan đề tài và cơ sở lý thuyết: chương này trình bày các vấn đề cơ

bản về Android, NodeJS, Socket.io, GPS và Google Map

Chương II: Phân tích thiết kế hệ thống: chương này trình bày về phân tích và thiết

kế xây dựng ứng dụng

Chương III: Triển khai chương trình: chương này trình bày về kết quả demo của

chương trình Hướng dẫn sử dụng và một số kết quả chạy thử nghiệm

Trang 11

1.3 Cơ sở lý thuyết

1.3.1 Tìm hiểu nền tảng Android

Nền tảng Android xây dựng các ứng dụng dựa vào các tính chất như: khung ứng dụng, máy ảo Dalvik, trình duyệt tích hợp, đồ họa, cơ sở dữ liệu Sqlite, môi trường truyền thông, môi trường phát triển đầy đủ

Ngoài ra, còn hỗ trợ các ứng dụng tích hợp các công nghệ mới hiện nay như hệ thống truyền thông di động toàn cầu Bluetooth, 3G, WiFi, Camera và GPS (các công nghệ này khi dùng còn phụ thuộc vào thiết bị)

Bên trong Android bao gồm một nhân Linux, tiếp đến là các thư viện, chúng là lớp nằm trên nhân, trên nữa là các framework và cuối cùng là những lớp ứng dụng Lớp thư viện chính là nơi để thực hiện các đoạn mã cho các thực thể như bộ xử lý đa phương tiện dùng xem/ghi lại âm thanh và hình ảnh, nhân của trình duyệt Web, tiến trình biên dịch kiểu chữ và bộ máy cơ sở dữ liệu SQLite

Các ứng dụng chạy ở lớp trên cùng của hệ điều hành với một bộ các nhân ứng dụng bao gồm thư điện tử, lịch làm việc, trình duyệt web Khi nhà phát triển viết một ứng dụng dành cho Android, ta thực hiện các đoạn mã trong môi trường Java “Sau đó, các đoạn mã này sẽ được biên dịch sang các bytecode của Java, tuy nhiên, để thực thi được

ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ có tên là dx

Đây là công cụ dùng để chuyển đổi bytecode sang một dạ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” [Trang web: http://www.ibm.com/developerworks]

Android còn chứa một tập các thư viện C/C++ được dùng bởi các thành phần khác nhau của hệ thống Android Các đặc tính này được nhận ra bởi các nhà phát triển qua các mẫu ứng dụng Android Một số thư viện chính được liệt kê dưới đây:

 Thư viện hệ thống C: có nguồn gốc thực thi từ thư viện hệ thống chuẩn C (libc), được điều chỉnh cho phù hợp đối với các thiết bị nhúng vào Linux

 Quản lý bề mặt (Surface Manager): quản lý việc truy cập cách hiển thị hệ thống

con và việc ghép liền nét các tầng đồ họa 2D và 3D từ nhiều ứng dụng

 Các thư viện môi trường truyền thông: dựa trên OpenCORE của PacketVideo, các thư viện này cung cấp việc phát và ghi lại của các định dạng tiếng và hình thông dụng, cũng khá hay như các tập tin hình ảnh tĩnh, chứa MPEG4, MP3, JPG, PNG

Trang 12

 LibWebCore: một bộ duyệt web hiện đại cung cấp nguồn cho cả hai trình duyệt, trình duyệt web của Android và một khung nhìn web có thể được nhúng vào

 SGL: phần dưới của công cụ đồ họa 2D

 Các thư viện 3D: một sự thực thi dựa trên các giao diện ứng dụng OpenGL ES 1.0, thư viện này dùng cả phần cứng 3D khá mạnh cũng như phần mềm tạo vạch 3D tùy chọn ở mức cao

Có 4 khối trong việc xây dựng nên một ứng dụng Android:

 Activity

 Intent Receiver

 Service

 Content Provider

Không phải mọi ứng dụng đều cần có 4 khối trên, nhưng các ứng dụng sẽ được tạo

ra từ một vài kết hợp từ những khối trên Đôi lúc người lập trình cần quyết định những thành phần cần cho ứng dụng của mình và liệt kê chúng trong một file gọi là AndroidManifest.xml Đây là một file XML cho phép khai báo các thành phần trong ứng dụng, những trường hợp thực thi của ứng dụng và các yêu cầu cần thiết

Trong hầu hết các trường hợp, mỗi ứng dụng Android chạy trên chính tiến trình Linux Tiến trình này được tạo ra khi ứng dụng chạy và vẫn sẽ còn đang hoạt động cho đến khi nó không cần thiết nữa, khi đó hệ thống cần cải tạo bộ nhớ cho các ứng dụng khác

Một điểm đặc trưng chủ yếu của Android là khoảng thời gian tồn tại của quá trình không được điều khiển ngay lập tức bởi ứng dụng mà chính nó tạo ra.Vì thế, vòng đời được xác định bởi hệ thống thông qua sự kết hợp các phần của ứng dụng từ hệ thống đang chạy, từ những vấn đề quan trọng đối với người dùng và từ tất cả bộ nhớ có sẵn

để dùng trong hệ thống Điều quan trọng đối với những nhà phát triển ứng dụng là hiểu các thành phần ứng dụng khác nhau như thế nào (trong sự riêng biệt của Activity, Service vàIntentReceiver), có ảnh hưởng thế nào đến vòng đời của quá trình ứng dụng Khi dùng không phù hợp các thành phần, kết quả có thể chính là hệ thống đang phá hủy các quá trình ứng dụng trong khi các tiến trình này đang làm những công việc quan trọng

Trang 13

Để xác định xem quá trình nào bị phá hủy khi bộ nhớ thấp, Android đặt chúng vào

trong “hệ thống cấp bậc quan trọng” dựa trên các thành phần đang chạy và trạng thái

của các thành phần Đây là trình tự của tầm quan trọng này:

 Forceground process: đang chạy một ứng dụng Activity ở trên đầu màn hình

mà người sử dụng đang tương tác với nó (khi đó phương thức onResume() đã được gọi) hay là một IntentReceiver hiện tại đang chạy (phương thức onReceiveIntent()

đang thực thi)

 Visible process: là quá trình chứa một Activityhiển thị trên màn hình của

người sử dụng nhưng không nổi bật lên (phương thức onPause() đã được gọi) Nếu

một quá trình đã coi là vô cùng quan trọng và sẽ không bị phá hủy trừ khi công việc

đang làm là yêu cầu giữ cho tất cả các quá trình forceground chạy

 Service process: giữ một Service vừa mới bắt đầu với phương thức

startService() Dẫu cho các quá trình không lập tức thấy được từ người sử dụng, chúng

thực hiện những điều mà người dùng quan tâm (như là nền mp3 lặp lại hay nền hệ thống mạng dữ liệu được upload hoặc được download), nên hệ thống sẽ luôn giữ cho

các quá trình này chạy trừ khi nó không đủ bộ nhớ để giữ lại tất cả các quá trình

forceground và visible

 Background process: chứa một Activity tức mà hiện tại là không trực quan

với người sử dụng (phương thức onStop() đã được gọi) Các tiến trình này thực thi

vòng đời hoạt động một cách chính xác, hệ thống có thể phá hủy như các quá trình bất

cứ lúc nào để phục hồi bộ nhớ cho một trong 3 loại quá trình trước đó

 Empty process: không chứa bất kỳ thành phần hoạt động ứng dụng nào Lý do

để giữ lại một quá trình lân cận như là một cache nhằm cải thiện thời gian khởi động là thời gian kế tiếp mà một thành phần của ứng dụng cần thiết có thể thực thi Như là, hệ thống sẽ thường phá hủy các tiến trình trong một tầng lớp để tạo nên sự cân bằng

1.3.2 GPS và vấn đề định vị tọa độ

“Hệ thống định vị toàn cầu (Global Positioning System - GPS) là hệ thống xác định

vị trí dựa trên vị trí của các vệ tinh nhân tạo, do Bộ Quốc Phòng Hoa Kỳ thiết kế, xây dựng, vận hành và quản lý Trong cùng một thời điểm, ở một vị trí trên mặt đất nếu xác định được khoảng cách đến ba vệ tinh (tối thiểu) thì sẽ tính được tọa độ của vị trí đó." [Trang web: http://vi.wikipedia.org/wiki/]

Trang 14

Bằng cách sử dụng GPS, ta có thể xác định vị trí của một người đang di chuyển hay của một địa điểm trên toàn cầu một cách nhanh chóng nhất Điều đó góp phần hết sức

to lớn cho việc mang công nghệ đến cuộc sống gần hơn nữa

Trong quá trình nghiên cứu về GPS, em đã nhận thấy tùy thuộc vào chất lượng tín hiệu hay kết nối GPS của từng Smartphone mà có độ chính xác khác nhau Giá trị độ chính xác lớn hơn có thể làm khoảng cách giữa hai vị trí lớn hơn cần thiết còn nếu nhỏ hơn thì nhiều vị trí trên bản đồ sẽ không được hiển thị Độ chính xác mặc định trong GPS là 30 mét và trong điều kiện tối ưu thì sai số vị trí có thể là: +- 10 mét Vì vậy, đối với việc hiển thị vị trí trên ản đồ so với thực tế thì có độc lệch nhất định

1.3.3 Google Map API

Google Maps (thời gian trước còn gọi là Google Local) là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google và hỗ trợ nhiều dịch vụ dựa vào bản đồ như Google Ride Finder và một số có thể dùng để nhúng vào các trang web của bên thứ ba thông qua Google Maps API Nó cho phép truy cập trực tiếp đến máy chủ của Google Map để tải dữ liệu và hiển thị bản đồ đường sá, đường đi cho xe đạp, cho người đi bộ (những đường đi ngắn hơn 6.2 dặm) và xe hơi,

và những địa điểm kinh doanh trong khu vực cũng như khắp nơi trên thế giới Google Map còn cung cấp thông tin chi tiết về vị trí trên bản đồ và cho phép người dùng tương tác với bản đồ

Google Map Android API v2 đã cung cấp các cải tiến rõ rệt thông qua thư viện Google Play services Thư viện đã cung cấp lớp MapFragment và lớp MapView để hiển thị các thành phần của Map

Ngoài ra một đặc tính quan trọng của Google Map là ngoài việc cho phép người dùng tra cứu, xem thông tin trên bản đồ nó còn cho phép mọi người có thể nhúng bản

đồ lên một trang web bất kỳ của mình chỉ bằng cách tạo một tài khoản trong dịch vụ Google hoàn toàn miễn phí

Bên cạnh đó Google cũng cung cấp một thư viện các API bằng Javascript cho phép người khác sau khi nhúng bản đồ Google Map lên trang web của mình có thể khai thác

và thực hiện các công việc phát triển liên quan Nếu phải kể đến sản phẩm liên quan thì không thể bỏ qua Google Earth, một ứng dụng độc lập dành cho Microsoft Windows, Mac OS X và Linux cho phép xem các tính năng mở rộng khác

Trang 15

1.3.4 NodeJS và Socket.io

a) NodeJS

NodeJS là một hệ thống phần mềm được thiết kế để viết các ứng dụng Internet có khả năng mở rộng, đặc biệt là máy chủ web NodeJS cho phép các nhà phát triển ứng dụng sử dụng Javascript để lập trình cho cả phía máy chủ hay máy khách, làm JavaScript trờ thành ngôn ngữ có thể làm những công việc bên máy chủ

“Một điểm đặc biệt của NodeJS là có thể giữ cả trăm ngàn kết nối cùng một lúc Đây là khả năng cực kỳ phù hợp với những ứng dụng web cần tính năng thời gian thực hiện đại, tương thích với điện thoại thông minh và máy tính bảng.” [Trang web:

http://www.tinhte.vn/threads/tim-hieu-nodejs-ly-do-chon-nodejs.2095222/]

NodeJS có chương trình npm để quản lý thư viện nên dễ cài đặt và tạo ra nhiều thư viện hơn

 Hệ thống Modules Mỗi file tương ứng một module, sử dụng bằng cách gọi method require với tham số

là tên module Mặc định các biến trong một module được gán phạm vi là private, nếu muốn module khác dùng được thì phải dùng đối tượng exports

 Module Events Đây là một module quan trọng trong Node.js do kiến trúc event-driven Ví dụ khi server nhận request, một event sẽ được tạo ra và event listener tương ứng sẽ được gọi, một method fs.readStream phát ra một sự kiện khi một file được mở Tất cả các đối tượng phát ra sự kiện (event) đều là một thể hiện (instances) của events.EventEmitter

Sư kiện error là một sự kiện đặc biệt trong Node Nếu không có listeners nào được gắn vào thì mặc định sẽ in ra stack trace và thoát chương trình

Một số phương thức:

emitter.addListener(event, listener) và emitter.on(event, listener):

Thêm một listener vào cuối mảng chứa các listeners cho một event cụ thể

Trang 16

Đây là một giao diện được triển khai bằng một số đối tượng trong Node Ví dụ một yêu cầu tới một HTTP server là một stream Stream có thể là readable, writable hoặc

cả hai Mọi stream là đối tượng của lớp EventEmitter

b) Socket.io

Socket.io được dùng để cho các ứng dụng thời gian thực có thể có trong mọi trình duyệt và thiết bị di động, làm giảm sự khác biệt giữa các cơ chế vận chuyển khác nhau

Socket.io sử dụng Node HTTP server, Express 3 web framework

Bên cạnh các phương thức như “connect”,”message”,”disconnect”, Socket.io cho phép bạn “emit” các sự kiện

1.3.5 Khả năng ứng dụng thực tiễn

Như đã nói ở trên, hiện nay, khả năng ứng dụng của Android hiện đang phát triển rất mạnh mẽ Android phá bỏ rào cản để xây dựng các ứng dụng mới và sáng tạo nên việc xây dựng một thư viện hữu ích có thể hỗ trợ nhiều ứng dụng cùng một lúc giúp

mở rộng khả năng phát triển và sự phong phú của Android

Trang 17

CHƯƠNG 2 PHÂN TÍCH YÊU CẦU VÀ ĐẶC TẢ CHỨC NĂNG CỦA

CHƯƠNG TRÌNH 2.1 Yêu cầu của hệ thống

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

Thư viện được viết trên nền tảng Android giúp xây dựng code cho các ứng dụng,

mở rộng các chức năng Ở đây, thư viện hỗ trợ chức năng chính là quản lý chức năng liên quan đến GPS Ngoài ra còn có các chức năng: quản lý danh sách các yêu cầu gửi lên máy chủ của các ứng dụng, quản lý các kết nối mạng Internet của người dùng, quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng, quản lý tài khoản, quản lý các thông báo từ máy chủ của các ứng dụng hay người dùng, hỗ trợ xây dựng phòng chat

2.1.2 Yêu cầu về phần cứng (tối thiểu)

 Hệ điều hành: Android 2.2 hoặc trở về sau

Trang 18

2.2 Đặc tả chức năng của chương trình (Use-case)

Trang 19

3 Quản lý các tin nhắn

nhắc nhở

Người dùng có thể bật chế độ nhắc nhở việc gì đó

đã được hẹn giờ trước Khi thông báo xuất hiện sẽ

đi kèm âm thanh, đèn flash và chế độ rung

6 Quản lý tài khoản Người dùng có thể tạo tài khoản cho bản thân,

đọc, cập nhật, xóa, xác nhận tài khoản

Trang 20

2.3 Đặc tả yêu cầu cụ thể

2.3.1 Chức năng quản lý các công việc liên quan đến GPS

Hình 2 - Use-case quản lý chức năng liên quan đến GPS

Trang 21

Đây là chức năng giúp người dùng có thể quản lý tất cả công việc liên quan đến GPS như lấy vị trí của người dùng hay địa điểm mà họ muốn thấy, hiển thị tất cả người dùng có khoảng cách ngắn nhất so với một điểm nhất định, vẽ đường đi giữa hai

vị trí mà người dùng chọn

 Chức năng hiển thị vị trí của người dùng

Bằng cách sử dụng GPS và cho phép Google Map truy cập chức năng này, Google Map sẽ hiển thị vị trí của người dùng bao gồm thông tin về tên, vị trí hiện tại và nó sẽ được cập nhật vị trí mới liên tục nếu người đó di chuyển

 Chức năng hiển thị vị trí của những địa điểm

GPS sẽ giúp người dùng xác định vị trí chính xác của những địa điểm mà người dùng muốn thấy hay tìm đường đến bằng cách hiển thị địa điểm trên bản đồ sau khi người dùng nhập tên

 Chức năng hiển thị vị trí của những người dùng gần nhất

Chức năng này cho phép người dùng thấy được vị trí của những người dùng gần nhất so với vị trí của bản thân hay so với vị trí của một địa điểm nào đó Nó còn cho phép người dùng chọn phạm vi hiển thị Vị trí của những người dùng gần nhất sẽ hiển thị trên bản đồ trong bán kính đã được chọn Những người nằm ngoài sẽ bị ẩn khỏi bản đồ

Ngoài ra, chức năng này còn có thể hỗ trợ hiển thị danh sách người dùng trong một nhóm nhất định, dựa vào tọa độ của từng người đã được lưu trong cơ sở dữ liệu

 Chức năng hiển thị đường đi ngắn nhất giữa hai vị trí

Chức năng này cho phép hiển thị đường đi giữa hai vị trí đã được chọn Nó có thể vẽ đường đi cho người đi bộ hay cho người lái xe ô tô bằng màu sắc khác nhau giúp cho việc phân biệt loại đường đi

Ngoài ra, chức năng này còn hiển thị khoảng cách và thời gian mà một người có thể đến địa điểm mình mong muốn nếu đi theo con đường đã hiển thị trên bản

đồ

Trang 22

2.3.2 Chức năng quản lý danh sách các yêu cầu

Hình 3 - Use-case quản lý danh sách các yêu cầu gửi lên máy chủ của các ứng

dụng

Chức năng này giúp quản lý danh sách các yêu cầu từ máy chủ được gửi đến người dùng ứng dụng hay giúp người dùng gửi các yêu cầu lên máy chủ của các ứng dụng bằng tệp tin XML hay JSON Đối với mỗi trường hợp lại có cách xử lý khác nhau

Trang 23

2.3.3 Chức năng quản lý các kết nối mạng Internet của người dùng

Hình 4 - Use-case quản lý các kết nối mạng Internet của người dùng

Chức năng giúp kiểm tra trạng thái của các loại mạng, các loại mạng được người dùng sử dụng và tự động kết nối hay ngắt kết nối mạng Internet của người dùng

Trang 24

2.3.4 Chức năng quản lý các tin nhắn nhắc nhở từ hệ thống của các ứng dụng

Hình 5 - Use-case quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng

Chức năng này giúp người dùng nhắc nhở một sự kiện sẽ diễn ra trong tương lai với thời gian xác định Người dùng có thể thiết lập chế độ lặp lại hoặc để chế độ mặc định kèm theo việc thiết lập âm thanh, độ rung, đèn flash và gửi tin nhắn

Trang 25

2.3.5 Chức năng quản lý các thông báo từ hệ thống của các ứng dụng hay người

Trang 26

2.3.6 Chức năng quản lý tài khoản

Hình 7 - Use-case quản lý tài khoản

Chức năng này giúp quản lý tất cả tài khoản của người dùng khi dùng ứng dụng bằng cách tác động vào cơ sở dữ liệu của máy chủ của các ứng dụng

Trang 27

2.3.7 Chức năng hỗ trợ xây dựng phòng chat

Hình 8 - Use-case hỗ trợ xây dựng phòng chat

Chức năng này hỗ trợ chat giữa nhiều người dùng khác nhau để trao đổi thông tin

Trang 28

2.4 Phân tích và thiết kế chức năng

2.4.1 Quản lý chức năng liên quan đến GPS

Hình 9 – Biểu đồ lớp quản lý chức năng liên quan đến GPS

Trang 29

 Lớp NearestUser

MapHandler handling Đây là đối tượng MapHandler được sử dụng thông qua lớp

cho các phương thức khác nhau double mLongitude Đây là một thuộc tính được sử dụng thông qua lớp cho các

phương thức khác nhau double mLatitude Đây là một thuộc tính được sử dụng thông qua lớp cho các

phương thức khác nhau GoogleMap map Đây là đối tượng GoogleMap được sử dụng thông qua lớp

cho các phương thức khác nhau LocationClient

radiusKilometer

Đây là một thuộc tính được sủ dụng thông qua lớp cho các phương thức khác nhau

Ngày đăng: 22/05/2021, 10:20

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

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

w