Tải bản đầy đủ (.doc) (94 trang)

Công nghệ định vị và ứng dụng android cho mạng địa xã hội

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.07 MB, 94 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI: CÔNG NGHỆ ĐỊNH VỊ VÀ ỨNG
DỤNG ANDROID CHO MẠNG ĐỊA XÃ HỘI

Sinh viên thực hiện : Vũ Văn Minh
Lớp CNPM – K51
Giáo viên hướng dẫn: TS. Nguyễn Khanh Văn

HÀ NỘI 5-2011


2

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: Vũ Văn Minh
Điện thoại liên lạc: 01688779882
Email:
Lớp: CNPM K51
Hệ đào tạo: ĐH
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Công nghệ phần mềm, Viện CNTT &
Truyền thông – Đại học Bách Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày 21/02 /2011 đến 27 / 05 /2011


2. Mục đích nội dung của ĐATN
Tìm hiểu, nghiên cứu các vấn đề lý thuyết về định vị và ứng dụng mạng địa xã hội
trên điện thoại Android. Phân tích, đánh giá hiệu quả của các thuật tốn định vị qua đó lựa
chọn một giải pháp hiệu quả để cài đặt trên một mạng địa xã hội cụ thể. Tìm hiểu lập trình
cho điện thoại di động Android qua đó cài đặt ứng dụng client cho mạng địa xã hội.
3. Các nhiệm vụ cụ thể của ĐATN
 Tìm hiểu lý thuyết tổng quan về 3 cơng nghệ định vị phổ biến hiện nay: GPS, CellID,
wifi signal based.
 Nghiên cứu về các giải pháp định vị indoor (trong nhà) dựa trên sóng wifi và địa chỉ
MAC.
 Xây dựng các giải pháp định vị dựa trên sóng wifi và lựa chọn cài đặt một thuật tốn
phù hợp.
 Tìm hiểu cơng nghệ lập trình trên Android. Tìm hiểu thiết kế tương tác người máy
(HCI) trên điện thoại di động Android.
 Cài đặt ứng dụng client trên Android cho dự án mạng địa xã hội.
4. Lời cam đoan của sinh viên:
Tôi – Vũ Văn Minh - 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 Khanh Văn.
Các kết quả nêu trong ĐATN là trung thực, khơng phải là sao chép tồn văn của bất
kỳ cơng trình nào khác.
Hà Nội, ngày … tháng … năm 2011
Tác giả ĐATN

Vũ Văn Minh
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ảo
vệ
……………………………………………………………………..
……………………………………………………………………..
Hà Nội, ngày … tháng … năm 2011
Giáo viên hướng dẫn


TS Nguyễn Khanh Văn


3

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Những năm gần đây, mạng xã hội và dịch vụ hướng địa điểm (Location
Based Services) là những xu hướng phát triển mạnh mẽ trong ngành công nghệ
thông tin và truyền thông. Sự kết hợp của hai xu hướng này tạo nên mạng địa xã hội
(Geo – social network), mạng xã hội được dự đoán là mạng xã hội phát triển trong
tương lai gần. Ứng dụng client trên điện thoại thông minh (smartphone) là ưu tiên
hàng đầu của các nhà phát triển mạng xã hội loại này. Trong số những nền tảng di
động hiện nay, Android được đánh giá cao ở tính mở, tính ổn định, kho ứng dụng
miễn phí phong phú và số lượng người sử dụng tăng nhanh. Dưới sự hướng dẫn của
thầy tiến sĩ Nguyễn Khanh Văn, đồ án dự định phát triển ứng dụng client trên
Android cho mạng địa xã hội Foloyu.
Một trong những khó khăn khi xây dựng và phát triển ứng dụng trên nền
Android là thiết kế giao diện tương tác người dùng và định vị người dùng. Giao
diện của ứng dụng trên client Android có những đặc thù riêng, đòi hỏi người phát
triển phải tùy biến những chức năng mà server cung cấp sao cho vừa đủ thơng tin
cho người dùng, vừa đảm bảo tính đơn giản, thuận tiện, dễ sử dụng. Hơn nữa, hiện
nay các dịch vụ định vị sử dụng GPS và CellID đang cho thấy nhiều bất cập như độ
chính xác, tiêu tốn pin, thời gian đáp ứng chậm. Chính vì vậy, khi tham gia phát
triển dự án Foloyu, em đã chọn phát triển một giải pháp định vị cho riêng Foloyu sử
dụng sóng wifi để giải quyết những khó khăn mà GPS và CellID chưa làm được.
Đồ án sẽ tập trung vào các cơng nghệ lập trình trên nền Android và ứng dụng
những hiểu biết này vào việc thiết kế, tùy chọn những chức năng phù hợp cho client
Android của mạng địa xã hội Foloyu. Một phần quan trọng khác của đồ án là các
mơ hình, thuật tốn định vị dựa trên sóng wifi. Từ đó, đồ án xây dựng một giải pháp

thực tiễn cho định vị trong mạng địa xã hội Foloyu.
Từ khóa: Geo social network, Cell ID, wifi signal based localization,
Location based services.


4

ABSTRACT OF THESIS
For the last years, social network sites and location based services have strongly
developed in fields of information technology and multi media. The combination of
these two trend leads to geo social network. Application on client smartphone else
will attract most attention from social developers. Therefore, within this thesis, I
mention development of social network mapping on Android platform – the mobile
platform with dramatic development for the last 2 years.
During application establishment and development on Android platform, one of the
most difficulties is user interface and localization. User interface of application on
Client Android has typical features; requiring developers to customize functions
supplied by server, in order to provide users enough information, at the same time
ensure simplicity, convenience and easiness. Moreover, current localization
technique based on GPS and CellID is revealing problems such as exactitude,
batteries consumption, and low process. As a result, participating into Foloyu
project, I develop a location solution for Foloyu using wireless to solve problems of
GPS and CellID.
In my thesis, I demonstrate programming technology on Android platform and
apply it into design, customize suitable fuctions for Android of Foloyu social
network mapping; at the same time, I also describe model, location algorithms
based on wireless for Android.
Keyword: Geo social network, Cell ID, wifi signal based localization, Location
based services.



5

