Ngày nay, lượng thông tin ngày một nhiều lên, nhu cầu trao đổi thông tin là rất lớn đặc biệt là theo hình thức mạng xã hội. Sự phát triển của các mạng viễn thông và internet khiến việc chia sẻ thông tin trở nên dễ dàng hơn rất nhiều. Chỉ với một chiếc điện thoại hỗ trợ chức năng chụp ảnh, chúng ta có thể lưu lại những khoảnh khắc đáng nhớ trong cuộc sống bất cứ lúc nào. Những chiếc điện thoại hỗ trợ chức năng GPS, và kết nối mạng internet không còn xa lạ với mỗi người dân. Ý tưởng “Xây dựng mạng xã hội thông tin địa điểm Vietbuzz” được đưa ra với mong muốn xây dựng cho người dùng một mạng xã hội để dễ dàng chia sẻ các thông tin về đầy đủ tất cả các lĩnh vực trong cuộc sống như giao thông, ẩm thực du lịch văn hóa xã hội… thông qua chiếc máy điện thoại cầm tay. Người dùng sử dụng điện thoại của mình để chụp ảnh sau đó chia sẻ ảnh đó cùng với thông tin về vị trí, các thông tin mô tả lên mạng xã hội. Đây cũng là đề tài tốt nghiệp em đã chọn với sự định hướng, hướng dẫn của thầy giáo TS. Tạ Tuấn Anh. Đây là một đề tài lớn, có tính ứng dụng thực tế cao, với khối lượng công việc nhiều bởi vậy đề tài đã được thực hiện theo nhóm sinh viên trong đó có em. Mỗi thành viên trong nhóm sẽ đảm nhiệm những phần công việc cụ thể, nhưng trong quá trình làm việc, chúng em luôn luôn phải gặp gỡ, bàn bạc trao đổi về thiết kế tổng thể đồng thời kết hợp chặt chẽ giúp đỡ nhau hoàn thành công việc. Trong đề tài này, em đảm nhiệm phần công việc: “Xây dựng ứng dụng di động cho mạng xã hội VietBuzz trên nền tảng Android”. Sau một
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2HÀ NỘI 5-2011
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin về sinh viên
Họ và tên sinh viên: Lưu Tiến Dũng
Điện thoại liên lạc: 01682965490 Email: luutiendung2008@gmail.com
Đồ án tốt nghiệp được thực hiện tại:
Thời gian làm ĐATN: Từ ngày 27/12/2010 đến 3/4/2011
2 Mục đích nội dung của ĐATN
Đồ án được thực hiện với mục tiêu nghiên cứu mô hình hoạt động, thiết kế ứng dụng mạng xã hội trên môi trường di động, triển khai xây dựng ứng dụng hoàn chỉnh cho mạng xã hội VietBuzz trên di động sử dụng hệ điều hành Android
3 Các nhiệm vụ cụ thể của ĐATN
Tìm hiểu mô hình hoạt động mạng xã hội dựa trên địa điểm, các ứng dụng di động của các mạng xã hội này, từ đó xây dựng mô hình hoạt động cho mạng xã hội VietBuzz
Nghiên cứu, tìm hiểu công nghệ phát triển ứng dụng trên thiết bị di động Android:
o Nghiên cứu xây dựng ứng dụng trên thiết bị di động Android
o Nghiên cứu sử dụng dịch vụ định vị và xây dựng ứng dụng bản đồ trên di động Android
o Nghiên cứu các giải pháp truyền và nhận thông tin từ di động Android lên server sử dụng web service
Thiết kế, cài đặt, kiểm thử, đánh giá ứng dụng di động Android cho mạng xã hội VietBuzz
4 Lời cam đoan của sinh viên:
Tôi – Lưu Tiến Dũng- 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 Tạ Tuấn Anh
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳcông trình nào khác
Hà Nội, ngày tháng năm
Tác giả ĐATN
Lưu Tiến Dũng
5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảovệ:
Hà Nội, ngày tháng năm
Giáo viên hướng dẫn
TS Tạ Tuấn Anh
Trang 3LỜI NÓI ĐẦU
Ngày nay, lượng thông tin ngày một nhiều lên, nhu cầu trao đổi thông tin làrất lớn đặc biệt là theo hình thức mạng xã hội Sự phát triển của các mạng viễnthông và internet khiến việc chia sẻ thông tin trở nên dễ dàng hơn rất nhiều Chỉ vớimột chiếc điện thoại hỗ trợ chức năng chụp ảnh, chúng ta có thể lưu lại nhữngkhoảnh khắc đáng nhớ trong cuộc sống bất cứ lúc nào Những chiếc điện thoại hỗtrợ chức năng GPS, và kết nối mạng internet không còn xa lạ với mỗi người dân
Ý tưởng “Xây dựng mạng xã hội thông tin địa điểm Vietbuzz” được đưa
ra với mong muốn xây dựng cho người dùng một mạng xã hội để dễ dàng chia sẻcác thông tin về đầy đủ tất cả các lĩnh vực trong cuộc sống như giao thông, ẩm thực
du lịch văn hóa xã hội… thông qua chiếc máy điện thoại cầm tay Người dùng sửdụng điện thoại của mình để chụp ảnh sau đó chia sẻ ảnh đó cùng với thông tin về
vị trí, các thông tin mô tả lên mạng xã hội Đây cũng là đề tài tốt nghiệp em đã chọnvới sự định hướng, hướng dẫn của thầy giáo TS Tạ Tuấn Anh Đây là một đề tàilớn, có tính ứng dụng thực tế cao, với khối lượng công việc nhiều bởi vậy đề tài đãđược thực hiện theo nhóm sinh viên trong đó có em Mỗi thành viên trong nhóm sẽđảm nhiệm những phần công việc cụ thể, nhưng trong quá trình làm việc, chúng emluôn luôn phải gặp gỡ, bàn bạc trao đổi về thiết kế tổng thể đồng thời kết hợp chặtchẽ giúp đỡ nhau hoàn thành công việc Trong đề tài này, em đảm nhiệm phần công
việc: “Xây dựng ứng dụng di động cho mạng xã hội VietBuzz trên nền tảng
Android”.
Sau một thời gian tìm hiểu và nghiên cứu về công nghệ di động Android,được sự giúp đỡ, hướng dẫn nhiệt tình của thầy giáo TS Tạ Tuấn Anh, các bạntrong nhóm thực hiện đồ án, cùng với sự nỗ lực của bản thân, em đã hoàn thành đềtài được giao Em xin chân thành cảm ơn các thầy cô giáo trong trường Đại họcBách Khoa Hà Nội, Viện Công Nghệ Thông Tin & Truyền Thông, Chương trìnhđào tạo Việt Nhật đã giúp đỡ em để em có được kết quả như ngày hôm nay
Tuy nhiên, do thời gian có hạn, với khối lượng công việc nhiều nên dù đã rất
cố gắng nhưng đồ án không tránh khỏi những hạn chế và sai sót Em rất mong nhậnđược sự đóng góp và giúp đỡ của các thầy cô và bạn bè để đề tài được hoàn thiệnhơn, có thể triển khai vận hành trong thực tế trong thời gian tương lai
Hà Nội, tháng 5 năm 2011
LƯU TIẾN DŨNG
AS2-K51 HEDSPI
Trang 4TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Hiện nay, nhu cầu chia sẻ thông tin theo hình thức của mạng xã hội là rất lớn Cácthiết bị di động và các dịch vụ thông tin di động cũng có những bước phát triển vượt bậc
về cả số lượng và chất lượng tạo ra cơ hội cho người sử dụng có thể dễ dàng kết nối vàchia sẻ những sự kiện, những hoạt động thường ngày của họ Các mạng xã hội cho phépngười dùng chia sẻ và kết nối thông tin dựa trên dịch vụ địa điểm (mạng xã hội địa điểm)
đã có những bước phát triển mạnh mẽ nhưng vẫn chưa thể thỏa mãn được nhu cầu củangười dùng Nắm bắt được nhưng nhu cầu đó, nhóm phát triển đã nghiên cứu, đề xuất môhình và triển khai phát triển mạng xã hội VietBuzz
Mạng xã hội VietBuzz cho phép người dùng chia sẻ các sự kiện từ điện thoại lên mạng
xã hội Mỗi sự kiện bao gồm hình ảnh, tiêu đề, nội dung và tọa độ hiện tại của người dùng.Trên cơ sở những thông tin được người dùng chia sẻ, mạng xã hội VietBuzz xây dựng một
cơ chế tổng hợp thông tin thành những nguồn tin hữu ích như thông tin tình trạng giaothông, thông tin về điểm mua sắm, du lịch, giải trí … cung cấp cho người dùng di độngdưới dạng các dịch vụ gia tăng của mạng xã hội
Đồ án này của em được hoàn thành trong quá trình nghiên cứu và xây dựng ứng dụng
di động cho mạng xã hội VietBuzz trên nền tảng Android Ứng dụng này cho phép ngườidùng chia sẻ sự kiện, quản lý các sự kiện và sử dụng các dịch vụ gia tăng của mạng xã hộimột cách hiệu quả nhất Trong phạm vi của đồ án triển khai 3 dịch vụ gia tăng :
Dịch vụ tra cứu thông tin giao thông, cảnh báo giao thông
Dịch vụ tìm kiếm thông tin mua sắm
Dịch vụ tìm kiếm thông tin giải trí
Để triển khai các ưng dụng này, nội dung của đồ án giải quyết hai vấn đề:
Thiết kế và xây dựng ứng dụng trên nền tảng di động Android
Nghiên cứu triển khai giải pháp truyền và nhận thông tin từ di động Androidlên server sử dụng web service
Đồ án đã đưa ra các giải pháp thiết kế và sử dụng công nghệ phù hợp để giải quyết triệt đểhai vấn đề nêu trên
Kết quả của quá trình triển khai cài đặt thiết kế và áp dụng các giải pháp công nghệ
là một sản phẩm ứng dụng hoàn chỉnh, đầy đủ chức năng, đáp ứng được những yêu cầu vềhiệu năng và có cách thức tổ chức nội dung hợp lý, giao diện tốt, có khả năng đưa vào triểnkhai trên môi trường thực tế
Để đạt được mục đich cuối cùng là đưa toàn bộ hệ thống mạng xã hội VietBuzz vàohoạt động, đáp ứng được những yêu cầu của người dùng, cần tiếp tục mở rộng các dịch vụgia tăng khác và mở rộng triển khai trên các nền tảng di động khác
Trang 5ABSTRACT OF THESIS
Nowadays, the demand for sharing information through social networks is quitehigh Thus, mobile devices as well as mobile information service have got noticeabledevelopments in both quantity and quality, which, in return, allows users to connect andshare events as well as their own daily activites freely and easily Social networks whichentitle users to connect and share information through location based service (locationbased social network) also show noticeable developments yet these developments have notfulfilled users’ demand In recognition of such situation, the develop team has studied tosuggest and implement a model of social network-VietBuzz
The VietBuzz social network entitles users to sharing events from their mobile up
on social networks Each event includes image, title, content and current location ofdevices Vietbuzz social network builds up a synthesis of colleting and classifyinginformation into helpful resources such as circulation traffic status, shopping centers,travelling,entertainment…and supply mobile phone users in form of value added services
of social networks
This thesis has been completed during the process of studying and building upmobile application for VietBuzz social network based on Android platform Thisapplication allows users to share events, manage events and access value added services ofsocial networks effectively The thesis studys on three value-added services:
• Traffic information and traffic warning searching service
• Shopping information searching service
• Entertainment searching service
In order to implement the above contents, the thesis is meant to solve the following:
• Design and implement application based on Android platform
• Study how to send and receive information from Android up on web services usingservers
The thesis has suggested design solutions as well as completely solving the abovelisted out matters through using of accommodately technologies
A completely funtioned application product has shown up as a result of such designimplementation and technological solution application fulfilling requirements of effect,accommodate content organization, good user interface and practicability
In order of achieving the last target-putting all the Vietbuzz social network systeminto operation, there should be more offers of other services as well as implementationenlargement on other mobile platform
Trang 6BỐ CỤC CỦA ĐỒ ÁN
Nội dung đồ án được chia làm hai phần
PHẦN 1: Tổng quan vấn đề và giải pháp: Bao gồm các chương 1, 2 ,3.
Chương 1: Mạng xã hội địa điểm, các ứng dụng di động cho mạng xã hội địa điểm
Trình bày xu hướng phát triển mạng xã hội địa điểm kết quả khảo sát một sốmạng xã hội địa điểm và các ứng dụng di động của chúng, rút ra những ưunhược điểm làm cơ sở xây dựng mô hình mạng xã hội VietBuzz
Chương 2: Mô hình hoạt động của mạng xã hội VietBuzz, vấn đề xây dựng ứng dụng di động cho mạng xã hội VietBuzz.
Đề xuất mô hình hoạt động, kiến trúc của mạng xã hội VietBuzz, đặt vấn đềxây dựng ứng dụng di động cho mạng xã hội VietBuzz, đề xuất các giải pháp
và lựa chọn giải pháp phù hợp
Chương 3: Công nghệ di động Android
Giới thiệu các khái niệm cơ bản về Android và phát triển ứng dụng trênAndroid Giới thiệu các giải pháp công nghệ giải quyết các vấn đề gặp phảitrong xây dựng ứng dụng mạng xã hội VietBuzz
PHẦN 2: Phân tích thiết kế, cài đặt ứng dụng di động cho mạng xã hội VietBuzz: Bao gồm chương 4
Chương 4: Phân tích thiết kế, xây dựng ứng dụng di động cho mạng xã hội
Phân tích thiết kế, cài đặt ứng dụng dụng di động cho mạnh xã hội VietBuzz.Đánh giá kiểm thử kết quả, so sánh với một số ứng dụng khác
Trang 7MỤC LỤC
LỜI NÓI ĐẦU 2
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 3
BỐ CỤC CỦA ĐỒ ÁN 5
MỤC LỤC 6
DANH MỤC CÁC HÌNH 8
DANH MỤC CÁC BẢNG 10
DANH MỤC CÁC TỪ NGỮ VIẾT TẮT VÀ THUẬT NGỮ THƯỜNG DÙNG 11
PHẦN I: TỔNG QUAN VẤN ĐỀ VÀ GIẢI PHÁP 12
CHƯƠNG 1 MẠNG XÃ HỘI ĐỊA ĐIỂM, CÁC DỤNG DI ĐỘNG CHO MẠNG XÃ HỘI ĐỊA ĐIỂM 13
1.1 TỔNG QUAN VỀ MẠNG XÃ HỘI ĐỊA ĐIỂM 13
1.1.1 Khái niệm mạng xã hội 13
1.1.2 Xu hướng phát triển trên môi trường di động của mạng xã hội 13
1.2 MẠNG XÃ HỘI ĐỊA ĐIỂM 13
1.2.1 Mô hình hoạt động 13
1.2.2 Ưu nhược điểm của các mạng xã hội địa điểm hiện nay, định hướng phát triển mạng xã hội địa điểm tại Việt Nam 15
1.3 CÁC ỨNG DỤNG DI ĐỘNG CHO MẠNG XÃ HỘI ĐỊA ĐIỂM 17
1.4 KẾT LUẬN CHƯƠNG 1 18
CHƯƠNG 2 MÔ HÌNH HOẠT ĐỘNG CỦA MẠNG XÃ HỘI VIETBUZZ, VẤN ĐỀ XÂY DỰNG ỨNG DỤNG DI ĐỘNG CHO MẠNG XÃ HỘI VIETBUZZ 20
2.1 MÔ HÌNH HOẠT ĐỘNG CỦA MẠNG XÃ HỘI VIETBUZZ 20
2.1.1 Cơ sở của ý tưởng 20
2.1.2 Mô hình hoạt động mạng xã hội VietBuzz 20
2.1.3 Ưu điểm mô hình hoạt động của mạng xã hội VietBuzz 21
2.2 VAI TRÒ CỦA ỨNG DỤNG DI ĐỘNG CHO MẠNG XÃ HỘI VIETBUZZ 22
2.3 VẤN ĐỀ XÂY DỰNG ỨNG DỤNG DI ĐỘNG CHO MẠNG XÃ HỘI VIETBUZZ 22
2.3.1 Mô tả vấn đề 22
2.3.2 Định hướng giải pháp giải quyết vấn đề 23
2.4 KẾT LUẬN CHƯƠNG 2 24
CHƯƠNG 3 CÔNG NGHỆ DI ĐỘNG ANDROID 26
3.1 GIỚI THIỆU VỀ ANDROID 26
3.1.1 Android là gì 26
3.1.2 Lịch sử của Android 26
3.1.3 Tại sao lựa chọn Android 27
3.2 KIẾN TRÚC CHUNG CỦA HỆ ĐIỀU HÀNH ANDROID 27
3.3 CÁC THÀNH PHẦN CƠ BẢN CỦA MỘT ỨNG DỤNG TRÊN HỆ ĐIỀU HÀNH ANDROID 29 3.3.1 Activity 29
3.3.2 Service 32
3.3.3 Content Provider 33
3.3.4 Broadcast receiver 33
Trang 83.4 XÁC ĐỊNH VỊ TRÍ THIẾT BỊ TRÊN MÔI TRƯỜNG DI ĐỘNG ANDROID 34
3.5 ỨNG DỤNG BẢN ĐỒ TRÊN DI ĐỘNG ANDROID 34
3.6 SỬ DỤNG WEB SERVICE TRONG ỨNG DỤNG DI ĐỘNG ANDROID 34
3.6.1 Truy vấn HTTP 35
3.6.2 Định dạng dữ liệu trả về 35
3.6.3 Phân tích dữ liệu trả về 36
3.7 KẾT LUẬN CHƯƠNG 3 36
PHẦN II: PHÂN TÍCH, THIẾT KẾ, CÀI ĐẶT ỨNG DỤNG DI ĐỘNG CHO MẠNG XÃ HỘI VIETBUZZ 37
CHƯƠNG 4 PHÂN TÍCH, THIẾT KẾ, CÀI ĐẶT ỨNG DỤNG 38
4.1 NHỮNG YÊU CẦU KHI PHÂN TÍCH THIẾT KẾ 38
4.2 PHÂN TÍCH YÊU CẦU CỦA ỨNG DỤNG 38
4.3 THIẾT KẾ ỨNG DỤNG 42
4.3.1 Mô hình hóa cấu trúc 42
4.3.2 Sơ đồ chuyển đổi màn hình 49
4.3.3 Thiết kế giao diện 50
4.4 LẬP TRÌNH PHÁT TRIỂN 54
4.4.1 Môi trường và công cụ phát triển 54
4.4.2 Truy vấn Http và phân tích kết quả trả về 54
4.4.3 Sử dụng dịch vụ bản đồ Google Maps 56
4.4.4 Thực hiện giải pháp cache 56
4.5 KẾT QUẢ CÀI ĐẶT 57
4.6 THỬ NGHIỆM VÀ DÁNH GIÁ KẾT QUẢ THỰC HIỆN 65
4.6.1 Môi trường kiểm thử 65
4.6.2 Đánh giá chức năng 65
4.6.3 Đánh giá hiệu năng 65
4.6.4 Đánh giá cách tổ chức nội dung và giao diện 66
4.7 HƯỚNG PHÁT TRIỂN TƯƠNG LAI 67
4.8 KẾT LUẬN CHƯƠNG 4 67
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69
Trang 10DANH MỤC CÁC HÌNH
Hình 1.1 Mạng xã hội địa điểm Yelp 14
Hình 1.2 Mạng xã hội địa điểm Foursquare 14
Hình 1.3 Mạng xã hội địa điểm Việt Nam: Kunkun 16
Hình 1.4 Ứng dụng di động của mạng xã hội Foursquare 18
Hình 1.5 Ứng dụng di động của mạng xã hội Yelp 18
Hình 2.1 Kiến trúc chung của mạng xã hội VietBuzz 21
Hình 2.2 Ứng dụng cho di động và web cho di động của mạng xã hội Facebook 24
Hình 3.1 Kiến trúc chung của hệ điều hành Android 28
Hình 3.2 Vòng đời của activity 30
Hình 3.3 Ví dụ về hoạt động của một task và back-stack 32
Hình 3.4 Ví dụ về multitask trong Android 32
Hình 3.5 Mô hình truy vấn đến REST web service trên di động 35
Hình 4.1 Sơ đồ Usecase của ứng dụng cho mạng xã hội di động VietBuzz 38
Hình 4.2 Sơ đồ chi tiết cho usecase quản lý sự kiện lưu trữ 39
Hình 4.3 Sơ đồ giao tiếp của usecase tạo mới và chia sẻ sự kiện 42
Hình 4.4 Sơ đồ giao tiếp của usecase xem danh sách sự kiện đã chia sẻ 43
Hình 4.5 Sơ đồ giao tiếp của usecase xem sự kiện trên bản đồ 44
Hình 4.6 Sơ đồ giao tiếp của usecase xem chi tiết sự kiện 45
Hình 4.7 Sơ đồ giao tiếp của usecase xem sự kiện nóng hổi nổi bật 46
Hình 4.8 Sơ đồ giao tiếp của usecase xem sự kiện giao thông 47
Hình 4.9 Sơ đồ giao tiếp của usecase tìm kiếm địa điểm 48
Hình 4.10 Sơ đồ chuyển đổi màn hình 49
Hình 4.11 Thiết kế layout chung cho ứng dụng 51
Hình 4.12 Thiết kế layout cho các màn hình điều khiển, lựa chọn chức năng 51
Hình 4.13 Thiết kế layout cho màn hình tạo mới sự kiện 52
Hình 4.14 Thiết kế layout cho các màn hình hiển thị danh sách sự kiện 52
Hình 4.15 Thiết kế layout cho màn hình xem chi tiết sự kiện 53
Hình 4.16 Thiết kế layout cho màn hình theo giõi sự kiện giao thông 53
Hình 4.17 Thiết kế layout cho màn hình địa điểm, sự kiện giải trí 54
Hình 4.18 Ví dụ về JSON trả về trong một truy vấn 55
Hình 4.19 Ví dụ về phân tích dữ liệu trả về 55
Hình 4.20 Giao diện chính của chương trình 57
Hình 4.21 Người dùng điền vào form và lựa chọn kiểu nội dung 57
Hình 4.22 Màn hình lựa chọn mức độ chia sẻ và màn hình chờ upload 58
Hình 4.23 Màn hình thông báo lỗi kết nôi 58
Hình 4.24 Sự kiện được chia sẻ thành công lên mạng xã hội 59
Hình 4.25 Màn hình lựa chọn loại sự kiện và màn hình sự kiện đã chia sẻ 59
Hình 4.26 Dạng danh sách và dạng bản đồ của chức năng quản lý sự kiện cá nhân 60
Hình 4.27 Màn hình xem chi tiết sự kiện và quick action trong danh sách 60
Hình 4.28 Chức năng tự động xác định hướng di chuyển của người dùng 61
Hình 4.29 Chức năng tự động cảnh bảo khi phát hiện sự cố phía trước 61
Hình 4.30 Hiển thị danh sách sự kiện gia thông, tìm kiếm thông tin về sự kiện trong một khu vực 62
Hình 4.31 Giao diện tổng hợp thông tin của người quản trị 63
Hình 4.32 Cập nhật sự kiện giao thông mới từ server 63
Hình 4.33 Màn hình xem các địa điểm, sự kiện mua sắm 64
Hình 4.34 Màn hình xem sự kiện, địa điển giải trí 64
Hình 4.35 So sánh Findaplace và VietBuzz 66
Trang 11Hình 4.36 So sánh tổ chức giao diện ứng dụng di động mạng xã hội Yelp và ứng dụng di động mạng xã hội VietBuzz 67
Trang 12DANH MỤC CÁC BẢNG
Bảng 1.1 Kết quả so sánh một số mạng xã hội địa điểm 15Bảng 2.1 So sánh các giải pháp xây dựng ứng dụng di động cho mạng xã hội VietBuzz 24Bảng 3.1 Các phiên bản của hệ điều hành Android 27Bảng 3.2.Thống kê và dự báo thị phần hệ điều hành smartphone 2009 - 2015 27
Trang 13DANH MỤC CÁC TỪ NGỮ VIẾT TẮT VÀ
THUẬT NGỮ THƯỜNG DÙNG
RESTFul Representational State Tranfer
Trang 14PHẦN I:
TỔNG QUAN VẤN ĐỀ VÀ GIẢI PHÁP
Trang 15Chương 1.
Mạng xã hội địa điểm, các dụng di động cho mạng xã hội địa điểm
1.1 Tổng quan về mạng xã hội địa điểm
1.1.1 Khái niệm mạng xã hội
Mạng xã hội, hay gọi là mạng xã hội ảo (social network) là dịch vụ nối kếtcá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ácnhau không phân biệt không gian và thời gian
Hiện nay thế giới có hàng trăm mạng mạng xã hội khác nhau : MySpace vàFacebook (Bắc Mỹ và Tây Âu), Orkut và Hi5(Nam Mỹ) Một số mạng xã hội khácgặt hái được thành công đáng kể theo vùng miền như Bebo tại Anh Quốc, CyWorldtại Hàn Quốc, Mixi tại Nhật Bản và tại Việt Nam xuất hiện rất nhiều các mạng xãhội như: Zing Me, YuMe, Tamtay
1.1.2 Xu hướng phát triển trên môi trường di động của mạng xã hội
Trong vòng hai năm trở lại đây, doanh số điện thoại thông minh tăng trưởngmạnh mẽ trên toàn cầu Sức mạnh của điện thoại thông minh ở tính di động và khảnăng kết nối cao mọi lúc mọi nơi Các thiết bị cẩm tay như điện thoại thông minhđang dần thay thế máy tính để bàn và máy tính xách tay Trong bối cảnh đó, cácmạng xã hội cũng chuyển dần sang tận dung những lợi thế của thiết bị di động.Càng ngày càng có thêm nhiều ứng dụng di động cho phép tương tác với mạng xãhội Xu hướng hiện nay của mạng xã hội là chia sẻ hình ảnh từ di động và cung cấpdịch vụ dựa trên vị trí (location-based services)
1.2 Mạng xã hội địa điểm
Mạng xã hội địa điểm là mô hình mới xuất hiện trong thời gian gần đây nhưng
đã đạt được nhiều thành công mạnh mẽ, số lượng người dùng đông đảo Phần này
sẽ phân tích mô hình hoạt động của mạng xã hội địa điểm, rút ra ưu, nhược điểmlàm căn cứ nghiên cứu xây dựng mạng xã hội VietBuzz
1.2.1 Mô hình hoạt động
Mạng xã hội địa điểm là mạng xã hội cho phép người dùng chia sẻ thông tin
về địa điểm, tìm kiếm và kết nối thông tin dựa trên vị trí hiện tại Một số mạng xãhội địa điểm phổ biến hiện nay: Foursquare (2,6 triệu người dùng trên toàn cầu),Yelp (2 triệu người dùng, chủ yếu tại Mỹ), Where.com (3 triệu người dùng, chủ yếutại Mỹ) Hiện này tại Việt Nam có một số mạng xã hội địa điểm: Kunkun,goLocation nhưng chưa thu hút được nhiều người sử dụng
Trang 16Hình 1.1 Mạng xã hội địa điểm Yelp
Một số điểm khác biệt của mạng xã hội địa điểm và mạng xã hội thông thường:
Nội dung chia sẻ: Mạng xã hôi thông thường cho phép người dùng chia sẻ
suy nghĩ, hoạt động, hình ảnh của họ thông qua các kết nối Mạng xã hội địađiểm cho phép đi xa hơn thế, chia sẻ thông tin kèm với địa điểm hiện tại củangười dùng, họ suy nghĩ, hành động, hình ảnh ở đâu và vào thời điểm nào
Cách thức chia sẻ: Đối với các mạng xã hội thông thường, người dùng chỉ
cần một máy tính cá nhân hay bất cứ thiết bị di động kết nối Internet nàokhác Khác với mạng xã hội thông thường, do tính chất yêu cầu thông tin gắnvới địa điểm, mạng xã hội địa điểm thường gắn với các thiết bị di động
Hình 1.2 Mạng xã hội địa điểm Foursquare
Các mạng xã hội địa điểm hiện tại đều dựa trên một dịch vụ cơ bản là đánh dấu,tìm kiếm và check in địa điểm kết hợp với một vài dịch vụ gia tăng khác:
Dịch vụ cơ bản: Tạo, tìm kiếm, check-in địa điểm Với dịch vụ này người
dùng có thể:
o Đánh dấu và chia sẻ địa điểm mới
Trang 17o Tìm kiếm địa điểm dựa vào nội dung, khoảng cách đến vị trí hiện tại
o Check-in: Viết đánh giá về một địa điểm, chia sẻ với bạn bè
Các dịch vụ gia tăng:
o Xếp hạng người dùng, tặng phần thưởng, huy chương …
o Chia sẻ check-in trên mạng xã hội thông thường
o Tìm kiếm vị trí bạn bè
o Kết nối bạn bè cùng sở thích (Foursquare)
o Định hướng sử dụng dịch vụ (Yelp, Where.com)
Số lượng người dùng 2.60triệu 390 nghìn 2 triệu 3 triệu
Phần thường khuyến
khích
Điểm số và phù hiệu
Giới hạn chỉ dành cho ứng dụng chính thức
Công bố rộng rãi, giới hạn khả năng review và checkin
Giới hạn chỉ dành cho ứng dụng chính thức Nền tảng ứng dụng di
động
Android iPhone, Blackberry, palm
Android iPhone iPad Blackberry
Android iPhone, Blackberry palm
Android, Phone, Blackberry palm
Kết nối với mạng xã
hội khác
Có Kết nôi với Facebook, Twitter
Có Kết nôi với Facebook, Twitter
Dạng dịch vụ gia tăng Khám phá thành
phố, kết nối bạn
bè, nhận giải thưởng
Khám phá địa điểm mới và nhận giải thưởng
Chia sẻ, đánh giá điểm dịch vụ, giới thiệu dịch vụ
Tìm kiếm và giới thiệu dịch vụ
Bảng 1.1 Kết quả so sánh một số mạng xã hội địa điểm
1.2.2 Ưu nhược điểm của các mạng xã hội địa điểm hiện nay, định hướng phát triển mạng xã hội địa điểm tại Việt Nam
Ưu điểm:
Mạng xã hội địa điểm mở ra một hướng đi mới Người dùng có một góc nhìnhoàn toàn mới để có thể khám phá thông tin và tương tác với nhau
Tận dụng được khả năng kết nối và tính di động của di động
Mở ra một số dịch vụ đáp ứng được yêu cầu của người dùng
Nhược điểm:
Nội dung thông tin chia sẻ chỉ giới hạn trong những thông tin địa điểm, chưađáp ứng được nhu cầu người dùng Người dùng hiện nay có nhu cầu chia sẻnhiều hơn thế, bất cứ sự kiện nào mà họ gặp trong cuộc sống
Mang nhiều tính chất giải trí hơn là tạo khả năng kết nối
Vấn đề về quản lý địa điểm: nhiều mạng xã hội địa điểm cho phép ngườidùng tạo mới địa điểm, comment mà không nhất thiết xác nhận người dùng
Trang 18đang ở đúng vị trí đó Điều đó sẽ khiến cho thông tin thu thập được khôngchính xác.
Mức độ chia sẻ thông tin: hầu hết các mạng xã hội địa điểm, thông tin ngườidùng chia sẻ đều public chung cho tất cả mọi người Tuy nhiên đối với ngườidùng có những thông tin họ chỉ muốn chia sẻ với bạn bè, một số người hoặcchỉ giữ riêng cho mình
Các dịch vụ mở rộng không hấp dẫn Thông tin mà người dùng chia sẻ trênmạng xã hội là một nguồn thông tin rất lớn mà các mạng xã hội chưa tổ chứcsắp xếp và sử dụng được Các mạng xã hội địa điểm hiện nay chưa trả lờiđược câu hỏi: Người dùng được lợi gì từ việc check-in địa điểm?
Nguyên nhân thất bại của các mạng xã hội địa điểm tại Việt Nam hiện nay:
Áp dụng nguyên mô hình của các mạng xã hội địa điểm của nước ngoài,chưa khắc phục được những nhược điểm của các mạng xã hội này
Thông tin hầu như dựa chủ yếu do người dùng đưa lên, do đó trong giai đoạnđầu, ít người dùng, thông tin mà người dùng thu được khi tham gia khôngnhiều dễ khiến người dùng chán nản và từ bỏ
Tại thời điểm ra đời của các mạng xã hội địa điểm này, các thiết bị di động
có khả năng định vị vả khả năng kết nối cao chưa phổ biến nên lượng ngườidùng rất ít
Hình 1.3 Mạng xã hội địa điểm Việt Nam: Kunkun
Tiềm năng phát triển của mạng xã hội địa điểm tại Việt Nam hiện nay vẫn cònrất lớn bởi những nguyên nhân sau:
Số người dùng các mạng xã hội ở Việt Nam như Facebook, Twitter đã vàđang tăng nhanh chóng Điều đó chứng tỏ người dùng có nhu cầu chia sẻthông tin rất lớn
Sự phát triển của kinh tế, thu nhập người dân tăng cao cộng với càng ngàycàng xuất hiện nhiều điện thoại thông minh giá rẻ khiến người sử dụng điệnthoại thông minh tăng mạnh
Trang 19 Hệ thống mạng không dây 3G tuy mới được triển khai tại Việt Nam vài nămtrở lại đây nhưng đã phát triển rộng khắp, chất lượng đường truyền tốt làmtăng khả năng kết nối mạng tốc độ cao của các thiết bị di động.
Để xây dựng thành công một mạng xã hội địa điểm tại Việt Nam, phải phát huyđược những ưu điểm, khắc phục được những nhược điểm của mô hình mạng xã hộiđịa điểm trên thế giới và tại Việt Nam hiện nay:
Trước hết, phải trả lời được câu hỏi: “Người dùng được lợi gì từ mạng xã hội
địa điểm?” Để đem lại những lợi ích thiết thực cho người dùng, nhất định
phải mở rộng các dịch vụ gia tăng Một cách để mở rộng dịch vụ gia tănghiệu quả là tổ chức xử lý thu thập thông tin hữu ích từ mạng xã hội sau đócung cấp lại cho người dùng
Mở rộng nội dung chia sẻ, không giới hạn thông tin về địa điểm mà là bất cứthông tin nào gắn với một vị trí, diễn ra tại một thời điểm nào đó
Ứng dụng phía di động phải được triển khai rộng khắp trên tất cả các dòng diđộng từ các dòng di động giá rẻ đến các dòng di động cao cấp
1.3 Các ứng dụng di động cho mạng xã hội địa điểm
Các xã hội địa điểm hiện nay thường bao gồm 3 thành phần chính:
Mạng xã hội địa điểm trên giao diện web
Web service cung cấp các API cho ứng dụng di động
Các ứng dụng trên di động
Trong mô hình mạng xã hội địa điểm ứng dụng trên di động đóng vai trò hết sứcquan trọng Nó là thành phần giao tiếp trực tiếp với người dùng, cho phép ngườidùng chia sẻ thông tin và thu thập thông tin từ mạng xã hội mọi lúc mọi nơi
Các ứng dụng thường có những đặc điểm như sau:
Được triển khai trên nhiều nền tảng khác nhau: Android, iOS, Symbian,Window Phone…
Sử dụng API do server cung cấp để kết nối với server
Nội dung hiển thị địa điểm thường bao gồm hai hai dạng gắn liền với nhau:
o Phần văn bản, hình ảnh mô tả địa điểm, thường dưới dạng danh sách
o Phần bản đồ có đánh dấu vị trí địa điểm
Hình thức tổ chức khác nhau, phụ thuộc nhiều vào các dịch vụ gia tăng màmạng xã hội đó cung cấp Thường được tổ chức đơn giản, dễ cho người dùngthực hiện các thao tác trên giao diện di động
Các dịch vụ gia tăng được cung cấp đều gắn liền với vị trí hiện tại ví dụkhám phá các điện điểm xung quan vị trí hiện tại, kế nối bạn bè gần vị tríhiện tại, khuyến cáo dịch vụ gần vị trí hiện tại
Trang 20Hình 1.4 Ứng dụng di động của mạng xã hội Foursquare
Hình 1.5 Ứng dụng di động của mạng xã hội Yelp
1.4 Kết luận chương 1
Mô hình mạng xã hội địa điểm đã và đang mở ra một xu hướng mới cho ngườidùng chia sẻ thông tin Sự phát triển của mạng xã hội địa điểm trên thế giới và tại Việt Nam hiện nay còn rất nhiều tiềm năng Để khai thác được những tiềm năng đó
và xây dựng được một mạng xã hội địa điểm thành công cần phát huy những ưu điểm, khắc phục những nhược điểm của mô hình hiện tại, có những sáng tạo mới, triển khai phù hợp nhu cầu của người dùng
Đối với mạng xã hội địa điểm, thành phần ứng dụng trên di động đóng vai trò then chốt quyết định đế sự thành công của mạng xã hội Cách thức tổ chức nội dung, giao diện người dùng trên ứng dụng di động đóng vai trò quan trọng trong thành công của ứng dụng nói riêng và toàn bộ mạng xã hội nói chung
Căn cứ trên những nghiên cứu khảo sát tại chương 1, nhằm đáp ứng được những yêu cầu đòi hỏi của thực tế, nhóm thực hiện đã xây dựng mạng xã hội
Trang 21VietBuzz với những sáng tạo mới trong mô hình hoạt động, và tổ chức xây dựng triển khai trong thực tế
Trang 22Chương 2.
Mô hình hoạt động của mạng xã hội
VietBuzz, vấn đề xây dựng ứng dụng di động cho mạng xã hội VietBuzz
2.1 Mô hình hoạt động của mạng xã hội VietBuzz
2.1.1 Cơ sở của ý tưởng
Các máy điện thoại di động hiện nay được trang bị rất phổ biến các công cụchụp ảnh, GPS, và kết nối GPRS (hoặc 3G) với giá thành thấp (dưới 100USD).Điện thoại đã trở thành công cụ hữu hiệu để người dùng có thể ghi lại dễ dàng hìnhảnh cuộc sống thường nhật với các thông tin kèm theo về thời gian, địa điểm chụphình và chú thích của người dùng Điện thoại cũng là phương tiện để người dùng dễdàng nhận được các dịch vụ thông tin theo vị trí (location-based service)
Nhu cầu chia sẻ thông tin theo hình thức của mạng xã hội hiện nay là rất lớn
Ví dụ điển hình là đài VOV Giao thông hiện đang thu hút được lượng người ngherất lớn để chia sẻ thông tin về tình hình ùn tắc giao thông hàng ngày Người dâncũng có nhiều nhu cầu phản ánh chia sẻ thông tin về cuộc sống đô thị để mọi ngườicùng biết và các nhà quản lý nắm bắt nhanh tình hình thực tế và sớm đưa ra các biệnpháp xử lý Bằng cách sử dụng thiết bị di động, người sử dụng có thể chụp hình đểchia sẻ thông tin cảnh báo về các điểm ùn tắc giao thông, các điểm mất an toàn docác công trình xây dựng, các vi phạm của người đi đường, các điểm bất hợp lý trong
thông thường: lưu trữ thông tin được chia sẻ từ ứng dụng di động, thực hiệnkết nối bạn bè, bình chọn comment …
thông tin lên mạng xã hội, đồng thời tổng hợp các thông tin đựa chia sẻ trênmạng xã hội cộng với các nguồn thông tin khác ngoài mạng xã hội thành cácnội dung được tổ chức: thông tin vể giao thông, thông tin về các sự kiện giảitrí … Thông tin này được cung cấp lại cho ứng dụng di động dưới dạng cácdịch vụ gia tăng của mạng xã hội
năng:
Trang 23o Chụp hình, ghi lại, truyền tải nội dung cần chia sẻ với cộng đồng lênmạng xã hội
o Tra cứu các thông tin hữu ích, các cảnh báo trên di động dựa trên vị tríhiện tại Ví dụ có thể xem các cảnh báo tắc đường ngay trên di động,tìm kiếm các điểm bán hàng giá rẻ, tìm kiếm điểm du lịch
Trang mạng
xã hội
Cơ sở dữ liệu sự kiện
Thông tin hữu ích
Cơ sở dữ liệu mạng xã hội
Thông tin chia sẻ trên mạng xã hôi
Hình 2.6 Kiến trúc chung của mạng xã hội VietBuzz
Đơn vị chia sẻ thông tin chính trên mạng xã hội gọi là Buzz Mỗi Buzz tươngứng với một sự kiện bao gồm các nội dung:
Tiêu đề của sự kiện
Mô tả sự kiện
Ảnh của sự kiện
Vị trí diễn ra sự kiện: tọa độ (kinh độ, vĩ độ)
Thời điểm diễn ra sự kiện
Các mức độ chia sẻ của Buzz:
Công cộng: Chia sẻ công cộng với tất cả mọi người, phía server chỉ sử dụngBuzz được chia sẻ ở mức độ public để tổng hợp xây dựng dịch vụ gia tăng
Chỉ bạn bè: Chỉ chia sẻ cho bạn bè đã kết nối trên mạng xã hội
Cá nhân: Chỉ lưu giữ cho một mình cá nhân người chủ của Buzz
2.1.3 Ưu điểm mô hình hoạt động của mạng xã hội VietBuzz
Mô hình hoạt động của mạng xã hội VietBuzz kế thừa mô hình hoạt động củamạng xã hội dựa trên địa điểm và đã cơ bản giải quyết được những nhược điểm củacác mạng xã hội địa điểm khác:
Giải quyết được nhu cầu chia sẻ thông tin trong đời sống thường nhật củangười dùng:
Trang 24o Nội dung chia sẻ không giới hạn, không dừng lại ở địa điểm mà mởrộng ra thành sự kiện, bất cứ điều gì mà người dùng gặp trong đờisống thường nhật
o Có nhiều mức độ chia sẻ khác nhau: công cộng, chỉ bạn bè, cá nhân
Đem lại cho người dùng những lợi ích thật sự khi họ tham gia vào mạng xãhội: các dịch vụ gia tăng
o Số lượng các dịch vụ có thể triển khai là vô cùng lớn, có rất nhiềucách thể hiện khác nhau: dịch vụ tự động cảnh bảo tình trạng giaothông, dịch vụ hướng dẫn du lịch, dịch vụ gọi taxi, dịch vụ chia sẻkinh nghiệm đi đường, dịch vụ tra cứu thông tin giao thông công cộng
…
o Chất lượng thông tin được đảm bảo độ chính xác bởi vì người dùngchỉ được phép đưa lên qua ứng dụng di động và thông tin phải trải quaquá trình tổng hợp, biên tập trước khi đưa vào dịch vụ gia tăng
o Nguồn thông tin được mở rộng, không chỉ từ mạng xã hội mà từ cảcác nguồn thông tin khác
Những vấn đề khó khăn cần khắc phục trong quá trình triển khai mô hình mạng xãhội VietBuzz trong thực tế:
Tổng hợp và biên tập nguồn thông tin khổng lồ từ mạng xã hội thành thôngtin cho dịch vụ gia tăng, là vấn đề khó Hiện tại giải pháp là sử dụng đội ngũcộng tác viên thao tác bằng tay
Ứng dụng trên điện thoại phải triển khai trên nhiều nền tảng khác nhau từ rẻtiền đến cao cấp
2.2 Vai trò của ứng dụng di động cho mạng xã hội
Giải quyết vấn đề xây dựng ứng dụng di động cho mạng xã hội địa điểmVietBuzz là nội dung chính của đồ án này
2.3.1 Mô tả vấn đề
Vấn đề xây dựng ứng dụng di động cho mạng xã hội địa điểm bao gồm những vấn
đề nhỏ sau đấy:
Trang 25 Vấn đề truyền và nhận thông tin từ di động đến web service.
Vấn đề xây dựng ứng dụng trên di động đáp ứng các yêu cầu về giới hạn bộnhớ, tốc độ xử lý và giới hạn đường truyền
Vấn đề sử dụng các dịch vụ định vị trên di động, xác định tọa độ hiện tại củathiết bị
Vấn đề sử dụng các dịch vụ bản đồ, đánh dấu và hiển thị địa điểm
2.3.2 Định hướng giải pháp giải quyết vấn đề
Có hai hướng phát triển ứng dụng cho di động giả quyết được những vấn đềtrên
Giải pháp 1: Xây dựng ứng dụng web cho di động sử dụng công nghệ HTML5
Ứng dụng hoạt động trên trình duyệt
Sử dụng javascript để tương tác với web service
Giải pháp 2: Xây dựng ứng dụng trực tiếp trên di động
Ứng dụng hoạt động độc lập trên di động, sử dụng trực tiếp các tài nguyêncủa di động
Sử dụng các thư viện lập trình tùy thuộc vào nền tảng di động để truy vấn sửdụng web service
Để có một cái nhìn tổng quát so sánh về hai giải pháp này chúng ta có thể theo dõi bảng so sánh sau
Tiêu chí so sánh GP1: Ứng dụng Web cho di
động
GP2: Ứng dụng trực tiếp trên
di độngKhả năng xác địch
Khả năng sử dụng
dịch vụ bản đồ
Có Có thể google maps Ver3 Có Trên di động Android có
thư viện hỗ trợ sử dụnggoogle maps ver2
Khả năng truy vấn
sử dụng web service
Có Sử dụng Ajax, Javascript,tránh load lại trang
Có Sử dụng các thư viện cósẵn để thực hiện truy vấn vàphân tích dữ liệu
Khả năng trợ các
nền tảng mobie
Có Viết duy nhất một ứngdụng, hiển thị được trên cáctrình duyệt khác nhau trêncác nền tảng di động khácnhau
Có Mỗi nền tảng yêu cầuviết một ứng dụng riêng, sửdụng các thư viện khác nhautrùy thuộc nền tảng
Tốc độ xử lý Đã được cải thiện bởi công
nghệ HTML5 và tốc độ pháttriển nhanh chóng của cứng
Tuy nhiên vẫn còn nhiều hạnchế do phụ thuộc nhiều vàokhả năng xử lý javascipt củatrình duyệt di động Khả
Nhanh Do sử dụng trực tiếpcác tài nguyên của di động,không phải qua trung gian
Trang 26chế trên di động tầm trung vàtầm thấp.
Tốt Trên di động Android,không những có thể sử dụngtrực tiếp các tài nguyên màcòn có thể tái sử dụng, gọiđến các ứng dụng sẵn cótrong hệ thống
Khả năng tương tác
với người dùng Với công nghệ HTML5, khảnăng tương tác của ứng dụng
web đã được cải thiện đángkể
Tốt, tính linh hoạt cao, tậndung được ưu thế về đa điểmcham của điện thoại thôngminh
Bảng 2.2 So sánh các giải pháp xây dựng ứng dụng di động cho mạng xã hội VietBuzz
Căn cứ vào bảng so sánh trên, rõ ràng một ứng dụng trực tiếp trên di động cónhững lợi thế hơn hẳn Giải pháp được lựa chọn là giải pháp 2
Trong phạm vi đồ án này, ứng dụng được xây dựng trên môi trường điệnthoại di động Android Giao tiếp giữa điện thoại và server trên môi trường mạnginternet sử dụng web service
để triển khai mô hình này tại Việt Nam
Có hai giải pháp để xây dựng ứng dụng di động cho mạng xã hội VietBuzz.Giải pháp sử dụng ứng dụng trực tiếp trên di động tỏ ra có ưu thế hơn về hiệu năng
và khả năng tổ chức giao diện người dùng Giải pháp này được lựa chọn để triểnkhai trong thực tế
Trang 27Yêu cầu của giải pháp là phải xây dựng nhiều ứng dụng trực tiếp trên nhiều nềntảng di động khác nhau Các ứng dụng trên các nền tảng di động khác nhau có thể
sử dụng những công nghệ khác nhau nhưng đều thực thi các chức năng giống nhau
và đều triển khai mô hình chung của mạng xã hội
Trong phạm vi của đồ án này, em triển khai xây dựng ứng dụng di động chomạng xã hội VietBuzz trên nền tảng công nghệ di động Android, một công nghệmới và có tiềm năng phát triển cao Những nội dung cơ bản về công nghệ di độngAndroid được trình bày trong chương 3
Trang 28Chương 3
Công nghệ di động Android
3.1 Giới thiệu về Android
3.1.1 Android là gì
Theo định nghĩa của Google: “Android is a software stack for mobile devices
that includes an operating system, middleware and key applications.”
Andoid là một tập hợp các phần mềm bao gồm một hệ điềm hành, cácmiddleware và một số ứng dụng cơ bản được tổ chức thành một kiến trúc nhiềutầng
3.1.2 Lịch sử của Android
Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập củaliên minh thiết bị cầm tay mở (Open Handset Alliance), bao gồm 78 công ty phầncứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điệnthoại di động trong tương lai Một vài dấu mốc trong lịch sử phát triển Android:
Tháng 10 năm 2003, Andy Rubin, Rich, Nick và Chris White thành lập công
ty Android, Inc tại Palo Alto, California, chuyên nghiên cứu phát triển phầnmềm trên di động
Tháng 8 năm 2005, Google mua Android, Inc các nhà sáng lập Android, Inc
về làm việc Google Nhóm do Rubin đứng đầu đã phát triển một nền tảngthiết bị di động dựa trên hạt nhân Linux: Android
Tháng 9 năm 2010, Google nộp đơn xin cấp bằng sáng chế cho Android
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open HandsetAlliance), một liên minh công nghệ bao gồm nhiều công ty hàng đâu về phầncứng và phần mền được thành lập với mục đích phát triển các tiêu chuẩn mởcho thiết bị di động Android trở thành chuyển mở đầu tiên được công nhậnbởi liên minh này
Từ khi ra đời, Google đã phát hành 8 phiên bản của hệ điều hành Android Một sốphiên bản đang được phổ biến rộng rãi:
Phiên bản Tên mã Ngày ra mắt Tính năng cập nhật nổi bật
2.1 Eclair 01/2010 Thay đổi giao diện người dùng
Hỗ trợ HTML5 và Exchange ActiveSync 2.5
2.2 Froyo 05/2010 Tối ưu hóa toàn bộ về tốc độ, bộ nhớ,
Trang 292.3 Gingerbread 06/12/2010 Tinh chỉnh giao diện người dùng
Cải thiện tính năng của bàn phìm ảo vàchưng năng copy/paste
Hỗ trợ công nghệ kết nối và giao dịch Near-Field Communications
3.0 Honeycomb 22/02/2011 Phiên bản đặc biệt dành cho máy tính
bảng
Giao diện người dùng mới, tối ưu cho máy tính bảng
Hỗ trợ xử lý đã lõi và tăng tốc phần cứng đồ họa
Bảng 3.3 Các phiên bản của hệ điều hành Android
3.1.3 Tại sao lựa chọn Android
Android đang tiến tới trở thành hệ điều hành di động phổ biến nhất thế giới
o Có sự tham gia phát triển của một loạt các nhà sản xuất điện thoạithông minh hàng đầu, sản phẩm đa dạng, từ bình dân đến cao cấp.Hiện tại mỗi ngày có khoảng 350000 chiếc điện thoại Android đượckhích hoạt sử dụng
o Theo dự báo của Gartner, một công ty nghiên cứu thị trường uy tínhàng đầu tại Hoa Kỳ, trong năm 2011, Android sẽ đánh bại iOS để trởthành hệ điều hành smartphone phổ biến nhất thế giới và dự báo đến
2015, Android sẽ chiến xấp xỉ 50% thị phần
Hệ điều hành mã nguồn mở, được hỗ trợ bởi Google, tập đoàn công nghệhàng đầu thế giới Mã nguồn Android được công bố theo giấy phép Apache,các nhà phát triển có thể sử dụng lại mã nguồn này mà không nhất thiết phảiđưa ứng dụng của họ thành mã nguồn mở
Ngôn ngữ lập trình Java dễ phát triển, cộng đồng phát triển đông đảo Hiện tại có khoảng 200000 ứng dụng trên Android
Hệ điều hành smartphone (theo
thứ tự alphabet) Thị phần năm 2009 Thị phần năm 2010 Thị phần năm 2011 Thị phần năm 2015
được bán ra
172 triệu 297 triệu 468 triệu 631 triệu
Bảng 3.4.Thống kê và dự báo thị phần hệ điều hành smartphone 2009 - 2015
3.2 Kiến trúc chung của hệ điều hành Android
Kiến trúc của Android chia thành nhiều tầng, các thành phần cơ bản được mô
Trang 30Hình 3.8 Kiến trúc chung của hệ điều hành Android Nhân Linux
Android hiện tại được xây dựng dựa trên nhân Linux phiên bản 2.6 Trongkiến trúc của Android, nhân Linux đóng vai trò cung cấp các dịch vụ cơ bản nhưbảo mật, quản lý bộ nhớ, quản lý tiến trình, quản lý kế nối mạng và quản lý cácdriver Nhân linux, là phần trung gian giữa các phần cứng và các thành phần còn lạiAndroid
Android Runtime
Android Runtime bao gồm hai bộ phận: tập các thư viện cơ bản và máy ảoDalvik.Tập các thư viện cơ bản cung cấp hầu hết các chức năng của một thư việnlõi ngôn ngữ lập trình Java Google không sử dụng các thư viện Java của SunMicrosystems, tuy nhiên cấu trúc thư viện, tên lớp, tên các phương thức là hoàntoàn giống Mỗi ứng dụng trên Android đều chạy trên máy ảo Dalvik Máy ảoDalvik được Google thiết kế dành riêng cho các thiết vị di động, tối ưu về sử dụng
bộ nhớ và lượng pin tiêu thụ
Libraries
Libraries là một tập các thư viện được viết bằng ngôn ngữ C/C++ và đượcdùng bởi nhiều thành phần khác nhau của hệ thống Android Các nhà phát triển ứngdụng sử dụng các thư viện này thông qua Application Framework
Application Framework
Application Framework là một nền tảng mở được viết bằng Java bao gồmcác thành phần để các nhà phát triển sử dụng để xây dựng ứng dụng của mình
Application
Trang 31Tập các ứng dụng cơ bản được Android cung cấp sẵn bao gồm: email client,ứng dụng quản lý SMS, ứng dụng quản lý lịch biểu, ứng dụng bản đồ, trình duyệt,ứng dụng quản lý Contact Tất cả các ứng dụng đều được viết bằng ngôn ngữJava
Một ứng dụng Android thông thường nằm ở tầng Aplication, sử dụng các thưviện ở tầng Application Framework và chạy trên máy ảo Dalvik ở tầng AndroidRuntime Android là hệ điều hành đa nhiệm, trong cùng một thời điểm, có thể cónhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì có duy nhấtmột thực thể (instance) được phép chạy mà thôi Điều đó có tác dụng hạn chế sựlạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn
3.3 Các thành phần cơ bản của một ứng dụng trên hệ điều hành Android
Các ứng dụng trên Android được viết bằng ngôn ngữ lập trình Java Nhà pháttriển sử dụng công tụ Android SDK biên dịch mã nguồn Java cùng với các tàinguyên khác thành một file nén định dang apk Với duy nhất một file apk có thểcài đặt ứng dụng trên thiết bị Android Mỗi ứng dụng khai báo một số quyền màứng dụng đó cần phải có để hoạt động, ví dự như quyền kết nối internet, quyền ghifile, quyền tạo cuộc gọi v…v… Sau khi cài đặt ứng dụng chỉ được phép hoạt động
sử dụng trong phạm vi các quyền mà nó đã khai báo mà thôi
Mỗi ứng dụng Android chứa một hoặc nhiều thành phần trong những thànhphần cơ bản sau đây:
Activity: Tương ứng với một màn hình, thực hiện tương tác với người dùng
Service: Thực thi các công việc chạy ngầm, không tương tác với người dùng
Content provider: Quản lý, tổ chức chia sẻ dữ liệu chia sẻ bên trong và bênngoài ứng dụng
Broadcast receiver: Nhận các thông điệp được phát đi từ hệ thống hoặc từứng dụng khác
Mỗi thành phần này có một vài trò khác nhau bên trong ứng dụng Chúng có thểđược kích hoạt độc lập và hoạt động cùng với nhau để thực hiện chức năng tổng thểcủa cả ứng dụng Sau đây sẽ trình bày chi tiết về các thành phần này và cách kếthợp chúng để tạo hành ứng dụng hoàn chỉnh
3.3.1 Activity
Một activity tương ứng với một màn hình đơn trong giao diện người dùng,
có vai trò tương tác với người dùng Ví dụ một ứng dụng quản lý email có thể chứamột activity danh sách các email, một activity hiện thị nội dung email và mộtactivity tạo email mới
Để tạo một activity nhà phát triển kế thừa lớp Activity của thư viện Android
và thực thi các phương thức bên trong nó để tương tác với người dùng Mỗi phươngthức có thể thực thi bên trong lớp activity tương ứng với một sư thay đổi trạng thái
Trang 32Vòng đời của activity
Các activity được quản ký trong ngăn xếp Khi một activity mới bắt đầu, nóđược đặt lên đầu ngăn xếp và trở thành activity đang chạy Các activity trước đóđược giữ ở tầng dưới của ngăn xếp và chỉ trở lại khi activity đang chạy bị hủy bỏ.Một activity có thể ở một trong bốn trạng thái:
Trạng thái đang chạy: activity đang ở trên đỉnh của stack, đang tương tác vớingười dùng
Trạng thái tạm dừng: activity vẫn đang ở trên đỉnh của stack nhưng khôngtương tác với người dùng, chẳng hạn đang có một dialog pop-up đang hiểnthị bên trên activity đó
Trạng thái dừng: activity bị các activity khác đẩy xuống các tầng dưới củastask Khi đó activity không tương tác với người dùng, trạng thái của nóđược duy trì, tuy nhiên các hoạt động, các thread sinh ra bởi nó có thể bị killbởi hệ điều hành để giải phóng tài nguyên
Trạng thái chấm dứt: activity ở trạng thái tạm dừng hoặc trạng thái dừng có thể bị hệ điều hành kill hoàn toàn để giải phóng tài nguyên Khi đó trạng tháicủa nó sẽ không được lưu lại và nó sẽ được khởi chạy lại từ đầu khi nó trở lạiđỉnh của ngăn xếp
Hình 3.2 mô tả vòng đời của một activity, tương ứng với một sự chuyển đổi
trạng thái thì có một phương thức của lớp Activity được gọi tới
Hình 3.9 Vòng đời của activity
Trang 33Chuyển đổi giữa các activity
Một ứng dụng có thể có nhiều activity Ứng dụng không chỉ sử dụng đượccác activity của nó mà còn có thể sử các activity của các ứng dụng khác nếu đượcphép và cũng có thể khai báo để các ứng dụng khác có thể sử dụng activity của nó.Đây là một đặc điểm quan trọng thể hiện tính tái sử dụng cao của hệ thống Android.Khi nhà phát triển cần thực hiện một công việc thông dụng nào đó, nhà phát triểnkhông cần thiết phải viết toàn bộ từ đầu mà có thể gọi đến một activity sẵn có, kếtquả của công việc sẽ được trả về cho ứng dụng Chẳng hạn, khi ứng dụng cần chứcnăng chụp ảnh, nhà phát triển không cần phải viết lại từ đầu activity để người dùngthao tác với camera, nhà phát triển chỉ cần gọi đến activity chụp ảnh của ứng dụngcamera sẵn có của Android mà thôi Sau khi ảnh được chụp, một đường dẫn đến fileảnh sẽ được trả lại cho activity của ứng dụng Android cung cấp sẵn rất nhiềuactivity hữu dụng như chụp ảnh, chọn ảnh trong galery, gửi email, tạo cuộc gọi v…v…
Để gọi một activity, nhà phát triển thực hiện các thao tác như sau
Tạo một đối tượng của lớp Intent, trong đó khai báo activity nào cần đượcgọi và tham số cần thiết khác
Gọi phương thức startActivity(Intent intent) hoặc
startActivityForResult(Intent, int) để gọi đến activity mới
Nhận kế quả trả về bằng cách thực thi phương thức onActivityResult(int, int,Intent)
Task và back-stack
Như đang trình bày ở trên, một ứng dụng có thể dùng nhiều activity, cácactivity được tổ chức trong ngăn xếp, mục này trình bày chi tiết về cách tổ chứcngăn xếp đó
Một task là một tập hợp các activity tương tác với người dùng để thưc hiệnmột nhóm công việc nào đó Các activity của một task được đặt vào một ngăn xếpback-stack theo thứ tự thời gian khởi tạo Activity Home của Android là nơi bắt đầucác task Từ Home, người dùng chọn chạy một ứng dụng nào đó, nếu ứng dụng đó
đã chạy thì task của ứng dụng đó được gọi ra, ngươc lại nếu chưa được chạy mộttask mới cho ứng dụng đó được tao
Bên trong một task, nếu activity hiện tại gọi đến một activity mới, activitymới sẽ được đặt trên đỉnh của ngăn xếp back-stack, activity cũ bị đẩy xuống bêndưới, trạng thái của nó được lưu lại Khi activity trên đỉnh của back-stack tự kếtthúc hoạt động hoặc người dùng nhấn vào phím BACK, activity trên đỉnh sẽ bị hủy,activity mới nhất ngay dưới nó trong stack sẽ được đẩy lên, khôi phục hoạt động vàtương tác với người dùng
Trang 34Hình 3.10 Ví dụ về hoạt động của một task và back-stack
Android hỗ trợ multitask, có thể có nhiều task hoạt động cùng một lúc Ví
dụ, khi người dùng đang chạy task A, người dùng nhấn phím HOME chọn và chạymột ứng dụng khác trên task B Khi đó task A không mất đi mà được đặt ở trạngthái background, task B đang thực thi và được đặt ở trạng thái foreground Ngườidùng có thể chuyển đổi qua lại giữa hai task A và B Hình 3.4 mô tả hai task A và Btrong đó task B đang thực hiện tương tác với người dùng
Hình 3.11 Ví dụ về multitask trong Android
3.3.2 Service
Service là một thành phần chạy ngầm, thực hiện các công việc độc lập vàkhông có giao diện người dùng, không có sự giao tiếp trực tiếp với người dùng Ví
dụ service chạy file âm thanh cho một ứng dụng hoặc service download lấy dữ liệu
từ mạng internet mà không làm ảnh hướng đến thao tác của người dùng trênactivity Các thành phần khác của ứng dụng Android có thể khởi chạy service và kếtnối và tương tác với service
Android cung cấp sẵn một số service thông dụng và nhà phát triển cũng cóthể viết service riêng của mình bằng cách viết lớp kế thừa từ lớp service củaAndroid
Trang 353.3.3 Content Provider
Content provier là thành phần đóng vai trò quản lý tập dữ liệu chia sẻ Dữliệu có thể lưu dười nhiều dạng khác nhau như file, lưu trong cơ sở dữ liệu SQLite,trên web hay bất kỳ hình thức lưu trữ nào khác nhưng ứng dụng truy cập, sử dụngnhững dữ liệu đó đều thông qua content provider Thông qua content provider dữliệu không chỉ sử dụng bên trong một ứng dụng mà có thể sử dụng chung, chia sẻcho các ứng dụng khác Ví dụ content provider về danh bạ điện thoại được publiccho nhiều ứng dụng khác nhau có thể dùng sử dụng đến
Các nhà phát triển có thể xây dựng content provider cho ứng dụng dụng củamình bằng cách kế thừa lớp ContentProvider của Android Khí kế thừa lớp này, nhàphát triển phải triển khai một tập các API được định nghĩa cho phép truy vấn đến dữliệu thông qua content provider Mỗi content provider bắt buộc có một URI, URIđóng vai trò như một địa chỉ để ứng dụng có thể truy vấn đề dữ liệu
Để thực hiện một truy vấn đến content provider cần có 3 yếu tố:
URI của content provider
Tên các trường dữ liệu muốn nhận
Kiểu dữ liệu của các trường đó
3.3.4 Broadcast receiver
Broadcast receiver là thành phần cho phép nhận các thông điệp broadcast từ
hệ thống hoặc từ ứng dụng khác Một vài về các thông điệp broadcast: thông điệp
về sự kiện tắt màn hình, thông điệp về có cuộc gọi đến, thông điệp về trạng thái pinsắp cạn v…v… Một ứng dụng cũng có thể phát ra một thông điệp broadcast đểthông báo cho các ứng dụng khác về một sự kiện nào đó Broadcast receiver thườngđược sử dụng để “nghe ngóng” sự kiện và khởi chạy một thành phần khác, chẳnghạn khi nhận được một broadcast về một sự kiện nào đó thì khởi chạy một activityhay một service
Các nhà phát triển có thể xây dựng broadcast receiver bằng cách kế thừa lớpBroadcastReceiver của Android và đăng ký với Android broadcast receiver đó lắngnghe sự kiện nào
3.3.5 Sự kết nỗi giữa các thành phần
Bốn thành phần cơ bản của một ứng dụng Android kết nối với nhau thôngqua bản tin đồng bộ là Intent Intent có thể dùng kế nối các thành phần bên trongứng dụng và cả bên ngoài ứng dụng
Khi một thành phần muốn gọi đến một thành phần nào khác, nó sẽ tạo mộtđối tượng của lớp Intent, trong đối tượng đó khai báo các thông tin về thành phầnđích cần gọi và các tham số liên quan đính kèm Đối tượng intent này được chuyểnđến hệ điều hành, hệ điều hành khởi chạy thành phần đích và truyền đối tượngintent cho thành phần đích
Trang 363.4 Xác định vị trí thiết bị trên môi trường di động
Với lớp LocationManager ứng dụng cho phép:
Lấy danh sách các LocationProvider mà hệ thống cung cấp, mỗi
LocationProvider tương ứng với một phương pháp xác định vị trí (GPS, ID)
Cell-Đăng ký/ hủy đăng ký nhận thông tin cập nhật từ các LocationProvider về ví trí hiện tại của thiết bị
3.5 Ứng dụng bản đồ trên di động Android
Hiện nay có hai dịch vụ bản đồ được sử dụng thông dụng là OpenStreetMap vàGoogle Maps Cả hai dịch vụ đều cung cấp miễn phí dịch vụ bản đồ dưới dạng API.Tuy nhiên các ứng dụng có sử dụng bản đồ trên Android thường sử dụng dịch vụcủa Google Maps vì những lý do sau:
Có thư viện Java do Google cung cấp dùng để đưa bản đồ Google Maps vàobên trong ứng dụng, nhà phát triển không phải gọi trực tiếp đến API
Các thao tác trên bản đồ: vẽ đường, đánh dấu điểm… dễ dàng hơn
Một số lớp quan trọng của thư viện Google Maps cho Android:
Lớp Mapview: Là một view hiển thị bản đồ
Lớp MapController: Lớp điều khiển Mapview: zoom, di chuyển bản đồ đếnmột vị trí nào đó
Lớp Overlay: Mỗi đối tượng của lớp Overlay tương ứng với một layer được
vẽ chồng lên trên bản đồ
3.6 Sử dụng web service trong ứng dụng di động Android
Một cách tổng quát, web service là một phương thức giao tiếp giữa hai thiết bịđiện tử trên môi trường mạng, thông qua một giao diện được mô tả trước
Có hai lớp web service lớn:
Representational State Transfer (REST): Mục đích chính là cho phépthực hiện các thao tác (truy vấn, thêm, sửa xóa) từ xa với một tài nguyên(resource) nào đó
Arbitrary Web services: Mục đích chính là thực hiện một tập các côngviệc nào đó theo yêu cầu
Do tính chất yêu cầu của web service cho mạng xã hội chủ yếu là truy vấn,thêm sửa xóa thông tin nên REST thường được sử dụng Trong phạm vi của đồ ánchỉ giới hạn thao tác với web service dạng REST mà thôi
REST cung cấp khả năng thao tác (POST, GET, PUT, DELETE) với tàinguyên thông qua các Web API Web API thường là một tập các truy vấn HTTP