Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
0,98 MB
Nội dung
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 hồ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 bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thông Vào lúc: ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện Học viện Công nghệ Bưu Viễn thơng MỞ ĐẦU Ngày nay, điện thoại di động áp dụng công nghệ cao đại phát triển cách mạnh mẽ, tăng trưởng cách không ngừng Điện thoại di động trở thành nhu cầu thiết yếu cho người Điện thoại di động có tính tiện lợi cao, sử dụng lúc nơi Điện thoại di động ngày "thông minh" với nhiều chức dịch vụ hấp dẫn tích hợp nhiều tiện ích để đáp ứng cho người trọng lĩnh vực Trong số công nghệ dành cho loại điện thoại di động cơng nghệ Android công nghệ mạnh mẽ, ứng dụng phát triển rộng rãi chọn làm tảng phát triển di động cho nhiều hãng di động khác Android hệ điều hành điện thoại di động (và số đầu phát HD, HD Player, TV) phát triển Google dựa tảng Linux Các ứng dụng dịch vụ dành cho điện thoại di động liên tục phát triển gia tăng không ngừng Do dư thừa thông tin quảng cáo, người sử dụng gặp khó khăn phải chọn lựa, sàng lọc thông tin tốt, hợp lý phục vụ cho công việc giải trí Để hỗ trợ người sử dụng cách tốt cần có phần mềm thu thập thu thập tất hành vi thói quen người sử dụng ứng dụng, dịch vụ dành cho điện thoại di động Sau thu thập tất hành vi thói quen người sử dụng khoảng thời gian định kì tiến hành phân tích 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 người sử dụng để tạo sản phẩm, dịch vụ, phục vụ cho người sử dụng tốt Đồng thời phần mềm hỗ trợ đưa gợi ý tư vấn cho lựa chọn ứng dụng dịch vụ phù hợp cho người sử dụng Đây lý để tơi chọn đề tài “Thu thập, phân tích hành vi thói quen người sử dụng thiết bị di động Android” Nội dung luận văn nghiên cứu, phát triển 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 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 thói quen người sử dụng thiết bị di động Andriod CHƯƠNG NỀN TẢNG CÔNG NGHỆ ANDROID CHO THIẾT BỊ DI ĐỘNG 1.1 Tổng quan công nghệ Android 1.1.1 Sơ lược lịch sử công nghệ Android Android hệ điều hành mở phát triển dựa tảng Linux dành cho Thiết bị di động cảm ứng Công nghệ Android nghiên cứu tổng công ty Android với hỗ trợ đầu tư Google Ngày 17 tháng năm 2005, Google mua lại tổng cơng ty Android biến thành phận trực thuộc Ngày tháng 11 năm 2007, Một hiệp hội công ty lớn giới viễn thông, phần cứng, phần mềm cho thiết bị di động thành lập Liên minh thiết bị cầm tay mở (Open Handset Alliance) với mục đích phát triển tiêu chuẩn mở cho di động Cùng ngày này, google mắt sản phẩm tảng thiết bị di động xây dựng nhân Linux 2.6 Hình 1.1: Các thành viên “Liên minh di độ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 HTC Dream bán Từ năm 2008, Hệ điều hành Android trải qua nhiều lần cập nhật, sửa lỗi, bổ xung thêm tính Mỗi phiên đặt tên theo thứ tự bảng chữ theo tên ăn tráng miệng: phiên 1.5 cupcate, phiên 4.2 Jelly Bean 1.2 Khái niệm Android Android hệ điều hành mở Google phát triển dành cho thiết bị di động Các nhà phát triển sử dụng tất tính hệ điều hành Android để tạo ứng dụng di động Android xây dựng nhân Linux mở Hơn nữa, sử dụng máy ảo tuỳ chỉnh thiết kế để tối ưu hóa nhớ tài nguyên phần cứng môi trường di động Để phục vụ cho việc phát triển sáng tạo ứng dụng dịch vụ Google đưa công cụ Android SDK cung cấp công cụ thư viện hàm API cần thiết để phát triển ứng dụng cho tảng Android sử dụng ngôn ngữ lập trình java 1.2.1 Kiến trúc Android Mơ hình kiến trúc sau thể thành phần hệ điều hành Android: Hình 1.2: Mơ hình kiến trúc tảng 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 tích hợp sẵn số ứng dụng cần thiết dành cho thiết bị di động danh bạ điện thoại, gọi điện thoại, Tin nhắn SMS, trình duyệt web số ứng dụng khác Người sử dụng tích hợp ứng dụng hãng thứ viết ngôn ngữ java vào tầng - Application Framwork: Tầng hệ điều hành Android cung cấp tảng phát triển ứng dụng mở qua cho phép nhà phát triển ứng dụng có khả tạo ứng dụng vô sáng tạo phong phú - Libraries: lớp chứa thư viện native Android Các thư viện chia sẻ tất viết C, C + +, mục đích biên dịch cho kiến trúc phần cứng đặc biệt sử dụng cho điện điện thoại - Android Runtime: Android bao gồm tập hợp thư viện lõi cung cấp hầu hết chức có sẵn thư viện lõi ngơn ngữ lập trình Java Tất ứng dụng Android có thể riêng máy ảo Dalvik Máy ảo Dalvik viết để thiết bị chạy nhiều máy ảo lúc có hiệu thực thi file có định dạng ( dex) mục đích tối ưu hóa cho nhớ sử dụng tối thiểu nhớ - Linux Kernel: Android dựa Linux phiên 2.6 cho hệ thống cốt lõi dịch vụ an ninh, quản lý nhớ, quản lý tiến trình, Network stack, Driver model Kernel hoạt động tầng trừu tượng phần cứng phần lại ngăn xếp phần mềm 1.2.2 Phát triển ứng dụng Android 1.2.2.1 Ngơn ngữ lập trình Để phát triển ứng dụng cách đơn giản dễ tiếp cận, Google sử dụng ngôn ngữ java làm ngơn ngữ lập trình thức Android Ngơn ngữ lập trình java cho android ngơn ngữ cải tiến, tinh chỉnh cho phù hợp tảng Android Ứng dụng java ứng dụng “Viết lần, chạy 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 hệ điều hành Android mục đích để biên dịch mã Java với tốc độ biên dịch nhanh nhẹ 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, công cụ giả lập thiết bị ảo Android hỗ trợ để test debug lỗi ứng dụng Android Mơi trường lập trình (IDE) thức Android Eclipse (từ phiên 3.2) với hỗ trợ plugin Android Development Tools (ADT) Ứng dụng Android đóng gói thành file apk đuợc lưu thư mục /data/app hệ điều hành Android 1.3 Các thành phần ứng dụng Android 1.3.1 Activity Một Activity thành phần ứng dụng cung cấp hình mà người dùng tương tác để làm điều đó, chẳng hạn quay số điện thoại, chụp ảnh, gửi email, xem đồ Mỗi Activity đưa cửa sổ vẽ giao diện người dùng Cửa sổ thường lấp đầy hình, nhỏ so với hình hiển thị lên cửa sổ khác 1.3.1.1 Vòng đời Activity Một Activity có trạng thái: - Active hay Running: Khi Activity chạy hình [5] - Paused: Khi Activity chạy hình bị Activity suốt (transparent) hay bị chiếm tồn hình hiển thị phía Tuy lưu trữ liệu, paused Activity bị hệ thống bắt chấm dứt thiếu nhớ trầm trọng [5] - Stopped: Khi Activity bị che khuất hoàn toàn Activity khác (Activity chế độ background) Ở trạng thái Stoped, Activity tồn có nghĩa đối tượng Activity giữ lại trọng nhớ, trì trạng thái thơng tin thành viên Tuy nhiên stopped Activity thường xuyên bị hệ thống bắt chấm dứt giải phóng nhớ để cấp nhớ cho tiến trình khác [5] - Killed hay Shut down: Khi Activity paused hay stopped, hệ thống xóa Activity khỏi nhớ Nhà phát triển ứng dụng có cài đặt phương thức finish() trước bị xóa khỏi nhớ [5] 1.3.1.2 Intent Ba số thành phần cốt lõi ứng dụng: Activities, Services Broadcast Receivers kích hoạt thông qua message, gọi Intent Một đối tượng intent cấu trúc liệu thụ động nắm giữ mô tả trừu tượng hoạt động thực trường hợp Broadcasts, mơ tả xảy công bố 1.3.2 Service 1.3.2.1 Định nghĩa Service Một Service component ứng dụng thực hoạt động thời gian dài chế độ background không cung cấp giao diện người dùng Một component ứng dụng bắt đầu Service tiếp tục chạy chế độ background người dùng chuyển sang ứng dụng khác Ngoài ra, Component liên kết với Service tương tác với chí thực 1.3.2.2 Vịng đời Service Một Service có phương thức callback vịng đời mà ứng dụng thực để theo dõi thay đổi trạng thái service ứng dụng thực cơng việc giai đoạn thích hợp 1.3.3 BroadcastReceiver Broadcast Reciever đơn giản phản ứng tin nhắn broadcast từ ứng dụng khác từ hệ thống Có hai bước quan trọng để tạo BroadcastReceiver cho hệ thống Broadcast intent: - Tạo Broadcast Reciever cách kế thừa BroadcastReciever - Đăng ký Broadcast Reciever hai cách sử dụng Context.registerReceiver() hay thông qua tag file AndroidManifest.xml 1.3.4 Content Provider Là nơi lưu trữ cung cấp cách truy cập liệu ứng dụng tạo nên Đây cách mà ứng dụng chia sẻ liệu Android cung cấp sẵn Content Providers cho số kiểu liệu thông dụng âm thanh, video, thông tin số điện thoại, Người lập trình tự tạo class (subclass) Content Provider để lưu trữ kiểu liệu riêng 1.3.5 Shared preferences Shared preferences sử dụng key/value hệ thống để save/retrieve liệu Đây là, tất liệu đơn giản có khóa Shared preferences Bằng cách sử dụng khóa này, giá trị lưu trước đó, ứng dụng bị hủy khởi động lại lần phục hồi Trong trường hợp giá trị yêu cầu chưa thiết lập giá trị mặc định trả lại Nếu liệu có lưu trữ theo cấu trúc với số lượng lớn khơng nên sử dụng nên sử dụng lưu trữ với database (sqlite) 1.3.6 LogCats LogCats phương pháp sử dụng thiết bị dựa Android để hiển thị thông điệp ghi tương tự câu lệnh System.out.println() Java Để gọi nó, lập trình viên viết in mã code nơi mã code tồn Điều quan trọng đề cập đến thơng báo log chụp xử lý chương trình chạy Android, sở chương trình thực cho dự án 1.3.7 ửi nhận messages Andriod Bên cạnh phương pháp broadcast receiver, cách khác để giao tiếp Android sử dụng messages Handlers Nhận message phải cài đặt phương thức xử lý (handler) Các phương thức xử lý tiến trình liên tục lặp lại kiểm tra nội dung hàng đợi message lọc message Bởi lặp lại này, phương thức xử lý không cài đặt Activity cài đặt thread khác 1.4 kết Android có xây dựng nhân Linux nên thừa hưởng đặc tính quý Linux, độ bảo mật hiệu hoạt động cao Không thế, nhân Linux để phát triển cho Android tối ưu cải thiện để phù hợp với hệ thống điện thoại nên có khả tùy biến, tương thích cao với nhiều mẫu điện thoại nhiều hãng khác Android hệ điều hành đa nhiệm người dùng Tính đa nhiệm cho phép thời gian, người dùng chạy nhiều ứng dụng để làm nhiều việc khác Tuy nhiên, ứng dụng Android phép chạy với thực thể mà CHƯƠNG MỘT SỐ CƠ SỞ LÝ HUYẾ LIÊN QUAN 2.1 Bảo mật ứng dụng Android Khi Chúng ta phát triển ứng dụng Android, Chúng ta phải giải số khía cạnh liên quan đến bảo mật, bao gồm quy trình ứng dụng hộp cát (sandbox hộp dùng để thử nghiệm phát triển phần mềm), chia sẻ mã liệu, bảo vệ hệ thống thông qua việc ký ứng dụng sử dụng quyền hạn Hệ điều hành android sử dụng vài phương pháp bảo mật cho thiết bị người sử dụng Chúng ta miêu tả tính bảo mật ảnh hưởng đến ứng dụng cách trực tiếp Hình 2.1: Các lĩnh vực bảo mật có lập trình ứng dụng Android (Nguồn: Bài báo “Understanding security on Android- IBM” [6]) 2.1.1 phân quyền Android Phân quyền chế bảo mật tảng Android phép hạn chế ứng dụng truy cập đến API tài nguyên bị hạn chế Theo mặc định, ứng dụng Android không cấp phân quyền nào, làm cho chúng an toàn cách không cho phép chúng truy cập vào API bảo vệ tài nguyên thiết bị Ứng dụng phải yêu cầu phân quyền thông qua manifest.xml file người dùng cấp không cấp phân quyền cài đặt Để yêu cầu cấp phân quyền, khai báo thuộc tính manifest.xml file: 10 Xác định tác giả mã Phát ứng dụng thay đổi Xây dựng tin cậy ứng dụng 2.1.4 Loại bỏ từ xa chuyển đổi (Remote kill switch) Các ứng dụng Google Play có khả loại bỏ từ xa ứng dụng từ thiết bị cầm tay người sử dụng ứng dụng vi phạm việc thỏa thuận phân phối phát triển sách chương trình phát triển Tuy nhiên loại bỏ từ xa hữu ích ứng dụng cài đặt thông qua thị trường Google Play Các ứng dụng cài đặt thơng qua kênh khơng thức khơng bị ảnh hưởng tính 2.1.5 Bảo vệ file hệ thống Android bảo vệ file hệ thống cốt lõi hệ điều hành cách lưu trữ chúng phân vùng có quyền đọc ổ đĩa cứng Ngồi ra, tính sandbox đề cập ngăn chặn ứng dụng cài đặt thiết bị truy cập file trừ file cố ý vô ý trưng bày nhà phát triển 2.1.6 Google Bouncer Bouncer kiểm tra ứng dụng chúng tải lên google play market để xác định ứng dụng có khả độc hại, chí tiến xa tạo mơ ứng dụng chạy thiết bị Android bắt hành vi ẩn 2.1.7 Rooting Android Có quyền truy cập root vào thiết bị Android hoạt động theo cách tương tự dựa tảng Unix khác nhau, so sánh với việc có quyền quản trị administrator máy tính sử dụng hệ điều hành windows Theo mặc định, người dùng thường xun khơng truy cập với tính thiết bị Android, khóa nhà cung cấp Một ứng dụng với quyền truy cập root thay thế, sửa đổi cài đặt ứng dụng muốn 11 2.2 Học Máy 2.2.1 Khái niệm học máy Học máy (machine learning) lĩnh vực trí tuệ nhân tạo liên quan đến việc nghiên cứu xây dựng kĩ thuật cho phép hệ thống "học" tự động từ liệu để giải vấn đề cụ thể Học máy tạo phương pháp chương trình máy tính giải vấn đề giống người Ví dụ hệ thống "học" cách phân loại thư điện tử xem có phải thư rác (spam) hay không tự động xếp thư vào thư mục tuơng ứng 2.2.2 Thuật toán K-Means Trong số thuật tốn phân nhóm tồn tại, thuật tốn k-means sử dụng rộng rãi Nó thuật tốn lặp tổ chức liệu số số k cụm Các liệu số, tập huấn luyện, tổ chức vectơ với kích thước với số tính đánh giá Thuật tốn K-means phân tích q trình phân cụm đơn giản nên áp dụng tập liệu lớn Tuy nhiên nhược điểm thuật toán áp dụng với liệu có thuộc tính số khám phá cụm có dạng hình cầu, K-means cịn nhạy cảm với nhiễu phần tử ngoại lai liệu Chất lượng thuật toán K-means phụ thuộc nhiều vào tham số đầu vào như: số cụm k k trọng tâm khởi tạo ban đầu 2.3 Tổng kết Android tảng di động đại thiết kế để thực mở Để bảo vệ giá trị, tảng phải cung cấp mơi trường ứng dụng để đảm bảo an tồn người sử dụng, liệu, ứng dụng, thiết bị, mạng Đảm bảo tảng mở đòi hỏi kiến trúc bảo mật mạnh mẽ chương trình an ninh nghiêm ngặt Android thiết kế với bảo mật đa tầng cung cấp linh hoạt cần thiết cho tảng mở, cung cấp bảo vệ cho tất người dùng tảng 12 CHƯƠNG 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 hệ thống thu thập, phân tích hành vi thói quen Sau tìm hiểu cơng nghệ Android kết hợp với số khảo sát nghiên cứu 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, Tôi xin đưa ý tưởng hệ thống thu thập hành vi thói quen người sử dụng thiết bị di động Android phương pháp để thu thập số tập liệu hành vi, thói quen thơng dụng người sử dụng thiết bị di động Android Đây hệ thống tự động bao gồm ứng dụng Android Client ứng dụng server 3.2 Thiết kế cài đặt ứng dụng 3.2.1 Kiến trúc hệ thống Kiến trúc hệ thống ứng dụng thu thập phân tích hành vi thói quen người sử dụng android mơ tả hình 3.1 Bao gồm hai phần client server Hình 3.1: Kiến trúc hệ thống thu thập phân tích hành vi, thói quen 3.2.2 Thành phần thu thập liệu 3.2.2.1 Content observers 13 Content observers chế kết hợp với content provider, nhận thông báo tập liệu đích thể dạng nội dung sở liệu SQLite sửa đổi Tuy nhiên, thông báo thời gian thực không chứa thông tin thay đổi Để có liệu có ý nghĩa từ content observers, bổ xung tiến trình xử lý phải nơi xác định nội dung thay đổi 3.2.2.2 Broadcast Receivers Broadcast Receivers xử lý trả lời broadcast messages toàn hệ thống Giống Content Observers, chúng liên quan đến thơng báo thời gian thực thiếu chi tiết nội dung 3.2.2.3 Alarms Alarms lên kế hoạch hoạt động cấu hình ứng dụng để truy vấn định kỳ content providers trực tiếp gọi phương thức Java tĩnh để đẩy liệu Chúng đáng tin cậy, thực thi vào thời gian định 3.2.2.4 Chiến lược thiết kế Một chiến lược thiết kế chung cho thành phần thu thập liệu ưu tiên áp dụng suốt phát triển ứng dụng, trình bày Broadcast ReceiversContent observersAlarms 3.2.2.5 Hệ thống lưu trữ liệu thu thập Tất liệu thu thập lưu trữ tạm thời sở liệu SQLite địa phương thiết bị 3.2.2.6 Data sender Dữ liệu không truyền liên tục tới ứng dụng tới server có kết nối wifi 3G, mà truyền định kỳ lần Mục đích để giảm tiêu tốn nguồn nguyên CPU 3.2.3 Ứng dụng server Ứng dụng server hệ thống thực chức năng: nhận liệu, lọc phân tích liệu sau kết lưu trữ vào hệ thống sở liệu Kết lưu trữ tạo tiền đề để phát triển ứng dụng khác sử dụng tùy theo mục đích 14 3.2.4 Event sender Event reciever Trên ứng dụng client Android cài đặt Event Receiver để nhận kiện hữu ích cho người sử dụng từ Event Sender ứng dụng server 3.2.5 Các liệu thu thập 3.2.5.1 App Installs and Removals Khi ứng dụng cài đặt gỡ bỏ, broadcast toàn hệ thống gửi qua thiết bị Android Các ứng dụng không cần phải khai báo phân quyền AndroidManifest nhận broadcast này, chúng phải đăng ký boadcast receiver phải gồm có intent-filters để xử lý kiện Intent.PACKAGE_ADDED Intent.PACKAGE_REMOVED 3.2.5.2 Browser Navigation History Uniform Resource Locators (URL) trang web truy cập thơng qua xây dựng trình duyệt Web Android thu thập thông qua Alarm Để tránh pin hiệu suất thiết bị xuống cấp Arlam lên kế hoạch cấu hình để theo mặc định thực truy vấn Content Provider URI: android.provider.Browser.BOOKMARKS_URI Content Provider có tùy chọn để truy cập đến trình duyệt thăm lịch sử URL, đếm số truy cập URL, lấy danh sách trang web đánh dấu Để truy cập vào liệu lịch sử trình duyệt, phân quyền com.android.browser.permission.READ_HISTORY_BOOKMARKS phải cài đặt AndroidManifest 3.2.5.3 Browser Searches Tìm kiếm trình duyệt thu thập ứng dụng thơng qua Alarm Tìm kiếm cấu hình để theo mặc định truy cập thông qua Content Provider URI: com.android.provider.Browser.SEARCHES_URI Truy cập vào nội dung yêu cầu phân quyền thu thập URL trình duyệt: com.android.browser.permission.READ_HISTORY_BOOKMARKS 3.2.5.4 Calendar Events Để thu thập calendar event sử dụng Alarm cấu hình đểmặc định 12 quét Content Provider URI: content:/ /com.android.calendar/event_entities cho kiện Truy 15 cập để thực hành động tập calendar event đòi hỏi phân quyền android.permission.READ_CALENDAR khai báo AndroidManifest 3.2.5.5 Call Logs Để đảm bảo việc bắt giữ tất gọi điện thoại mới, Content Observer cài đặt content provider URI: android.provider.CallLog.Calls.CONTENT_URI URI cho phép phát gọi đến, bỏ lỡ, số điện thoại bên ngoài, tên liên lạc, thời gian, ngày gọi bắt đầu Truy cập vào logs nội dung gọi điện thoại đòi hỏi phải có phân quyền android.permission.READ_CONTACTS thêm vào AndroidManifest 3.2.5.6 Contacts Added Thơng tin liên lạc theo dõi thay đổi điện thoại Android thông qua Content Observer Thu thập thông tin thêm số liên lạc điện thoại địi hỏi phải có phân quyền android.permission.READ_CONTACTS thêm vào AndroidManifest 3.2.5.7 Tài khoản thiết bị Tên tài khoản lấy vịng lặp thơng qua loạt đối tượng tài khoản thông qua AccountManager.get() API phương thức Android.GetAccounts() Yêu cầu để sử dụng phương thức cần phân quyền android.permission.GET_ACCOUNTS AndroidManifest 3.2.5.8 Device ID Một ID thiết bị định danh để phân biệt thiết bị Android với thiết bị android ứng dụng server Ứng dụng sử dụng Alarm gọi phương thức getDeviceId( ) từ lớp TelephonyManager API Android để truy cập trực tiếp ID thiết bị Phân quyền android.permission.READ_PHONE_STATE phải khai báo AndroidManifest cho ứng dụng để trích xuất ID thiết bị 3.2.5.9 GPS Location Để giảm thiểu vấn đề nghiên cứu này, phương thức getLastKnownLocation() sử dụng thông qua Alarm lên kế hoạch để thực lần theo mặc định Phương thức dựa việc sử dụng GPS kích hoạt trước vào thu thập khơng kích hoạt cung cấp định vị, tiết kiệm tuổi thọ pin thiết bị Truy cập vào 16 nhà cung cấp GPS yêu cầu phân quyền android.permission.ACCESS_FINE_LOCATION khai báo AndroidManifest 3.2.5.10 Location Provider Settings Changes Thiết bị Android bao gồm nhà cung cấp vị trí GPS nhà cung cấp vị trí mạng Các nhà cung cấp GPS nhận thơng tin cập nhật vị trí thơng qua vệ tinh, nhà cung cấp mạng lấy tập tọa độ thời thông qua điểm truy cập Wi-Fi tế bào(cell) di động Khi cài đặt thiết bị điều chỉnh tay để kích hoạt vơ hiệu hóa nhà cung cấp, hệ thống broadcast tạo Trong ứng dụng, broadcast receiver thành lập với intent-filter để xử lý intent LocationManager.PROVIDERS_CHANGED_ACTION Khơng có phân quyền u cầu AndroidManifest để truy cập thông tin 3.2.5.11 Message Service Ứng dụng khai báo Broadcast Receiver bao gồm intent-filters xử lý intent android.provider.Telephony.MMS_RECEIVED android.provider.Telephony.WAP_PUSH thông báo tin nhắn MMS đến Content Provider URI: content://mms chứa message ID, hướng (gửi đến gửi đi), ngày nhắn tin, ID luồng hội thoại, tiêu đề Content provider URI: content://mms/part có chứa tên file hình ảnh trường văn Nếu trường văn null, khơng có văn kèm với tin nhắn MMS Nếu trường văn trống, có có văn kèm với tin nhắn MMS Tuy nhiên, chế để truy cập vào nội dung văn tìm URI: content://mms-sms/conversations sử dụng để tìm địa số liên lạc (số điện thoại địa email) thông qua ID luồng hội thoại Các phân quyền cho yêu cầu cần thiết MMS tin nhắn thu AndroidManifest ứng dụng bao gồm android.permission.RECEIVE_MMS, android.permission.READ_CONTACTS, android.permission.RECEIVE_WAP_PUSH 3.2.5.12 Pictures Added Để đạt khả giám sát Pictures rộng hơn, sử dụng Content Observer thay cho Broadcast Receiver Content observer đăng ký Android Gallery’s content URI: android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI Kết thu thông báo thay đổi thêm picture sử dụng Content Observer, khơng bao 17 gồm thông tin thay đổi Gallery Sự thu thập khơng địi hỏi thêm phân quyền AndroidManifest để đạt quyền đọc truy cập tới nội dung 3.2.5.13 Screen Lock Status Broadcasts toàn hệ thống gửi hình Android trạng thái (ví dụ: mở khóa , khóa, trạng thái tắt) Để bắt giữ broadcasts thay đổi này, Broadcast Receiver phải thiết lập với tent-filters để xử lý: Intent.ACTION_USER_PRESENT, Intent.ACTION_SCREEN_ON Intent.ACTION_SCREEN_OFF Không cần bổ sung phân quyền Androidmanifest để truy cập thông tin 3.2.5.14 Short Message Service Broadcast Receivers cấu hình để lấy tin nhắn SMS không áp dụng cho tin nhắn gửi Tin nhắn gửi bắt giữ thông qua Content Observer đăng ký Content Provider URI không đặc tả Android SDK:content://sms Trong trường hợp tin nhắn SMS gửi đi, thông báo thay đổi tạo thơng qua Content Observer cho bước q trình truyền giao (ví dụ: message di chuyển từ trạng thái "draft "trạng thái "pending " trạng thái "sent") Khả thu thập thông tin tin nhắn SMS ứng dụng đòi hỏi phân quyền android.permission.RECEIVE_SMS, android.permission.READ_SMS, android.permission.READ_CONTACTS khai báo AndroidManifest 3.2.5.15 Third-Party App Logs Hệ thống log ứng dụng Android (android.util.Log) có sẵn cho ứng dụng Android sử dụng Các log ứng dụng mặc định lưu trữ tạm thời vòng đệm file thiết bị đặc trưng/dev/log/main Log đọc thơng qua cơng cụ có sẵn SDK Android tên logcat Ứng dụng gọi logcat thực thi chế độ runtime Ứng dụng phải có phân quyền android.permission.READ_LOGS khai báo AndroidManifest để truy cập vào tập liệu 3.3 Phân tích liệu thu thập 3.3.1 Cấu trúc chung gói tin liệu thu thập Để thuận tiện cho việc phân tích liệu cho người sử dụng Hệ thống yêu cầu người sử dụng phải thực login sử dụng hệ thống (Hoặc tạo tài 18 khoản mặc định dựa vào tài khoản mail người sử dụng thiết bị Android) Mỗi liệu từ client truyền tới server bao gồm thơng tin có cấu trúc chung sau: - dataId: Là id liệu thu thập - content: Đây cấu trúc liệu Tùy liệu khác mà cấu trúc liệu khác - app_name: Tên ứng dụng đường dẫn đặc trưng package ứng dụng - behavior_date: Thời điểm mà xảy hành vi người sử dụng - collect_date: Thời điểm tiến hành thu thập liệu 3.3.2 Phân loại liệu thu thập hành vi Dựa vào trường dataId gói tin liệu từ client truyền server ta dễ dàng phân loại loại liệu hành vi người sử dụng Thông qua đặc điểm trường content gói tin ta thiết kế bảng sở liệu cho phù hợp với liệu thu thập 3.3.3 Phân lớp liệu thu thập hành vi Sau liệu phân loại mục đích để sử dụng liệu thu thập cách dễ dàng Áp dụng thuật toán K-Mean phân lớp liệu thu thập tạo thành nhóm liệu ví dụ nhóm liệu thời trang, giải trí, thể thao, xã hội Do thời gian có nghiên cứu ngắn nên hướng mở để tương lai tiếp tục phát triển 3.4 Tổng kết Hệ thống giới thiệu luận văn phục vụ mơ hình tham khảo cho cộng đồng Android để thiết kế thực thu thập thông tin hành vi, thói quen người sử dụng thiết bị Android môi trường doanh nghiệp mà không cần quyền root Ứng dụng giải pháp mã nguồn mở Tuy nhiên, địi hỏi phải nghiên cứu thêm cải tiến để mở rộng số lượng tập hợp liệu thu thập Các liệu thu thập ứng dụng có ích cho việc tạo dịch vụ ứng dụng có ích cho người sử dụng Chương giới thiệu danh sách liệu có sẵn thơng qua Android API mặc định cho nhà nghiên cứu nhà phát triển để tham khảo 19 CHƯƠNG 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 ứng dụng Do phạm vi nghiên cứu đề tài luận văn thời gian ngắn hạn, nên Tôi xây dựng ứng dụng mang tính chất demo số nghiên cứu Ứng dụng gồm hai phần: ứng dụng Client ứng dụng hệ thống Server Ứng dụng Client làm nhiệm vụ thu thập liệu, lọc liệu để định kỳ gửi server Dữ liệu Client thu thập bao gồm liệu thu thập thao tác với web, Dữ liệu thu thập ứng dụng chạy thiết bị di động Android…Ứng dụng server nhận liệu gửi từ client lưu trữ liệu vào Database 4.2 Cấu trúc hệ thống ứng dụng Hình 4.1: - Cấu trúc hệ thống ứng dụng Collect And Filter: Thu thập liệu theo định kỳ lần, lọc liệu cần thiết để lưu vào chứa liệu trước truyền tới server - Client Data Store: Bộ chứa liệu truyền client, Thường lưu trữ liệu vào database sqlite sẵn có Android - Sender Reciever: Bộ gửi nhận liệu Client với Server Ở client Theo định kỳ sau hai kiểm tra liệu chứa liệu truyền tới Server Sau xóa liệu gửi thành cơng Ở server có chức nhận liệu 20 client để đưa tới xử lý liệu Ngồi có chức gửi thơng báo cho Client nhóm Client - Data Handler: Nhiệm vụ phân tích xử lý liệu nhận từ Client Dữ liệu xử lý phân loại để lưu vào database - Server Data Store: Là nơi lưu trữ liệu thu thập Để lưu trữ liệu sử dụng Database Mysql Dữ liệu nguồn tham khảo cho ứng dụng dịch vụ khác 4.2.1 Các phân quyền sử dụng ứng dụng - INTERNET: Cho phép ứng dụng mở socket network - GET_TASKS: Cho phép ứng dụng để có thơng tin nhiệm vụ gần hoạt động - READ_LOGS: Cho phép ứng dụng để đọc tập tin đăng nhập hệ thống mức độ thấp - READ_PHONE_STATE: Cho phép đọc truy cập vào trạng thái điện thoại - PROCESS_OUTGOING_CALLS: Cho phép ứng dụng để theo dõi, thay đổi hủy bỏ gọi - READ_HISTORY_BOOKMARKS: Cho phép ứng dụng để đọc (nhưng không ghi) lịch sử bookmarks người sử dụng - WRITE_HISTORY_BOOKMARKS: Cho phép ứng dụng để ghi (nhưng không đọc) lịch sử duyệt web bookmarks người dùng 4.2.2 Một số API cài đặt cho ứng dụng 4.2.2.1 Cài đặt thu thập thông tin người sử dụng thao tác với trình duyệt Sử dụng liệu Content Provider từ ứng dụng trình duyệt Ứng dụng cần phải khai báo phân quyền READ_HISTORY_BOOKMARKS, WRITE_HISTORY_BOOKMARKS AndroidManifest.xml ứng dụng Bảng 4.1: Cài đặt thu thập thông tin người dùng thao tác trình duyệt String result = ""; String time = ""; int i = 1; Cursor mCur = managedQuery(Browser.BOOKMARKS_URI, Browser.HISTORY_PROJECTION, null, null, null); mCur.moveToFirst(); 21 if (mCur.moveToFirst() && mCur.getCount() > 0) { while (mCur.isAfterLast() == false) { if(mCur.getString(Browser.HISTORY_PROJECTION_DATE_INDEX) != null){ long dateTime = Long.parseLong(mCur.getString(Browser.HISTORY_PROJECTION_DATE_INDEX)); cal.setTimeInMillis(dateTime); time = cal.getTime().toString(); result += i + ") " + mCur.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX) + " - " + time + "\n"; i++; } mCur.moveToNext(); } } 4.2.2.2 Cài đặt thu thập thông tin ứng dụng hoạt động Tại thời điểm có giao diện ứng dụng hiển thị cho người dùng Các ứng dụng lại hoạt động chúng chạy ngầm background hệ thống Những ứng dụng phải cài đặt dạng Service để chạy ngầm Ứng dụng cần phải khai báo phân quyền READ_LOGS AndroidManifest.xml ứng dụng Bảng 4.2: Cài đặt thu thập thông tin ứng dụng hoạt động String result = ""; ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List listApp = activityManager.getRunningAppProcesses(); for (int i = 0; i < listApp.size(); i++) { result += "app " + i + ": " + listApp.get(i).processName.toString() + "\n"; } 4.2.2.3 Cài đặt thu thập liệu logs Để thu thập liệu log phải sử dụng tool log-cat để lấy liệu Ứng dụng cần phải khai báo phân quyền GET_TASKS AndroidManifest.xml ứng dụng Bảng 4.3: Cài đặt thu thập liệu logs StringBuffer result = new StringBuffer(); // log try { 22 Process process = Runtime.getRuntime().exec("logcat -d"); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream())); StringBuilder log = new StringBuilder(); String line; System.out.println("get Log"); while ((line = bufferedReader.readLine()) != null) { log.append(line + "\n"); } result.append(log.toString()); } catch (IOException e) { Log.v(TAG, "IOException of handleBehaviorData: " + e.getMessage()); } 4.2.2.4 Cài đặt thu thập thông tin gọi Để thu thập thông tin gọi đến ta phải sử dụng PhoneStateListener để đăng ký lắng nghe kiện gọi đến sử dụng method onCallStateChanged(int state, String incomingNumber) để thu số điện thoại gọi đến Từ số điện thoại lấy thông tin danh bạ điện thoại thiết bị để so sánh biết thêm chi tiết thông tin gọi đến Chúng ta sử dụng BroadCast để thu thập thông tin gọi Bảng 4.4: Cài đặt thu thập thông tin gọi /** * Listener to detect incoming calls */ private class CallStateListener extends PhoneStateListener { @Override public void onCallStateChanged(int state, String incomingNumber) { switch (state) { case TelephonyManager.CALL_STATE_RINGING: // called when someone is ringing to this phone controller.handleIncomingCall(incomingNumber); break; } } } /** * Broadcast receiver to detect the outgoing calls */ 23 public class OutgoingReceiver extends BroadcastReceiver { public OutgoingReceiver() { } @Override public void onReceive(Context context, Intent intent) { String outgoingNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); controller.handleOutgoingCall(outgoingNumber); } } 4.3 Kết Quả Demo ứng dụng 4.4 Tổng kết Do thời gian nghiên cứu luận văn ngắn, tài liệu nghiên cứu chun sâu Android khó tìm kiếm Google lại liên tục nghiên cứu, phát triển phiên tăng cường tính bảo mật nên làm cho việc nghiên cứu luận văn khó khăn Ứng dụng giới thiệu luận văn mang tính chất Demo cho phần nghiên cứu Trong chương mô tả cấu trúc hệ thống ứng dụng theo mơ hình Client – Server, cách hoạt động ứng dụng, API phân quyền sử dụng ứng dụng Android Client Thông qua cách mơ tả người đọc hình dung cách cài đặt ứng dụng Trong tương lai nghiên cứu thêm công nghệ android số cơng nghệ hãng thứ ba để ứng dụng thu thập thêm loại liệu Ngoài phát triển thêm hệ thống server, nghiên cứu thuật tốn phân tích liệu cách tổ chức lưu trữ liệu server, phân loại sở thích, hành vi người sử dụng theo nhóm để dự đốn, tính tốn mức độ thích dịch vụ hay loại sản phẩm Tạo tính tiện ích người sử dụng với dịch vụ ứng dụng 24 KẾT LUẬN Mục đích đề tài thu thập, phân tích hành vi thói quen người sử dụng thiết bị di động Android để cung cấp liệu cho công ty, nhà máy ngành, đối tượng có liên quan nhằm tạo sản phẩm, tiện ích, dịch vụ để phục vụ cho người tốt Ngồi mục đích thu thập phân tích hành vi thói quen cịn để xây dựng hệ thống trợ giúp, tư vấn cho người người sử dụng loại bỏ thông tin rác, thông tin dư thừa sàng lọc thông tin tốt cung cấp cho người sử dụng lựa chọn Con người tiết kiệm thời gian công sức sử dụng hệ thống Kết nghiên cứu đề tài giúp cho công ty, nhà máy tạo sản phẩm, dịch vụ có tính ứng dụng cao thực tế nhiều lĩnh vực ví dụ: Khi người sử dụng cài đặt xác nhận đồng ý sử dụng sản phẩm, dịch vụ thơng qua phân tích liệu hành vi liên quan đến lĩnh vực ăn uống người sử dụng địa điểm muốn tìm nhà hàng để ăn trưa họ cung cấp thông tin nhà hàng tốt quanh khu vực phù hợp với vị giá Thơng qua phân tích liệu hành vi liên quan đến thời trang người sử dụng hãng thời trang tạo sản phẩm thời trang phù hợp với xu người sử dụng hạn chế sản xuất sản phẩm không phù hợp quan tâm nhiều… Do luận văn nghiên cứu thời gian ngắn nên nhiều vấn đề chưa nghiên cứu giải Trong tương lai, Ứng dụng luận văn mở rộng nghiên cứu thêm nhiều loại liệu thu thập nghiên cứu phân tích tìm kiếm liệu thu thập hệ thống server mục đích để tạo sản phẩm có ích phục vụ cho cộng đồng ... dạng hành vi thói quen người sử dụng thiết bị di động Android, Tôi xin đưa ý tưởng hệ thống thu thập hành vi thói quen người sử dụng thiết bị di động Android phương pháp để thu thập số tập liệu hành. .. quen người sử dụng ứng dụng, dịch vụ dành cho điện thoại di động Sau thu thập tất hành vi thói quen người sử dụng khoảng thời gian định kì tiến hành phân tích hành vi, thói quen người sử dụng. .. Xây dựng ứng dụng thu thập, Phân tích hành vi thói quen người sử dụng thiết bị di động Andriod 2 CHƯƠNG NỀN TẢNG CÔNG NGHỆ ANDROID CHO THIẾT BỊ DI ĐỘNG 1.1 Tổng quan công nghệ Android 1.1.1