LỜI CẢM ƠN
LỜI CẢM ƠN
Trước tiên em xin gửi lời cảm ơn chân thành sâu sắc đến các thầy cô
Trước tiên em xin gửi lời cảm ơn chân thành sâu sắc đến các thầy cô
giáo trong trường đại học Bách Khoa Hà nội nói chung và các thầy cơ giáo
giáo trong trường đại học Bách Khoa Hà nội nói chung và các thầy cô giáo
trong viện công nghệ thông tin và truyền thông, bộ môn công nghệ phần mềm
trong viện công nghệ thông tin và truyền thông, bộ môn công nghệ phần mềm
nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh
nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh
nghiệm quý báu trong suốt thời gian qua.
nghiệm quý báu trong suốt thời gian qua.
Đặc biệt em xin gửi lời cảm ơn đến thầy TS Nguyễn Khanh Văn, thầy
Đặc biệt em xin gửi lời cảm ơn đến thầy TS Nguyễn Khanh Văn, thầy
đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt gần 11 năm
đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt gần năm
chuẩn bị và làm đồ án tốt nghiệp. Trong thời gian làm việc với thầy,
chuẩn bị và làm đồ án tốt nghiệp. Trong thời gian làm việc với thầy,
em không những tiếp thu thêm nhiều kiến thức bổ ích mà cịn học hỏi được
em khơng những tiếp thu thêm nhiều kiến thức bổ ích mà cịn học hỏi được
nhiều kinh nghiệm thực tiễn khi tham gia dự án Foloyu, đây là những điều rất
nhiều kinh nghiệm thực tiễn khi tham gia dự án Foloyu, đây là những điều rất
cần thiết cho em trong quá trình học tập và công tác sau này.
cần thiết cho em trong quá trình học tập và cơng tác sau này.
Em xin gửi lời cảm ơn tới thầy Trịnh Tuấn Đạt và các bạn trong nhóm
Em xin gửi lời cảm ơn tới thầy Trịnh Tuấn Đạt và các bạn trong nhóm
làm dự án Foloyu đã giúp đỡ em rất nhiều trong suốt thời gian vừa qua.

làm dự án Foloyu đã giúp đỡ em rất nhiều trong suốt thời gian vừa qua.
Và cuối cùng xin gửi lời cảm ơn tới gia đình, bạn bè đã động viên, giúp
Và cuối cùng xin gửi lời cảm ơn tới gia đình, bạn bè đã động viên, giúp
đỡ trong suốt năm năm học đại học.
đỡ trong suốt năm năm học đại học.

Sinh viên
Sinh viên
Lớp
Lớp
Khoa
Khoa
truyền thông
truyền thông

Hà Nội, ngày 27 tháng 55 năm 2011
Hà Nội, ngày 27 tháng năm 2011
: : Vũ Văn Minh
Vũ Văn Minh
: : Công nghệ phần mềm ––K51
Công nghệ phần mềm K51
: : Viện Công nghệ Thông tin và
Viện Công nghệ Thông tin và
Đại học Bách Khoa Hà Nội
Đại học Bách Khoa Hà Nội


6

MỤC LỤC

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP........................................................3
ABSTRACT OF THESIS.............................................................................................4
MỤC LỤC....................................................................................................................6
DANH MỤC CÁC HÌNH VẼ......................................................................................7
DANH MỤC CÁC BẢNG...........................................................................................9
DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ.....................................................11
PHẦN MỞ ĐẦU........................................................................................................12
PHẦN I: GIỚI THIỆU VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP........................14
BÀI TOÁN MẠNG ĐỊA XÃ HỘI.............................................................................14
NHIỆM VỤ ĐỒ ÁN VÀ ĐỊNH HƯỚNG GIẢI PHÁP............................................21
.....................................................................................................................................31
PHẦN II: XÂY DỰNG ỨNG DỤNG ANDROID CHO FOLOYU VÀ TRIỂN
KHAI MODULE ĐỊNH VỊ........................................................................................31
ỨNG DỤNG ANDROID CHO MẠNG ĐỊA XÃ HỘI FOLOYU...........................31
GIẢI PHÁP THỰC TIỄN CHO ĐỊNH VỊ TRONG MẠNG ĐỊA XÃ HỘI
FOLOYU....................................................................................................................55
KẾT LUẬN.................................................................................................................72
TÀI LIỆU THAM KHẢO..........................................................................................74
PHỤ LỤC A: CÁC ĐẶC TẢ USE CASE.................................................................75
PHỤ LỤC B: HỆ ĐIỀU HÀNH ANDROID.............................................................91


7

DANH MỤC CÁC HÌNH VẼ
Hình 1-1: Mơ hình hệ thống Foloyu..........................................................................20
Hình 2-2: Kiến trúc hệ điều hành Android................................................................24
Hình 2-3: Định vị bằng GPS......................................................................................26
Hình 2-4: Phân bố các Cell trong mạng di động GSM..............................................27
Hình 2-5: Định vị bằng Cell ID..................................................................................28

Hình 2-6: Mơ hình định vị bằng Cell ID....................................................................29
Hình 2-7: Định vị bằng sóng wifi...............................................................................30
Hình 3-8: Use case tổng qt.....................................................................................33
Hình 3-9: Use case Profile..........................................................................................34
Hình 3-10: Use case Location....................................................................................35
Hình 3-11: Use case localization................................................................................36
Hình 3-12: Use case view location.............................................................................37
Hình 3-13: Biểu đồ hoạt động....................................................................................38
Hình 3-14: Biểu đồ tuần tự.........................................................................................39
Hình 3-15: Biểu đồ trạng thái.....................................................................................39
Hình 3-16: Các thành phần và cơ chế giao tiếp của ứng dụng client Android.........40
Hình 3-17: Mơ hình lập trình kết nối Internet trong Android...................................42
Hình 3-18: Sơ đồ lớp thành phần Parse XML...........................................................45
Hình 3-19: Mơ hình lập trình giao diện trong Android.............................................47
Hình 3-20: Thư mục định nghĩa giao diện của ứng dụng..........................................48
Hình 3-21: Form Login..............................................................................................48
Hình 3-22: Form Đăng Ký.........................................................................................49
Hình 3-23: Tìm kiếm bạn bè......................................................................................50
Hình 3-24: Các địa điểm nổi bật................................................................................50
Hình 3-25:Thơng tin địa điểm....................................................................................50
Hình 3-26: Form checkin............................................................................................50
Hình 3-27: thơng tin user............................................................................................51
Hình 3-28: Hiển thị lên Gmaps..................................................................................51


8
Hình 3-29: Chỉ đường trên Gmaps.............................................................................51
Hình 3-30: tìm kiếm địa điểm....................................................................................51
Hình 3-31: Kết quả tìm kiếm......................................................................................52
Hình 3-32: Các hot category......................................................................................52

Hình 3-33: Foloyu’s Application Flow......................................................................53
Hình 4-34: Mơ hình định vị trên Android..................................................................57
Hình 4-35: Mơ hình định vị bằng wifi signal............................................................59
Hình 4-36: Cơ sở dữ liệu sampling............................................................................60
Hình 4-37: Client side matching Algorithm..............................................................62
Hình 4-38: Mơ hình lấy mẫu dữ liệu..........................................................................66
Hình 4-39: Wifi Scan Receiver..................................................................................68
Hình 4-40: DB trên Android Client............................................................................69
Hình 4-41: Màn hình nhập dữ liệu.............................................................................69
Hình 4-42: Mơ hình triển khai server sampling.........................................................70
Hình 4-43: Hình ản demo của ứng dụng lấy mẫu......................................................71
Hình 0-44: Use case Manag Account.........................................................................75
Hình 0-45: Use case manage Privacy Setting............................................................78
Hình 0-46: Use case manage private infor.................................................................80
Hình 0-47: Use case Manage Friend..........................................................................81
Hình 0-48: Use case view location.............................................................................85
Hình 0-49: Use case social network function of a location.......................................89


