Thông tin tài liệu
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
VŨ TRỤ
THU THẬP, PHÂN TÍCH HÀNH VI VÀ THÓI QUEN
NGƯỜI SỬ DỤNG THIẾT BỊ DI ĐỘNG ANDROID
CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN
MÃ SỐ: 60.48.01.04
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2013
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS. Nguyễn Khanh Văn
Phản biện 1: ………………………………………………………
Phản biện 2: ………………………………………………………………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
1
M U
Ngày nay, điện thoại di động được áp dụng các công nghệ cao và hiện đại phát triển
một cách mạnh mẽ, tăng trưởng một cách không ngừng. Điện thoại di động trở thành một
nhu cầu thiết yếu cho con người. Điện thoại di động có tính tiện lợi cao, có thể sử dụng mọi
lúc mọi nơi. Điện thoại di động càng ngày càng "thông minh" với nhiều chức năng và dịch
vụ rất hấp dẫn đã được tích hợp rất nhiều tiện ích để đáp ứng cho con người trọng mọi lĩnh
vực. Trong số các công nghệ dành cho các loại điện thoại di động thì công nghệ Android là
một công nghệ mạnh mẽ, được ứng dụng phát triển rộng rãi và chọn làm nền tảng phát triển
di động cho nhiều hãng di động khác nhau. Android là hệ điều hành trên điện thoại di động
(và hiện nay là cả trên một số đầu phát HD, HD Player, TV) phát triển bởi Google và dựa
trên nền tảng Linux.
Các ứng dụng và dịch vụ dành cho điện thoại di động liên tục phát triển và gia tăng
không ngừng. Do sự dư thừa thông tin và quảng cáo, người sử dụng có thể gặp khó khăn khi
phải chọn lựa, sàng lọc ra thông tin tốt, hợp lý nhất phục vụ cho công việc hoặc sự giải trí
của mình. Để hỗ trợ người sử dụng một cách tốt nhất cần có phần mềm thu thập thu thập tất
cả các hành vi và thói quen của người sử dụng trên các ứng dụng, dịch vụ dành cho điện
thoại di động. Sau khi thu thập tất cả các hành vi và thói quen của người sử dụng trong các
khoảng thời gian định kì sẽ tiến hành phân tích các hành vi, thói quen người sử dụng mục
đích để nắm bắt nhu cầu sử dụng, sở thích, thói quen của người sử dụng để chúng ta có thể
tạo ra các sản phẩm, các dịch vụ, phục vụ cho người sử dụng tốt hơn nữa. Đồng thời phần
mềm cũng hỗ trợ đưa ra những gợi ý tư vấn cho sự lựa chọn các ứng dụng và dịch vụ phù
hợp nhất cho người sử dụng. Đây chính là những lý do để tôi chọn đề tài “Thu th
i s dng thit b ng Android”. Nội dung của luận
văn nghiên cứu, và phát triển được trình bày thông qua bốn chương:
- Chương 1: Nền tảng công nghệ Android cho thiết bị di động.
- Chương 2: Một số Cơ sở lý thuyết liên quan.
- Chương 3: Khảo sát các phương pháp, công cụ hỗ trợ nhận dạng hành vi, thói quen
người sử dụng thiết bị di động Android.
- Chương 4: Xây dựng ứng dụng thu thập, Phân tích hành vi và thói quen người sử
dụng thiết bị di động Andriod.
2
CHƯƠNG 1. NN TNG C ANDROID CHO THIT
B NG
1.1. Tngh Android
1.1.1. c lch s Android
Android là một hệ điều hành mở phát triển dựa trên nền tảng Linux dành cho các
Thiết bị di động cảm ứng. Công nghệ Android đầu tiên được nghiên cứu bởi tổng công ty
Android với sự hỗ trợ đầu tư của Google. Ngày 17 tháng 8 năm 2005, Google mua lại tổng
công ty Android biến nó thành một bộ phận trực thuộc của mình. Ngày 5 tháng 11 năm
2007, Một hiệp hội các công ty lớn trên thế giới về viễn thông, phần cứng, phần mềm cho
thiết bị di động thành lập ra Liên minh thiết bị cầm tay mở (Open Handset Alliance) với
mục đích phát triển các tiêu chuẩn mở cho di động. Cùng ngày này, google cũng ra mắt sản
phẩm đầu tiên là một nền tảng thiết bị di động được xây dựng trên nhân Linux 2.6.
ng m
(Nguồn: Bài báo “Lịch sử hệ điều hành Android - Trần Quỳnh Hương” [1])
Ngày 22 tháng 10 năm 2008 Chiếc điện thoại Android đầu tiên HTC Dream được
bán ra. Từ năm 2008, Hệ điều hành Android đã trải qua nhiều lần cập nhật, sửa các lỗi, bổ
xung thêm tính năng mới. Mỗi phiên bản đều được đặt tên lần lượt theo thứ tự bảng chữ cái
theo tên các món ăn tráng miệng: phiên bản 1.5 cupcate, phiên bản 4.2 Jelly Bean.
3
1.2. m Android
Android là hệ điều hành mở được Google phát triển dành cho thiết bị di động. Các
nhà phát triển có thể sử dụng tất cả tính năng của hệ điều hành Android để tạo ra các ứng
dụng di động. Android được xây dựng trên nhân Linux mở. Hơn nữa, nó sử dụng một máy
ảo tuỳ chỉnh được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng trong một môi
trường di động. Để phục vụ cho việc phát triển và sáng tạo các ứng dụng và dịch vụ Google
đã đưa ra bộ công cụ Android SDK cung cấp các công cụ và bộ thư viện các hàm API cần
thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lập trình java.
1.2.1. Ki
Mô hình kiến trúc sau thể hiện các thành phần của hệ điều hành Android:
n tng Android
(Nguồn: Bài báo “Lịch sử hệ điều hành Android - Trần Quỳnh Hương” [1])
- Applications: Tầng này tích hợp sẵn một số ứng dụng cơ bản cần thiết dành cho
thiết bị di động như danh bạ điện thoại, gọi điện thoại, Tin nhắn SMS, trình duyệt
web và một số ứng dụng khác. Người sử dụng có thể tích hợp các ứng dụng của hãng
thứ 3 viết bằng ngôn ngữ java vào tầng này.
4
- Application Framwork: Tầng này của hệ điều hành Android cung cấp một nền tảng
phát triển ứng dụng mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra
các ứng dụng vô cùng sáng tạo và phong phú.
- Libraries: là lớp chứa các thư viện native Android. Các thư viện chia sẻ tất cả được
viết bằng C, C + +, mục đích biên dịch cho các kiến trúc phần cứng đặc biệt được sử
dụng cho điện điện thoại.
- Android Runtime: Android bao gồm một tập hợp các thư viện lõi cung cấp hầu hết
các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java. Tất cả các
ứng dụng Android sẽ có một thể hiện riêng trên máy ảo Dalvik. Máy ảo Dalvik đã
được viết để một thiết bị có thể chạy nhiều máy ảo cùng lúc có hiệu quả và nó thực
thi các file có định dạng (. dex) mục đích tối ưu hóa cho bộ nhớ và sử dụng tối thiểu
bộ nhớ.
- Linux Kernel: Android dựa trên Linux phiên bản 2.6 cho hệ thống cốt lõi dịch vụ
như an ninh, quản lý bộ nhớ, quản lý tiến trình, Network stack, Driver model. Kernel
cũng hoạt động như một tầng trừu tượng giữa phần cứng và phần còn lại của ngăn
xếp phần mềm.
1.2.2. trin ng dng
1.2.2.1. Ngôn ngữ lập trình
Để phát triển các ứng dụng một cách đơn giản và dễ tiếp cận, Google đã sử dụng
ngôn ngữ java làm ngôn ngữ lập trình chính thức của Android. Ngôn ngữ lập trình java cho
android là ngôn ngữ được cải tiến, tinh chỉnh cho phù hợp nền tảng Android. Ứng dụng java
là ứng dụng “Viết một lần, chạy mọi nơi” nên cần phải có môi trường máy ảo để chạy ứng
dụng. Google đã tinh chỉnh, cải tiến từ máy ảo JDK để phát triển thành máy ảo Dalvik của
hệ điều hành Android mục đích để biên dịch mã Java với tốc độ biên dịch nhanh hơn và nhẹ
hơn.
1.2.2.2. Môi trường lập trình cho Android
Google cung cấp công cụ phát triển ứng dụng Android SDK, là một công cụ giả lập
thiết bị ảo Android hỗ trợ để test và debug các lỗi của ứng dụng Android. Môi trường lập
trình (IDE) chính thức của Android là Eclipse (từ phiên bản 3.2) với sự hỗ trợ của plugin
5
Android Development Tools (ADT). Ứng dụng Android được đóng gói thành các file .apk
và đuợc lưu trong thư mục /data/app của hệ điều hành Android.
1.3. phn bn ca ng dng Android
1.3.1. Activity
Một Activity là một thành phần ứng dụng cung cấp một màn hình mà người dùng có
thể tương tác để làm điều gì đó, chẳng hạn như quay số điện thoại, chụp ảnh, gửi email,
hoặc xem bản đồ. Mỗi Activity được đưa ra một cửa sổ trong đó vẽ ra giao diện người dùng
của nó. Cửa sổ thường lấp đầy màn hình, nhưng nó có thể là nhỏ hơn so với màn hình và
hiển thị lên trên các cửa sổ khác.
1.3.1.1. Vòng đời của một Activity
Một Activity có 4 trạng thái:
- Active hay Running: Khi một Activity đang chạy trên màn hình. [5]
- Paused: Khi một Activity vẫn đang chạy trên màn hình nhưng đang bị một Activity
trong suốt (transparent) hay nó bị chiếm toàn màn hình hiển thị phía trên. Tuy vẫn
lưu trữ dữ liệu, nhưng các paused Activity này sẽ bị hệ thống bắt chấm dứt khi đang
thiếu bộ nhớ trầm trọng. [5]
- Stopped: Khi một Activity bị che khuất hoàn toàn bởi một Activity khác (Activity
này đang ở chế độ background). Ở trạng thái Stoped, Activity vẫn tồn tại có nghĩa
đối tượng Activity vẫn giữ lại trọng bộ nhớ, duy trì trạng thái và thông tin thành viên
của nó. Tuy nhiên các stopped Activity này sẽ thường xuyên bị hệ thống bắt chấm dứt
giải phóng bộ nhớ để cấp bộ nhớ cho các tiến trình khác. [5]
- Killed hay Shut down: Khi một Activity đang paused hay stopped, hệ thống sẽ xóa
Activity ấy ra khỏi bộ nhớ. Nhà phát triển ứng dụng có cài đặt phương thức finish()
trước khi bị xóa khỏi bộ nhớ. [5]
1.3.1.2. Intent
Ba trong số các thành phần cốt lõi của một ứng dụng: Activities, Services và
Broadcast Receivers được kích hoạt thông qua message, gọi là Intent. Một đối tượng intent
là một cấu trúc dữ liệu thụ động nắm giữ một mô tả trừu tượng của một hoạt động được
6
thực hiện hoặc trong trường hợp Broadcasts, nó là một mô tả về một cái gì đó đã xảy ra và
đã được công bố.
1.3.2. Service
1.3.2.1. Định nghĩa Service
Một Service là một component của ứng dụng có thể thực hiện các hoạt động trong
một thời gian dài ở chế độ background và không cung cấp một giao diện người dùng. Một
component ứng dụng có thể bắt đầu một Service và nó sẽ tiếp tục chạy ở chế độ background
ngay cả khi người dùng chuyển sang một ứng dụng khác. Ngoài ra, một Component có thể
liên kết với một Service tương tác với nó và thậm chí thực.
1.3.2.2. Vòng đời của 1 Service
Một Service có các phương thức callback vòng đời mà ứng dụng có thể thực hiện để
theo dõi những thay đổi trong trạng thái của service và ứng dụng có thể thực hiện công việc
ở giai đoạn thích hợp.
1.3.3. BroadcastReceiver
Broadcast Reciever chỉ đơn giản là phản ứng tin nhắn broadcast từ các ứng dụng
khác hoặc từ hệ thống chính nó. Có hai bước quan trọng để tạo ra BroadcastReceiver cho hệ
thống Broadcast intent:
- Tạo ra các Broadcast Reciever bằng cách kế thừa BroadcastReciever.
- Đăng ký Broadcast Reciever bằng hai cách sử dụng Context.registerReceiver() hay
thông qua tag <receiver> trong file AndroidManifest.xml.
1.3.4. Content Provider
Là nơi lưu trữ và cung cấp cách truy cập dữ liệu do các ứng dụng tạo nên. Đây là
cách duy nhất mà các ứng dụng có thể chia sẻ dữ liệu của nhau. Android cung cấp sẵn
Content Providers cho một số kiểu dữ liệu thông dụng như âm thanh, video, thông tin số
điện thoại, Người lập trình cũng có thể tự tạo ra các class con (subclass) của Content
Provider để lưu trữ kiểu dữ liệu của riêng mình.
7
1.3.5. Shared preferences
Shared preferences sử dụng key/value hệ thống để save/retrieve dữ liệu. Đây là, tất cả
các dữ liệu đơn giản sẽ có một khóa duy nhất trong Shared preferences. Bằng cách sử dụng
khóa này, giá trị đã lưu trước đó, ngay cả những ứng dụng đã bị hủy và khởi động lại một
lần nữa nó sẽ được phục hồi. Trong trường hợp giá trị yêu cầu chưa được thiết lập một giá
trị mặc định sẽ được trả lại. Nếu dữ liệu có lưu trữ theo cấu trúc với số lượng lớn thì không
nên sử dụng nên sử dụng lưu trữ với database (sqlite).
1.3.6. LogCats
LogCats là phương pháp được sử dụng trên các thiết bị dựa trên Android để hiển thị
các thông điệp hoặc các bản ghi tương tự như các câu lệnh System.out.println() của Java. Để
gọi nó, các lập trình viên có thể viết in mã code trong bất kỳ nơi mã code tồn tại. Điều quan
trọng là đề cập đến những thông báo hoặc các log có thể được chụp và xử lý bởi bất kỳ
chương trình nào đang chạy trong Android, bởi vì nó là cơ sở của chương trình thực hiện
cho dự án này.
1.3.7. nhn messages trong Andriod
Bên cạnh các phương pháp broadcast receiver, cách khác để giao tiếp trong Android
đang sử dụng các messages và Handlers.
Nhận message này phải cài đặt các phương thức xử lý (handler). Các phương thức xử
lý là tiến trình đó liên tục lặp lại kiểm tra các nội dung của hàng đợi message và bộ lọc
message. Bởi vì sự lặp lại này, khi phương thức xử lý không được cài đặt trong các Activity
nó đã được cài đặt trong thread khác.
1.4. t
Android có xây dựng trên nhân Linux nên nó thừa hưởng được những đặc tính quý
của Linux, nhất là về độ bảo mật và hiệu năng hoạt động cao. Không những thế, nhân Linux
để phát triển cho Android đã được tối ưu và cải thiện để phù hợp với hệ thống điện thoại
nên nó có khả năng tùy biến, tương thích cao với nhiều mẫu điện thoại của nhiều hãng khác
nhau. Android là hệ điều hành đa nhiệm một người dùng. Tính đa nhiệm cho phép cùng một
thời gian, người dùng có thể chạy được nhiều ứng dụng để làm được nhiều việc khác nhau.
Tuy nhiên, mỗi ứng dụng trên Android thì chỉ được phép chạy với một thực thể mà thôi.
8
CHƯƠNG 2. MT S Y
2.1. Bo mt ng dng Android.
Khi Chúng ta phát triển các ứng dụng Android, Chúng ta phải giải quyết một số khía
cạnh liên quan đến bảo mật, bao gồm cả các quy trình ứng dụng và các hộp cát (sandbox -
hộp dùng để thử nghiệm và phát triển phần mềm), chia sẻ mã và dữ liệu, bảo vệ hệ thống
thông qua việc ký các ứng dụng và sử dụng các quyền hạn. Hệ điều hành android sử dụng
một vài phương pháp bảo mật cho thiết bị của người sử dụng. Chúng ta sẽ miêu tả các tính
năng bảo mật ảnh hưởng đến ứng dụng một cách trực tiếp.
c bo mt hing dng Android.
(Nguồn: Bài báo “Understanding security on Android- IBM” [6])
2.1.1. quyn Android
Phân quyền là một cơ chế bảo mật của nền tảng Android để cho phép hoặc hạn chế
ứng dụng truy cập đến các API và các tài nguyên bị hạn chế. Theo mặc định, các ứng dụng
Android không được cấp các phân quyền nào, làm cho chúng an toàn bằng cách không cho
phép chúng truy cập vào các API được bảo vệ hoặc các tài nguyên trên thiết bị. Ứng dụng
phải yêu cầu các phân quyền thông qua manifest.xml file và người dùng cấp hoặc không cấp
các phân quyền trong khi cài đặt. Để yêu cầu cấp phân quyền, hãy khai báo một thuộc
tính <user-permission> trong manifest.xml file:
[...]... thống thu thập hành vi thói quen của người sử dụng thiết bị di động Android và chỉ ra các phương pháp để thu thập được một số tập dữ liệu hành vi, thói quen thông dụng của người sử dụng thiết bị di động Android Đây là một hệ thống tự động bao gồm một ứng dụng trên Android Client và một ứng dụng trên server 3.2 Thiết kế và cài đặt ứng dụng 3.2.1 Kiến trúc hệ thống Kiến trúc hệ thống của ứng dụng thu thập... cho tất cả người dùng của nền tảng này 12 CHƯƠNG 3 KHẢO SÁ CÁC PHƯƠNG PHÁP, CÔNG CỤ HỖ TRỢ NHẬN DẠNG HÀNH VI HÓI QUEN NGƯỜI SỬ DỤNG THIẾT BỊ DI ĐỘNG ANDROID 3.1 Tổng quan về hệ thống thu thập, phân tích hành vi và thói quen Sau khi tìm hiểu về công nghệ Android kết hợp với một số khảo sát nghiên cứu về các phương pháp, công cụ hỗ trợ nhận dạng hành vi thói quen người sử dụng thiết bị di động Android, ... cứu các thu t toán phân tích dữ liệu và cách tổ chức lưu trữ dữ liệu trên server, phân loại sở thích, hành vi của người sử dụng theo các nhóm để dự đoán, tính toán về mức độ thích một dịch vụ hay một loại sản phẩm nào đó Tạo ra tính tiện ích giữa người sử dụng với các dịch vụ của ứng dụng 24 KẾT LUẬN Mục đích của đề tài là thu thập, phân tích hành vi và thói quen người sử dụng thiết bị di động Android. .. Kiến trúc hệ thống của ứng dụng thu thập và phân tích hành vi và thói quen người sử dụng android được mô tả trong hình 3.1 Bao gồm hai phần chính là client và server Hình 3.1: Kiến trúc hệ thống thu thập và phân tích hành vi, thói quen 3.2.2 Thành phần của thu thập dữ liệu 3.2.2.1 Content observers 13 Content observers là cơ chế khi kết hợp với các content provider, nhận thông báo khi tập dữ liệu đích... đồng Android để thiết kế và thực hiện thu thập thông tin về hành vi, thói quen người sử dụng thiết bị Android trong môi trường doanh nghiệp mà không cần quyền root Ứng dụng là giải pháp mã nguồn mở Tuy nhiên, nó đòi hỏi phải nghiên cứu thêm và cải tiến để mở rộng số lượng các tập hợp dữ liệu thu thập Các dữ liệu được thu thập bởi ứng dụng sẽ có ích cho vi c tạo ra các dịch vụ và ứng dụng có ích cho người. .. của phương thức Android. GetAccounts() Yêu cầu duy nhất để sử dụng phương thức này là cần phân quyền android. permission.GET_ACCOUNTS trong AndroidManifest 3.2.5.8 Device ID Một ID thiết bị là một định danh duy nhất để phân biệt thiết bị Android này với thiết bị android trong ứng dụng server Ứng dụng sử dụng một Alarm được gọi là phương thức getDeviceId( ) từ lớp TelephonyManager API Android để truy... dữ liệu thu thập Để thu n tiện cho vi c phân tích dữ liệu cho từng người sử dụng Hệ thống sẽ yêu cầu người sử dụng phải thực hiện login mới sử dụng được hệ thống (Hoặc có thể tạo ra tài 18 khoản mặc định dựa vào tài khoản mail của người sử dụng trên thiết bị Android) Mỗi một bộ dữ liệu từ client truyền tới server bao gồm các thông tin có cấu trúc chung như sau: - dataId: Là id của bộ dữ liệu thu thập... có ích cho người sử dụng Chương này giới thiệu một danh sách các bộ dữ liệu có sẵn thông qua các Android API mặc định cho các nhà nghiên cứu và các nhà phát triển để tham khảo 19 CHƯƠNG 4 XÂY DỰNG ỨNG DỤNG THU THẬP, PHÂN ÍCH HÀNH VI VÀ HÓI QUEN NGƯỜI SỬ DỤNG THIẾT BỊ ANDROID 4.1 Tổng quan về ứng dụng Do phạm vi nghiên cứu đề tài luận văn trong thời gian ngắn hạn, nên Tôi xây dựng ứng dụng chỉ mang tính... khác nhau - app_name: Tên ứng dụng hoặc đường dẫn đặc trưng của package ứng dụng - behavior_date: Thời điểm mà xảy ra hành vi người sử dụng - collect_date: Thời điểm tiến hành thu thập dữ liệu 3.3.2 Phân loại bộ dữ liệu thu thập hành vi Dựa vào trường dataId của gói tin dữ liệu từ client truyền về server ta dễ dàng phân loại được các loại dữ liệu về hành vi của người sử dụng Thông qua các đặc điểm của... được Ứng dụng gồm hai phần: ứng dụng trên Client và ứng dụng trên hệ thống Server Ứng dụng trên Client làm nhiệm vụ thu thập dữ liệu, lọc dữ liệu và để định kỳ gửi về server Dữ liệu ở Client thu thập được bao gồm các dữ liệu thu thập khi thao tác với web, Dữ liệu thu thập khi ứng dụng chạy trên thiết bị di động Android Ứng dụng trên server nhận dữ liệu gửi về từ client và lưu trữ dữ liệu vào Database . dạng hành vi, thói quen
người sử dụng thiết bị di động Android.
- Chương 4: Xây dựng ứng dụng thu thập, Phân tích hành vi và thói quen người sử
dụng thiết. hành vi thói quen người sử dụng thiết bị di
động Android, Tôi xin đưa ra ý tưởng về một hệ thống thu thập hành vi thói quen của người
sử dụng thiết bị
Ngày đăng: 17/02/2014, 09:45
Xem thêm: Thu thập, phân tích hành vi và thói quen người sử dụng thiết bị di động ANDROID, Thu thập, phân tích hành vi và thói quen người sử dụng thiết bị di động ANDROID