Tải bản đầy đủ (.pdf) (59 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.15 MB, 59 trang )

TRƢỜNG ĐẠI HỌC SƢ PHẠM
KHOA TIN HỌC
---------------------------------

Đề tài:

XÂY DỰNG THƢ VIỆN TRÊN NỀN TẢNG ANDROID
HỖ TRỢ CÁC ỨNG DỤNG QUẢN LÝ

Sinh viên thực hiện

: Võ Lê Anh Thƣ

Lớp

: 10CNTT3

Giáo viên hƣớng dẫn : TS. Nguyễn Trần Quốc Vinh

Đà Nẵng, tháng 05/2014


LỜI CẢM ƠN
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!
Đà Nẵng, ngày 15 tháng 05 năm 2014
Sinh viên thực hiện

Võ Lê Anh Thư


LỜI CAM ĐOAN
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ư


MỤC LỤC
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
2.3.6 Chức năng quản lý tài khoản........................................................................... 18


2.3.7 Chức năng hỗ trợ xây dựng phòng chat .......................................................... 19
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


DANH MỤC HÌNH
Hình 1 – Sơ đồ use-case tổng qt ................................................................................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


DANH MỤC BẢNG
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


DANH MỤC TỪ VIẾT TẮT
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)


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

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, ngồ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
Võ Lê Anh Thư – 10CNTT03

1


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

đượ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ử
1.1.3 Công cụ xây dựng
 SublimeText
 Eclipse SDK
 Thư viện Android SDK
 Genymotion
1.2 Bố cục khóa luận
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.

SVTH: Võ Lê Anh Thư

2


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh


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 đủ.
Ngồ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 tồ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: />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.
SVTH: Võ Lê Anh Thư

3


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

 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 q 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 q 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.

SVTH: Võ Lê Anh Thư

4


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

Để 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 q 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ẽ ln giữ cho
các q 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 q trình bất
cứ lúc nào để phục hồi bộ nhớ cho một trong 3 loại q 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: />
SVTH: Võ Lê Anh Thư

5


Khóa luận tốt nghiệp


GVHD: TS. Nguyễn Trần Quốc Vinh

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 tồ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à ngồ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.

SVTH: Võ Lê Anh Thư

6


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

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:
/>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à thố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ể
emitter.once(event, listener):
Thêm một listener sử dụng một lần cho event. Sau khi được gọi listener này sẽ bị
loại bỏ.
emitter.removeListener(event, listener)
Loại bỏ một listener khỏi event.
 Module Stream
SVTH: Võ Lê Anh Thư

7


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

Đâ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.

SVTH: Võ Lê Anh Thư

8


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

CHƢƠNG 2
PHÂN TÍCH 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. Ngồ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.
 Bộ nhớ trong (RAM): 512 MB.
 Kết nối Internet.
 Định dạng vị trí GPS.
2.1.3 Yêu cầu về phần mềm
 Eclipse đă được cài SDK và ADT
 Genymotion
 SublimeTest

SVTH: Võ Lê Anh Thư

9


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

2.2 Đặc tả chức năng của chƣơng trình (Use-case)
2.2.1 Use-case tổng quát

Hình 1 – Sơ đồ use-case tổng quát
2.2.2 Mô tả Actor
Mô tả

Actor
System

Các ứng dụng được xây dựng trên nền tảng Android

Bảng 1 - Mô tả Actor

SVTH: Võ Lê Anh Thư

10


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

2.2.3 Mơ tả use-case
STT

Mơ tả

Use-Case

Người dùng có thể xác định vị trí của bản thân
1

Quản lý chức năng

hay của người nào đó. Đồng thời cũng xác định

liên quan đến GPS

được vị trí của những nơi muốn đến như cửa
hàng, nhà hàng……


Quản lý danh sách các Người dùng gửi yêu cầu lên máy chủ của các ứng
2

3

4

yêu cầu gửi lên máy

dụng và chờ để nhận sự phản hồi từ máy chủ của

chủ của các ứng dụng

các ứng dụng

Quản lý các tin nhắn
nhắc nhở
Quản lý các kết nối

Người dùng có thể đặt chế độ tự động bật 3G,

mạng Internet của

Wifi hay GPS nếu kiểm tra thấy khơng có mạng

người dung

hoặc tự động tắt chúng nếu khơng thích

từ máy chủ của các

ứng dụng hay người
dung

6

7

đã đượ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

Quản lý các thơng báo
5

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

Quản lý tài khoản

Người dùng có thể gửi thông báo lên máy chủ của
các ứng dụng và máy chủ sẽ gửi trực tiếp đến
những người dùng khác
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

Hỗ trợ xây dựng

Người dùng có thể nói chuyện với nhiều người

phịng chat

cùng một lúc

Bảng 2 - Mô tả use-case

SVTH: Võ Lê Anh Thư

11


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

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

SVTH: Võ Lê Anh Thư

12


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

Đâ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 đồ.
Ngồ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
đồ.

SVTH: Võ Lê Anh Thư

13


Khóa luận tốt nghiệp


GVHD: TS. Nguyễn Trần Quốc Vinh

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.

SVTH: Võ Lê Anh Thư

14


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

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.

SVTH: Võ Lê Anh Thư

15



Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

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.
SVTH: Võ Lê Anh Thư

16


Khóa luận tốt nghiệp

GVHD: TS. Nguyễn Trần Quốc Vinh

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

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
Chức năng này giúp gửi thông báo từ máy chủ của các ứng dụng hay người
dùng đến người dùng khác trong thời gian ngắn nhất.

SVTH: Võ Lê Anh Thư


17


×