9
DANH MỤC CÁC BẢNG
Bảng 4-1: Giao diện dữ liệu client – server của module định vị...............................60
Bảng 4-2: Dữ liệu lấy mẫu.........................................................................................64
Bảng 4-3: Shared Preference trong ứng dụng lấy mẫu..............................................67
Bảng 0-4: Đặc tả use case quản lý người dùng..........................................................76
Bảng 0-5: Đặc tả use case đăng nhập.........................................................................76
Bảng 0-6: Đặc tả use case đăng xuất..........................................................................76
Bảng 0-7: Đặc tả use case thay đổi mật khẩu............................................................77
Bảng 0-8: Đặc tả use case phục hồi mật khẩu............................................................77
Bảng 0-9: Đặc tả use case vơ hiệu hóa tài khoản người dùng...................................78

Bảng 0-10: use case quản lý chính sách riêng tư.......................................................79
Bảng 0-11: Đặc tả use case thiết lập thông tin cá nhân.............................................79
Bảng 0-12: Đặc tả use case quản lý thông tin cá nhân..............................................80
Bảng 0-13: Đặc tả use case chỉnh sửa thông tin cá nhân...........................................81
Bảng 0-14: Đặc tả use case gửi yêu cầu kết bạn........................................................82
Bảng 0-15: Đặc tả use case xem yêu cầu kết bạn......................................................82
Bảng 0-16: Đặc tả use case trả lời chức năng kết bạn...............................................82
Bảng 0-17: Đặc tả use case xem danh sách bạn bè....................................................83
Bảng 0-18: Đặc tả use case tìm kiếm bạn bè.............................................................83
Bảng 0-19: Đặc tả use case xóa bạn bè......................................................................83
Bảng 0-20: Đặc tả use case tìm kiếm người dùng.....................................................84
Bảng 0-21: Đặc tả use case xem thông tin địa điểm..................................................86
Bảng 0-22: Đặc tả use case xem danh sách địa điểm mới nhất.................................86
Bảng 0-23: Đặc tả use case xem danh sách địa điểm yêu thích................................86
Bảng 0-24: Đặc tả use case xem danh sách hot location category............................87
Bảng 0-25: Đặc tả use case xem thông tin chi tiết địa điểm......................................87
Bảng 0-26: Đặc tả use case tự động định vị...............................................................88
Bảng 0-27: Đặc tả use case định vị bằng tay.............................................................88
Bảng 0-28: Đặc tả use case thông báo check in.........................................................89
Bảng 0-29: Đặc tả use case comment........................................................................90


10
Bảng 0-30: Đặc tả use case Rate................................................................................90


11

DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ
STT

1
2

Từ viết tắt
/thuật ngữ
3G
GSM

Mô tả

3

CDMA

4

GPS

5

KML

6
7

OS
SDK

8
9


DVM
OpenGL ES

10

HTTP

Hypertext Tranfer Protocol – Giao thức truyền dữ
liệu siêu văn bản

11

BTS

Base Transceiver Station – Trạm thu phát sóng di
động

12

RSSI

Received Signal Strength Index – Độ mạnh sóng
khi nhận được

13

MAC

Media Access Control – tầng điều khiển truy nhập

môi trường.

14

DB

Database – Cơ sở dữ liệu

15

Cell - ID

Cell Identification – mã số xác định một khu vực
phủ sóng của cột BTS trong mạng điện thoại di
động.

Third Generation – Mạng di động thế hệ thứ 3
Global System for Mobile Communications - Hệ
thống thông tin di động toàn cầu
Code Division Multiple Access - Phương thức đa
truy cập phân chia theo mã.
Global Positioning System – Hệ thống định vị toàn
cầu.
KeyHold Markup Language – Định dạng dữ liệu
mơ tả vị trí, chỉ đường thường dùng trong Gmaps
Operating System – Hệ điều hành
Software Development Toolkit, bộ các cơng cụ hỗ
trợ lập trình.
Dalvik Virtual Machine, máy ảo Java của Android.
OpenGL Embedded System, một thư viện đồ họa

dành cho các phần mềm nhúng.


12

PHẦN MỞ ĐẦU
Nửa cuối thập niên 2000-2010 chứng kiến sự phát triển mạnh mẽ của mạng
xã hội. Nhờ những tính năng ưu việt của mình, các mạng xã hội đang dần thay đổi
cách thức con người giao tiếp với nhau. Chia sẻ thông tin đang dần trở thành một
nhu cầu rất lớn của người dùng ứng dụng công nghệ thông tin. Chính vì vậy, khi
dịch vụ bản đồ số và công nghệ định vị trở nên phổ biến, người dùng có nhu cầu rất
lớn về chia sẻ thơng tin về các nhà hàng, địa điểm, cập nhật các hoạt động của
người dùng ở các địa điểm khác nhau kèm theo video, hình ảnh. Một mạng xã hội
khai thác được những nhu cầu này sẽ thu hút được rất nhiều người sử dụng. Trong
bối cảnh đó, các mạng địa xã hội ra đời như một tất yếu. Mạng địa xã hội kết hợp
được khả năng chia sẻ thông tin với các tính năng tìm đường, định vị, chia sẻ vị trí
người dùng. Khi người dùng tham gia bất kỳ một hoạt động nào, hệ thống mạng địa
xã hội sẽ tự động cập nhật lại thành các bản tin và phát hành các bản tin này cho
người thân, bạn bè của người đó. Thật thú vị khi người sử dụng vào một nhà hàng
và để lại những nhận xét về nhà hàng đó cho các bạn bè của mình biết được những
thơng tin hữu ích. Từ đó, nhiều chun gia đã dự đoán rằng mạng địa xã hội sẽ trở
thành mạng xã hội phát triển mạnh trong tương lai gần.
Trong khuôn khổ đồ án tốt nghiệp, em tham gia vào việc cài đặt những ứng
dụng của một mạng địa xã hội cụ thể, mạng địa xã hội Foloyu, một mạng địa xã hội
được hình thành từ ý tưởng của thầy Nguyễn Khanh Văn, được phát triển bởi một
nhóm sinh viên dưới sự hướng dẫn của thầy. Trong khi tham gia phát triển dự án
này, em đã lựa chọn những nhiệm vụ sau làm hướng phát triển cho đề tài đồ án tốt
nghiệp của em:
 Nghiên cứu lý thuyết định vị
 Xây dựng module định vị cho mạng địa xã hội Foloyu

 Nghiên cứu hệ điều hành Android và thiết kế giao diện trên Android
 Xây dựng ứng dụng client trên Android cho mạng địa xã hội Foloyu
Môi trường thực hiện đồ án tốt nghiệp: đồ án được thực hiện trong dự án
mạng địa xã hội Foloyu dưới sự hướng dẫn của Tiến sĩ Nguyễn Khanh Văn. Đồ án
bao gồm phần mở đầu, nội dung chính, kết luận, và 2 phụ lục:
Phần mở đầu: Giới thiệu tóm tắt nhiệm vụ đề tài, xác định mục tiêu và
phạm vi thực hiện.
Phần nội dung: Kết cấu 4 chương chính, trong đó chương 1 và chương 2
thuộc phần 1, đặt vấn đề và định hướng giải pháp. Chương 3, chương 4 thuộc phần
2, các kết quả đạt được.


13
 Chương – 1 Bài toán mạng địa xã hội: Giới thiệu tổng quan mạng xã hội, qua
đó đưa ra các khái niệm cơ bản trong mạng xã hội. Từ đó giới thiệu khái niệm
mạng địa xã hội, và bài toán mạng địa xã hội Foloyu.
 Chương 2 – Nhiệm vụ đồ án và định hướng giải pháp: Nêu ra các yêu cầu về
client trên Android và yêu cầu định vị của hệ thống. Qua đó nêu ra 2 vấn đề cần
giải quyết trong đồ án. Giới thiệu kiến trúc hệ điều hành Android và 3 công nghệ
định vị phổ biến hiện nay từ đó đưa ra ý tưởng hiện thực hóa các nhiệm vụ đồ án.
 Chương 3 – Ứng dụng Android cho mạng địa xã hội Foloyu. Trình bày các
phân tích và thiết kế chương trình, thiết kế giao diện, các giải pháp lập trình cho
ứng dụng Foloyu.
 Chương 4 – Giải pháp thực tiễn cho định vị trong mạng địa xã hội Foloyu:
Trình bày về mơ hình, thuật tốn đề xuất cho module định vị. Trình bày thiết kế cơ
sở dữ liệu, xây dựng ứng dụng lấy mẫu dữ liệu cho module định vị.
Kết luận: Đánh giá về kết quả thực hiện đồ án, phân tích những thuận lợi,
khó khăn khi thực hiện đồ án, định hướng phát triển đồ án trong tương lai.
Phụ Lục: gồm 2 phụ lục, phụ lục A là các đặc tả của các use case, phụ lục B
là mô tả các thư viện lõi trong hệ điều hành Android.



14

PHẦN I: GIỚI THIỆU VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI
PHÁP

Phần I trình bày những khái niệm mạng xã hội nói chung và mạng địa xã hội nói
riêng. Qua đó, em mong muốn mang đến cho người đọc một cái nhìn khái quát về
mạng địa xã hội Foloyu, mạng địa xã hội đang được phát triển dưới sự hướng dẫn
của thầy TS. Nguyễn Khanh Văn. Đồ án của em nằm trong khuôn khổ của dự án
phát triển mạng xã hội này. Phần một của đồ án hy vọng giúp người đọc hình dung
được vấn đề mà đồ án sẽ giải quyết và định hướng giải pháp của đồ án cho những
vấn đề này. Bố cục phần I gồm có 2 chương: chương 1 nhằm giới thiệu về bài toán
mạng địa xã hội, chương 2 trình bày về vấn đề cụ thể của đồ án trong khuôn khổ
mạng địa xã hội Foloyu và nêu bật định hướng giải pháp cho những vấn đề này.

BÀI TOÁN MẠNG ĐỊA XÃ HỘI

Nội của chương này sẽ trình bày các vấn đề sau:
o Giới thiệu chung về mạng xã hội
o Giới thiệu về mạng địa xã hội (Geo – social network)
o Giới thiệu về mạng địa xã hội Foloyu

1.1. Mạng xã hội là gì?
Thời gian qua, chúng ta chứng kiến một làn sóng mới của thế giới mạng xã
hội với nền tảng web 2.0. Không thể không nhắc đến Facebook, đã thống trị ngôi vị
Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM



15
số 1 thế giới từ giữa năm 2009, và đến nay vẫn khơng có dấu hiệu dừng lại. Tại Việt
Nam, chúng ta có Yahoo Plus, ZingMe, YuMe,... những mạng xã hội 100% Việt
cũng nhận được rất nhiều sự chú ý, với số lượng người dùng cao. Vậy thực chất
mạng xã hội là gì?

1.1.1. Khái niệm mạng xã hội
Mạng xã hội, mạng xã hội ảo, hay chính xác hơn là mạng giao lưu (tiếng
Anh: social network) là dịch vụ nối kết các thành viên cùng sở thích trên Internet lại
với nhau với nhiều mục đích khác nhau khơng phân biệt khơng gian và thời gian.
Mạng xã hội đổi mới hoàn toàn cách thức liên lạc và trao đổi thông tin. Mọi
người có thể tự do trao đổi ý kiến, bình luận về các hoạt động của người khác, chia
sẻ hình ảnh, video, thơng tin cá nhân … Có thể nói, mạng xã hội đã tạo nên một
cuộc cách mạng trong cách thức giao tiếp của những người thường xuyên sử dụng
Internet.

1.1.2. Nguyên nhân thành công của mạng xã hội
Các trang web mạng xã hội bắt đầu phát triển mạnh trong vài năm nay. Hiện có
hàng nghìn trang web mạng xã hội trên thế giới. Các trang web này phát triển với
tốc độ chóng mặt. Sự thành cơng của các trang mạng xã hội khiến người ta gọi đó là
đợt bùng nổ dotcom lần thứ hai. Các hãng lớn không muốn bỏ qua cơ hội này. Dù
vẫn luôn ở top đầu về lượng truy cập, Google và Yahoo! cũng phải xây dựng các
mạng xã hội của riêng mình (Google Buzz, Yahoo 360). Sở dĩ mạng xã hội phát
triển mạnh như vậy bởi nó có các ưu điểm sau đây:
 Khả năng kết nối mạnh: Mạng xã hội là kết nối. Nó nối kết các thành viên
cùng sở thích với nhau khơng phân biệt khơng gian và thời gian. Ai cũng
có bạn bè, ai cũng cần giao tiếp, trị chuyện cả trong cơng việc lẫn vui chơi
giải trí. Mỗi người có hàng trăm mối quan hệ; hàng triệu người dùng sẽ có
hàng tỉ kết nối. Khai thác hiệu quả các kết nối này là chìa khóa thành cơng
của mạng xã hội.

 Tính phổ cập: Mạng xã hội là dành cho tất cả mọi người, không phân biệt.
Đối tượng cuả mạng xã hội là hàng tỉ người trên khắp thế giới.
 Người dùng là trung tâm: Người dùng có thể thỏa sức thể hiện bản thân,
lựa chọn những gì mình muốn, tự xây dựng lấy khơng gian của riêng mình,
thậm chí có thể tự tạo ứng dụng, tiện ích để sử dụng hay chia sẻ cho bạn
bè.
 Thể hiện phong phú.
 Phát triển không ngừng và không ngừng mở rộng.
Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


16

1.1.3. Một số khái niệm trong mạng xã hội
Như đã trình bày ở trên, sở dĩ mạng xã hội thành cơng được là nhờ tính cập
nhật thơng tin nhanh và liên kết người sử dụng ở khắp mọi nơi trên thế giới với
nhau. Một trong những khái niệm trung tâm trong mạng xã hội tạo nên thành công
của mạng xã hội là Feed. Vậy Feed là gì?
Mỗi người sử dụng mạng xã hội được cung cấp một tài khoản, với tài khoản
này, người sử dụng có thể kết bạn, tham gia các nhóm hoạt động. Đồng thời, mỗi
người sử dụng sẽ có một bảng thơng tin gọi là wall (tường), thực chất đây là nơi sẽ
lưu các trạng thái của người dùng (status), các hoạt động gần đây của họ như bình
luận về status của người khác. Bạn bè có thể thoải mái viết các câu cảm thán lên
tường của mình, hoặc bình luận về các câu cảm thán của người khác. Nếu chỉ dừng
ở mức này, thì mạng xã hội chưa thể đạt được đến tính cập nhật thơng tin được. Vì
chỉ những người tham gia vào hoạt động, mới có thể cập nhật các thơng tin được.
Chính vì lý do đó, khái niệm Feed ra đời. Feed thực chất là hành động cập nhật các
hành động của người dùng cho bạn bè của người đó, qua đó, người sử dụng có thể
biết được hơm qua, hay cách đây vài tiếng đồng hồ bạn bè ta đã làm gì, đã bình luận
hoặc phát biểu những gì. Qua đó, khuyến khích người sử dụng tham gia vào những

hoạt động đó bằng cách đưa thêm những bình luận mới, hoặc đơn giản hơn là bấm
vào nút like.
Khơng dừng lại ở đó, cũng vẫn với mơ hình cập nhật thơng tin trên, các
mạng xã hội đưa ra nhiều tính năng mới như viết nhật ký (blog), viết ghi chú (note),
cập nhật các hình ảnh, video cá nhân, sửa các thơng tin profile, v.v… và cũng giống
như các hoạt động khác, các hoạt động này đều được cập nhật thành feed.

1.2. Mạng địa xã hội (geo – social network)
Như đã trình bày ở trên, mạng xã hội đã phát triển nhanh chóng trong thời
gian qua, cung cấp cho người sử dụng các thể hiện phong phú, các tính năng đa
dạng như blog, note, tweet, hình ảnh, video, …Tuy nhiên một mảng đặc biệt chưa
được khai thác nhiều trong các mạng xã hội, đặc biệt là các mạng xã hội ở Việt
Nam chính là mạng xã hội gắn với địa điểm hay mạng địa xã hội (geo – social
network). Trên thế giới, mơ hình mạng xã hội dựa trên địa điểm (location based
social networking) không mới. Ý tưởng về mạng xã hội dựa trên địa điểm manh nha
khi điện thoại thông minh với hệ thống định vị ra đời. Ban đầu, hệ thống định vị
giúp người dùng xác định được vị trí của họ và tìm đường trên bản đồ, hiểu nơm na
là tích hợp một bản đồ vào điện thoại di động. Nhưng nhu cầu của con người khơng
chỉ dừng lại ở đó. Với mạng xã hội địa điểm, người dùng sau khi đăng nhập ngồi
việc tìm kiếm thơng tin về địa điểm, có thể tạo ra một mạng kết nối với các người
Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


17
dùng khác thông qua việc họ hiển thị đăng nhập và chia sẻ với nhau các địa điểm
mình quan tâm.
Tóm lại, mạng xã hội gắn với địa điểm, lấy địa điểm làm trung tâm các hoạt
động của người sử dụng, cho phép họ bình luận, khám phá các địa điểm, chia sẻ
thông tin về địa điểm được gọi là mạng địa xã hội. Mạng xã hội này cũng có những
tính năng giống như mạng xã hội thông thường, nhưng chú trọng vào mặt địa điểm,

mọi hoạt động của người sử dụng sẽ lấy địa điểm làm trung tâm.

1.3. Mạng địa xã hội Foloyu
Ở Việt Nam, hầu hết các mạng xã hội lớn đều chưa triển khai các ứng dụng
hướng địa điểm. Một số mạng xã hội nhỏ hỗ trợ tính năng về xác định, chia sẻ vị trí,
nhưng chưa khai thác tối đa mảng này. Và hầu như, chưa có ứng dụng nào tích hợp
tính năng chia sẻ, bình luận, đánh giá, và xếp hạng địa điểm. Chính vì vậy mạng địa
xã hội Foloyu đã ra đời nhằm đáp ứng các nhu cầu về một mạng xã hội lấy địa
điểm làm trung tâm để kết nối người dùng với nhau. Mạng địa xã hội Foloyu là một
dự án đang trong giai đoạn phát triển, dự án được hình thành trên ý tưởng của thầy
tiến sĩ Nguyễn Khanh Văn. Dưới sự hướng dẫn của thầy, một nhóm sinh viên lớp
cơng nghệ phần mềm đang phát triển dự án này.

1.3.1. Mục tiêu của hệ thống
Khi thiết kế yêu cầu chức năng cho mạng địa xã hội Foloyu, nhóm phát triển
hướng hệ thống tới 3 mục tiêu chính là:
Chia sẻ vị trí
Người dùng có thể chia sẻ vị trí mà mình đang đứng cho bạn bè, người thân.
Nhờ vậy, ta có thể dễ dàng phát hiện gặp gỡ khi bạn bè đang ở gần, chia sẻ hoạt
động của mình cho người thân, hay tránh được việc lạc mất nhau trong các buổi hẹn
hò, hội họp. Đây thật sự là 1 tính năng hấp dẫn, và nếu được triển khai, nó có tác
dụng cải thiện to lớn tới đời sống sinh hoạt và giao tiếp của mọi người. Hơn thế
nữa, hệ thống foloyu cho phép các tính năng sau:
 Checkin: Hệ thống tạo feed về các lần checkin của người dùng đối với các
địa điểm. Kèm theo những lần checkin đó có thể là một câu cảm thán (shout)
ngắn mô tả về địa điểm. Feed này sẽ được gửi đến bạn bè trong danh sách
bạn bè của mình, chia sẻ cho họ biết ta đã đi đâu. Thực chất, checkin chính là
một cách thơng báo cho bạn bè biết ta đã đi đâu, làm gì.
 Kết bạn đang ở xung quanh mình: hệ thống tự động giới thiệu bạn bè
(suggest friend) cho người dùng dựa trên vị trí hiện tại của người dùng. Qua

Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


18
đó, ta có thể có thêm bạn. Hệ thống cũng cho biết những người dùng cùng ở
trong một địa điểm nào đó.
Khám phá các địa điểm
Đây là mảng hầu như chưa được khai thác đến. Ta mới chỉ tìm thấy các tính
năng về tìm kiếm các địa điểm chun dụng như bệnh viện, trạm xăng, ATM… trên
các dịch vụ bản đồ số, mà chưa thấy ai khai thác tính xã hội của vấn đề này. Thay vì
xây dựng một cơ sở dữ liệu các địa điểm cơ bản, cứng nhắc, ta có thể chuyển chức
năng này cho người sử dụng. Người dùng có thể đánh dấu, tạo mới các địa điểm mà
họ ưa thích, chia sẻ cho bạn bè, hay đánh giá, bình luận,… Việc để người dùng tự
do phát triển sẽ làm tăng tính linh động trong vấn đề lưu trữ, quản lý địa điểm. Hơn
nữa, việc đưa vào tính cộng đồng của một mạng xã hội, cùng các tính năng đánh
giá, xếp hạng sẽ tạo nên sức lan tỏa rộng và tiềm năng to lớn trong khai thác, sử
dụng. Ta có thể xây dựng các tính năng hữu ích như:
• Lưu dấu các địa điểm ưa thích.
• Chia sẻ địa điểm hay với bạn bè.
• Bình luận, đánh giá về địa điểm.
• Chia sẻ hình ảnh, video về địa điểm.
• Tìm kiếm địa điểm tốt nhất dựa trên khoảng cách, đánh giá của những
người đã sử dụng, đặc biệt là của bạn bè.
Kết nối người dùng:
Mọi hoạt động của người dùng như bình luận về một địa điểm, đánh giá
(rate) địa điểm, tạo ấn tượng (impression)… sẽ được tạo thành feed và đưa ra thông
báo cho bạn bè của họ. Từ đó, ta có thể kết nối mọi người lại với nhau. Người sử
dụng có thể dễ dàng cập nhật được thơng tin của bạn bè mình, làm quen kết bạn với
những người đang ở cùng vị trí hoặc gần với vị trí của mình. Người dùng có thể viết
những bình luận, hay nghiêm túc hơn là những ấn tượng (impression) về địa điểm

đó. Việc làm này sẽ giúp những người chưa từng đến địa điểm này biết những thông
tin thú vị về địa điểm. Lấy địa điểm làm trung tâm, các bình luận hay impression
này sẽ đưa mọi người lại gần nhau hơn.

1.3.2. Yêu cầu hệ thống
Khi thiết kế hệ thống, nhóm phát triển ln hướng Foloyu tới một số lượng
người dùng lớn. Vì vậy Foloyu cần bảo đảm các yêu cầu hệ thống của một mạng xã
hội có thể đáp ứng số lượng người dùng lớn:
 Tính scalability: hệ thống phải đáp ứng tốt với số lượng người sử dụng lớn,
lượng dữ liệu lớn, thời gian đáp ứng nhanh.
Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


19
 Tính bảo mật: đảm bảo kênh truyền bảo mật giữa các máy chủ, người dùng
đăng nhập một lần nhưng có thể sử dụng mật khẩu để xin cấp phép cho các
dịch vụ khác mà không cần đăng nhập lại. Các thông tin cá nhân của người
sử dụng được bảo vệ.
 Chính sách riêng tư của người sử dụng được tôn trọng, các thông tin về
người dùng phải được kiểm sốt tốt.
 Tính thân thiện: giao diện người sử dụng trên client đảm bảo thân thiện, dễ
sử dụng, người dùng cảm thấy thoải mái khi thao thác trên client.
 Tính tương thích: ứng dụng client chạy tốt trên các version của web
browser cũng như các phiên bản khác nhau của hệ điều hành Android,
Iphone OS.
 Tính chính xác trong phương pháp định vị: hệ thống phải xác định chính
xác vị trí người dùng, vị trí chính xác này khơng nên hiểu là các con số
kinh độ và vĩ độ, mà phải hiểu là người sử dụng đang ở vị trí nào, phố nào,
nhà hàng nào. Nếu chỉ là các con số kinh độ, vĩ độ thì rút cuộc, người dùng
vẫn khơng biết mình đang ở đâu.


1.3.3. Mơ hình triển khai hệ thống FOLOYU
Hệ thống bao gồm bốn máy chủ hoạt động theo mơ hình trong hình vẽ 1-1.
Client ở đây có thể là điện thoại Android, Iphone hoặc web browser, thực hiện kết
nối tới server foloyu thông qua internet, server này sẽ nhận request, thực hiện xác
thực người dùng và xác định loại dịch vụ mà client muốn gọi tới từ đó nó sẽ thực
hiện các lời gọi webservice tới 3 server còn lại là Profile engine, feed engine và
location engine để đáp ứng các yêu cầu tương ứng của người dùng. Sau đó Foloyu
sẽ thực hiện trả kết quả lại cho client dưới định dạng xml đã được quy ước giữa hai
bên (client và server). Client nhận kết quả, thực hiện trích xuất thơng tin từ file xml
nhận được và trả lại kết quả cho người dùng. Ngoài ra, hệ thống thực hiện đăng
nhập và xác thực người dùng bằng giao thức Kerberos, giao thức này cho phép
người dùng đăng nhập một lần vào hệ thống và sử dụng các dịch vụ từ phía các
server cịn lại mà khơng cần phải đăng nhập lần thứ hai.

Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


20

Hình 1-1: Mơ hình hệ thống Foloyu
Profile engine chịu trách nhiệm quản lý thông tin người dùng, xử lý các
request từ phía Foloyu server và thao tác tới cơ sở dữ liệu. Location Engine quản lý
tồn bộ thơng tin về các địa điểm, cung cấp các API dưới dạng webservice cho
Foloyu server để từ đó Foloyu server trả kết quả về cho client. Đồng thời với việc
quản lý thông tin, Location Engine cung cấp dịch vụ tìm kiếm địa điểm, dịch vụ
xem thơng tin về địa điểm đó, xem các comment, các rate địa điểm, định vị vị trí
người dùng. Feed Engine thực hiện nhiệm vụ tạo các feed (cập nhật thông tin) từ
người dùng rồi truyền tải các thông tin này cho người dùng khác. Các engine được
xây dựng độc lập, đảm bảo tiêu chí là chúng chỉ cung cấp các API dưới dạng

webservice, sau này bất cứ bên thứ ba nào cũng có thể gọi đến được, khơng riêng gì
Foloyu server.
Ngồi ra hệ thống có sử dụng các API của Google Map server cho 2 việc:
việc thứ nhất là hiển thị bản đồ số; thứ hai là thực hiện chỉ dẫn tìm đường đi giữa
hai địa điểm. Việc tìm chỉ dẫn thơng qua Gmaps API sẽ trả trực tiếp về cho phía
client file KML và phía client sẽ tự thực hiện truy xuất thông tin để hiển thị trên
Gmaps từ file KML này.

Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


21

NHIỆM VỤ ĐỒ ÁN VÀ ĐỊNH HƯỚNG GIẢI PHÁP
Nội của chương này sẽ trình bày các vấn đề sau:
o Giới thiệu về 2 nhiệm vụ đồ án.
o Giới thiệu về lập trình cho Android và định hướng cho ứng dụng Foloyu
trên Android.
o Công nghệ định vị và định hướng ứng dụng trên Foloyu.
Trong quá trình tham gia dự án phát triển mạng địa xã hội Foloyu, em được
phân công thiết kế các use case cho người dùng trên điện thoại Android qua đó cài
đặt những chức năng phù hợp của mạng địa xã hội trên Android. Ngồi ra, em cịn
được phân cơng tìm hiểu các phương pháp định vị trên điện thoại Android và xây
dựng Module định vị cho Foloyu. Đây là hai nhiệm vụ chủ yếu của đồ án.

1.4.

Ứng dụng trên Android của mạng địa xã hội
Foloyu


Thói quen sử dụng điện thoại khác hẳn so với thói quen sử dụng máy tính cá
nhân. Người sử dụng điện thoại thường chỉ có khoảng 5 đến 10 phút rảnh để thao
tác trên điện thoại, màn hình điện thoại di động cũng nhỏ hơn, các giao tiếp người –
máy chủ yếu là thơng qua màn hình cảm ứng nên có khá nhiều hạn chế. Ví dụ,
người sử dụng rất ít khi ngồi viết, edit một blog, một note trên điện thoại di động,
thay vào đó, họ thường sử dụng những tính năng yêu cầu thao tác đơn giản hơn như
bấm vào button like, hay bình luận những câu ngắn, thường độ dài chỉ bằng một tin
nhắn SMS họ gửi. Hơn nữa, người sử dụng mạng xã hội trên điện thoại di động có
xu hướng tiếp nhận thơng tin hơn là phản hồi lại thơng tin đó, họ chỉ muốn xem
status của các bạn bè mình, xem hơm qua bạn mình đi đâu, làm gì, hiếm có ai ngồi
viết hẳn một bình luận dài, một note. Chính vì vậy, nhiệm vụ cơ bản của em khi
tham gia dự án là thiết kế, lựa chọn những tính năng phù hợp với thói quen sử dụng
điện thoại, làm sao chọn những giao tiếp đơn giản nhất cho người dùng, khuyến
khích họ sử dụng những tính năng được cài đặt này. Những tính năng này cần đảm
bảo các tiêu chí sau:
• Đơn giản, dễ dùng.
• Cần thiết nhất đối với người sử dụng mạng địa xã hội.
• Phù hợp với thói quen của người dùng điện thoại.

Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


22
• Giao diện thiết kế tương tác người máy khuyến khích người dùng sử dụng
ứng dụng này.
Để có thể làm tốt nhiệm vụ được giao này, em đã định hướng ngay từ lúc đầu
tham gia vào dự án là sẽ phải nắm vững cơng nghệ lập trình trên Android, đặc biệt
là thao tác với Google map trên Android. Ngoài ra, em cịn tìm hiểu các thiết kế
tương tác người máy trên Android để đảm bảo đưa ra được một giao diện Android
phù hợp với các tiêu chí đã nêu ở trên.


1.5.

Module định vị cho mạng địa xã hội

Một trong những yêu cầu về định vị trong mạng Foloyu là định vị phải rất
chính xác. Thơng thường mọi người hay nói đến độ chính xác bao nhiêu m, người
dùng đang ở tọa độ địa lý là kinh độ bao nhiêu, vĩ độ bao nhiêu. Nhưng thực tế cho
thấy, đối với người dùng thơng thường, những con số trên khơng hề có ích lợi gì,
cái người sử dụng quan tâm lại đơn giản hơn rất nhiều, ví dụ họ đang ở nhà C1
ĐBKHN thì cái họ muốn hệ thống định vị phải đưa ra cho họ thơng báo là “bạn
đang ở tịa nhà C1 ĐHBKHN, số 1 Đại Cồ Việt!”. Đây mới là thơng tin hữu ích cho
bạn bè họ, vì vậy, hệ thống định vị của Foloyu không đặt lên hàng đầu là phải tìm
chính xác tọa độ địa lý của người sử dụng. Sau đây là những tiêu chí mà Foloyu
hướng tới:
• Hệ thống định vị hoạt động được cả ở những vị trí trong nhà (indoor).
• Khơng u cầu điện thoại phải có cấu hình cao.
• Hệ thống định vị chính xác vị trí người dùng, đưa ra thơng báo về vị trí
người dùng, hiển thị trên bản đồ số Gmaps.
• Module định vị phải đảm bảo đáp ứng nhanh cho người sử dụng
• Chức năng định vị khơng gây tốn pin cho người sử dụng di động.
Để đảm bảo những tiêu chí này, module định vị khơng thể sử dụng định vị
bằng chip GPS được, bởi vì chip GPS tuy cho kết quả chính xác (cỡ 10m) nhưng nó
lại hoạt động rất kém trong những khu vực đơng dân cư, nơi mà sóng GPS vốn đã
yếu, lại bị nhiễu rất nhiều do các tòa nhà cao tầng, các sóng truyền hình, sóng điện
thoại di động… Hơn nữa, trong nhà (indoor) thì sóng GPS là rất yếu, các điện thoại
Android khá đắt tiền cũng khơng hoạt động được. Sóng GPS trong nhà muốn bắt
được, phải có những bộ thu sóng (receiver) chun dụng đắt tiền. Thêm nữa, với số
đơng người sử dụng thì điện thoại di động có gắn chip GPS vẫn cịn là xa xỉ, vì vậy
ta khơng nên yêu cầu người sử dụng mua điện thoại đời mới rồi mới có thể sử dụng

hệ thống định vị Foloyu được. Chính vì lí do này, giải pháp định vị cho Foloyu sẽ
Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


23
chú trọng tập trung vào 2 phương pháp là: Cell ID và định vị dựa trên sóng wifi
(wifi based localization). Tuy nhiên, chúng ta cũng không nên bỏ qua phương pháp
định vị bằng GPS vì nó rất chính xác, và hơn nữa, với những người sử dụng điện
thoại có gắn chip GPS thì khơng tội gì mà ta lại khơng sử dụng nó cả. Chính vì lý
do này, trong đồ án của mình, em xin được trình bày mơ hình, thuật toán của cả ba
phương pháp định vị là GPS, Cell ID và wifi based localiztion. Sau đó, em sẽ đưa ra
những đánh giá dựa trên tình hình phát triển hiện tại của Foloyu mà có lựa chọn phù
hợp.

1.6. Cơ sở lý thuyết về định vị và công nghệ lập trình Android
Từ hai nhiệm vụ nói trên, em phải nghiên cứu, tìm hiểu cơ chế hoạt động của
hệ điều hành Android. Các cách thức lập trình, thao tác trên bản đồ số Gmaps.
Ngoài ra, một vấn đề nữa em cần phải nắm chắc là các mơ hình định vị dựa trên
sóng di động (cell ID) và sóng wifi (wifi signal based) để từ đó có thể đề xuất được
mơ hình định vị phù hợp cho hệ thống Foloyu.

1.6.1. Công nghệ lập trình trên Android
a. Hệ điều hành Android là gì?
Android có nền tảng mã nguồn mở được phát triển bởi Google. Bên cạnh
kho ứng dụng rất phong phú và hầu hết miễn phí, cùng một cộng đồng phát triển
rộng lớn, Google cịn đưa ra bộ cơng cụ Android SDK cung cấp rất nhiều APIs cần
thiết cho việc phát triển các ứng dụng Android trên ngơn ngữ lập trình Java. Mặc dù
mới ra đời nhưng Android đã tạo ra sức hút rất lớn đối với các nhà phát triển và các
hãng sản xuất. Hiện tại rất nhiều hãng lớn như HTC, SamSung, Motorola, Sony
Ericsson... cam kết sẽ gắn bó với Android.

Hệ điều hành Android được tích hợp rất tốt với Google maps và hệ thống
định vị dựa trên cell ID của google, do đó việc lập trình hiển thị bản đồ số và gọi tới
các API của Google map trở nên đơn giản và dễ dàng. Do vậy, để lập trình ứng
dụng client cho mạng địa xã hội, lập trình viên có rất nhiều thuận lợi. Hơn nữa, tốc
độ phát triển cũng như mức độ phổ biến của điện thoại Android ở Việt Nam đang
ngày càng tăng, số lượng điện thoại Android ở phân khúc bình dân đang tăng lên
hứa hẹn một tương lai tươi sáng cho những nhà phát triển dịch vụ trên nền tảng này.
Chính vì những thuận lợi như trên, trong đồ án của mình, em lựa chọn cài đặt ứng
dụng trên nền tảng này cho hệ thống mạng địa xã hội Foloyu.

b. Kiến trúc hệ điều hành Android
Hệ điều hành Android được chia làm 4 tầng theo sơ đồ như hình vẽ 1 – 2.
Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


24
 Tầng Application:
Đây là các ứng dụng tương tác trực tiếp với người dùng bao gồm các ứng
dựng lõi và những ứng dụng của bên thứ ba. Ngoài việc cung cấp đầy đủ các ứng
dụng cơ bản của một chiếc điện thoại thông thường như: tạo cuộc gọi, nhắn tin...
Android cịn có những dịch vụ rất hữu ích khác: trình duyệt web, google maps, các
ứng dụng media, camera, games... Hơn nữa Google còn cung cấp kho ứng dụng cho
Android tai địa chỉ khá phong phú giúp người
dùng có thể thoải mái download để sử dụng.

Hình 2-2: Kiến trúc hệ điều hành Android
 Tầng Application Framework
Đây là nơi chứa các dịch vụ và hệ thống quản lí ứng dụng. Lập trình viên sẽ
đa phần thao thác với tầng này. Chi tiết về tầng Application Framework, em xin
được trình bày trong phụ lục B – hệ điều hành Android.


 Tầng Library

Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


25
Android cung cấp một tập các thư viện C/C++ được sử dụng bởi các thành
phần khác nhau trong hệ thống. Mô tả chi tiết về các thư viện này, em xin được
trình bày trong phụ lục B – hệ điều hành Android.
 Android Runtime
Bao gồm máy ảo Dalvik và core library. DVM thực hiện các ứng dụng trên
nền Java và đã được đóng gói dưới dạng file .dex (Dalvik Executable - dạng file
thực thi của máy ảo Dalvik) phù hợp với các thiết bị mobile bị hạn chế về bộ nhớ và
tốc độ xử lí chậm. Dalvik có cơ chế mã hóa đặc biệt khiến cho các file .dex có kích
thước nhỏ hơn file .jar nhằm tối ưu hóa việc sử dụng bộ nhớ.
 Linux kernel
Android dựa trên nhân Linux version 2.6 đối với các dịch vụ lõi của hệ thống
như bảo mật, quản lí bộ nhớ, quản lí tiến trình, mạng, trình điều khiển. Nhân Linux
như là một lớp trừu tượng giữa phần cứng và phần còn lại của hệ thống Android.
Nhưng Linux không làm việc trực tiếp với các ứng dụng mà thông qua máy ảo
DVM. Nhân Linux được Google sử dụng khơng hồn tồn là nhân Linux được sử
dụng cho các phiên bản hệ điều hành cho máy tính để bàn, trong đó Google đã loại
bỏ đi hệ thống quản lý cửa sổ ứng dụng X Window System cũng như bỏ bớt một số
thư viện trong bộ thư viện chuẩn GNU.

1.6.2. Cơng nghệ định vị
Hiện nay có ba phương pháp định vị phổ biến là GPS, cell ID và wifi signal
based localization (định vị dựa trên sóng wifi). Mỗi phương pháp đều có cái hay,
cái dở riêng, nhiệm vụ của đồ án là so sánh ba phương pháp này, rồi lựa chọn một

giải pháp định vị hợp lý cho Foloyu.

a. Hệ thống định vị toàn cầu GPS
 GPS là gì?
Hệ thống định vị tồn cầu GPS là một dự án của bộ quốc phòng Mỹ với tham
vọng đánh địa chỉ từng mét vuông trên trái đất. Dự án này đã được cho phép sử
dụng hoàn toàn miễn phí, cả cho mục đích dân sự và quân sự. Hệ thống này gồm 27
vệ tinh (gồm cả 3 vệ tinh dự phòng), 5 trạm thu phát trên mặt đất và các máy thu
của người sử dụng. Mỗi vệ tinh nặng khoảng 2 tấn, sử dụng năng lượng mặt trời,
chuyển động trên các quỹ đạo cách mặt đất khoảng 19.300 km với vận tốc 2 vòng
trái đất/ngày đêm. Quỹ đạo của các vệ tinh được tính tốn sao cho ở bất kỳ nơi nào
trên trái đất và vào bất kỳ thời điểm nào, người ta cũng có thế “nhìn thấy” tối thiểu

Sinh viên thực hiện: Vũ Văn Minh – 20062148. Khóa 51 Lớp CNPM


×