HC VIN CONG NGH BU CHINH VIN THONG

26 2 0
HC VIN CONG NGH BU CHINH VIN THONG

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN CÔNG NGHỆ BƯU CHệNH VIỄN HÔNG - VŨ RỤ HU HẬP, PHÂN ệCH HÀNH VI VÀ HịI QUEN NGƯỜI SỬ DỤNG HIẾ BỊ DI ĐỘNG ANDROID CHUYÊN NGÀNH : H THỐNG THÔNG TIN MÃ SỐ: 60.48.01.04 ịM Ắ LUẬN VĂN HẠC SĨ HÀ N I - 2013 Luận văn hoƠn thƠnh tại: HỌC VIỆN CÔNG NGHỆ BƯU CHệNH VIỄN HÔ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 vƠ đạ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 cƠng ngƠy cƠng "thông minh" với nhiều ch c vƠ 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 lƠ cơng nghệ mạnh mẽ, ng dụng phát triển rộng rưi vƠ chọn lƠm tảng phát triển di động cho nhiều hưng di động khác Android lƠ hệ điều hƠnh điện thoại di động (vƠ lƠ số đầu phát HD, HD Player, TV) phát triển b i Google vƠ dựa 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 dư thừa thông tin vƠ 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 vƠ 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 vƠ 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 h n Đồng thời phần mềm hỗ trợ đưa gợi ý tư vấn cho lựa chọn ng dụng vƠ dịch vụ phù hợp cho người sử dụng Đơy lƠ lý để tơi chọn đề tƠi “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” Nội dung luận văn nghiên c u, vƠ 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 vƠ 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 lƠ 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 b i 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 lƠ 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 c a “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 lƠ 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ớ vƠ tƠi nguyên phần c ng môi trường di động Để phục vụ cho việc phát triển vƠ sáng tạo ng dụng vƠ dịch vụ Google đư đưa công cụ Android SDK cung cấp công cụ vƠ 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 n n 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 nƠy tích hợp sẵn số ng dụng c 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 vƠ 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 nƠy - Application Framwork: Tầng nƠy 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 vƠ phong phú - Libraries: lƠ 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 vƠ thực thi file có định dạng ( dex) mục đích tối ưu hóa cho nhớ vƠ 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 vƠ 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 vƠ 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 lƠ ngơn ngữ cải tiến, tinh chỉnh cho phù hợp tảng Android ng dụng java lƠ 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 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Ơ công cụ giả lập thiết bị ảo Android hỗ trợ để test vƠ debug lỗi ng dụng Android Môi trường lập trình (IDE) th c Android lƠ 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 vƠ đuợc lưu thư mục /data/app hệ điều hƠnh Android 1.3 Các thƠnh ph n c b n c a ng d ng Android 1.3.1 Activity Một Activity lƠ thƠnh phần ng dụng cung cấp mƠn 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 mƠn hình, lƠ nhỏ h n so với mƠn hình vƠ 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 mƠn hình [5] - Paused: Khi Activity chạy mƠn hình bị Activity suốt (transparent) hay bị chiếm toƠn mƠn hình hiển thị phía Tuy lưu trữ liệu, paused Activity nƠy 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 b i Activity khác (Activity nƠy 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 vƠ thơng tin thƠnh viên Tuy nhiên stopped Activity nƠy 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 vƠ Broadcast Receivers kích hoạt thơng qua message, gọi lƠ Intent Một đối tượng intent lƠ 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, lƠ mơ tả đư xảy vƠ đư công bố 1.3.2 Service 1.3.2.1 Định nghĩa Service Một Service lƠ component ng dụng thực hoạt động thời gian dƠi chế độ background vƠ không cung cấp giao diện người dùng Một component ng dụng bắt đầu Service vƠ 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 vƠ 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 vƠ 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 lƠ 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 < receiver> file AndroidManifest.xml 1.3.4 Content Provider LƠ n i lưu trữ vƠ cung cấp cách truy cập liệu ng dụng tạo nên Đơy lƠ 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 vƠ 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 lƠ 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 lƠ đề cập đến thông báo log chụp vƠ xử lý b i chư ng trình nƠo chạy Android, b i lƠ c s chư ng trình thực cho dự án nƠy 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 vƠ Handlers Nhận message nƠy phải cƠi đặt 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 nội dung hƠng đợi message vƠ 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 ng k t Android có xơy dựng nhơn Linux nên thừa hư ng đặc tính q Linux, lƠ độ bảo mật vƠ hiệu hoạt động cao Không thế, nhơn Linux để phát triển cho Android đư tối ưu vƠ 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 lƠ 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 vƠ 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Ơ liệu, bảo vệ hệ thống thông qua việc ký ng dụng vƠ 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 hi n 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 lƠ c chế bảo mật tảng Android phép hạn chế ng dụng truy cập đến API vƠ 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 vƠ 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, hưy khai báo thuộc tính < user-permission> 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 b i tính nƠy 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 NgoƠ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 b i 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 h n 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, vƠ 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 xuyên khơng truy cập với tính nƠy thiết bị Android, khóa b i nhƠ cung cấp Một ng dụng với quyền truy cập root thay thế, sửa đổi vƠ 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Ơ lĩnh vực trí tuệ nhơn tạo liên quan đến việc nghiên c u vƠ 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 lƠ tạo phư ng pháp vƠ 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 vƠ 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ó lƠ thuật toá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 nƠy lƠ áp dụng với liệu có thuộc tính số vƠ khám phá cụm có dạng hình cầu, K-means nhạy cảm với nhiễu vƠ 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 vƠ k trọng tơm kh i tạo ban đầu 2.3 T ng k t Android lƠ tảng di động đại thiết kế để thực m Để bảo vệ giá trị, tảng nƠy phải cung cấp môi trường ng dụng để đảm bảo an toƠn người sử dụng, liệu, ng dụng, thiết bị, vƠ mạng Đảm bảo tảng m đòi hỏi kiến trúc bảo mật mạnh mẽ vƠ 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 nƠy 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 v h th ng thu th p, phơn tích hƠnh vi vƠ 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 vƠ 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 lƠ hệ thống tự động bao gồm ng dụng Android Client vƠ ng dụng 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 ng dụng thu thập vƠ phơn tích hƠnh vi vƠ thói quen người sử dụng android mơ tả hình 3.1 Bao gồm hai phần 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 liệu 3.2.2.1 Content observers 13 Content observers lƠ c 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 c 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ý vƠ 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 lƠ đá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 đơy Broadcast ReceiversContent observersAlarms 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 c 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 vƠ nguyên CPU 3.2.3 ng dụng server ng dụng server lƠ hệ thống thực ch c năng: nhận liệu, lọc vƠ phơn tích liệu sau kết lưu trữ vƠo hệ thống c s liệu Kết lưu trữ nƠy 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 vƠ phải gồm có intent-filters để xử lý kiện Intent.PACKAGE_ADDED vƠ 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 vƠ hiệu suất thiết bị xuống cấp Arlam lên kế hoạch vƠ cấu hình để theo mặc định thực truy vấn Content Provider URI: android.provider.Browser.BOOKMARKS_URI Content Provider nƠy 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, vƠ 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 b i 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 c 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 nƠy cho phép phát gọi đến, vƠ bỏ lỡ, số điện thoại bên ngoƠi, tên liên lạc, thời gian, vƠ 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 b i 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 nƠy lƠ cần phơn quyền android.permission.GET_ACCOUNTS AndroidManifest 3.2.5.8 Device ID Một ID thiết bị lƠ định danh để phơn biệt thiết bị Android nƠy với thiết bị android ng dụng server ng dụng sử dụng Alarm gọi lƠ 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 nƠy dựa việc sử dụng GPS kích hoạt trước vƠo thu thập vƠ 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 vƠ 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 vƠ 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 nƠo yêu cầu AndroidManifest để truy cập thông tin nƠy 3.2.5.11 Message Service ng dụng khai báo Broadcast Receiver vƠ bao gồm intent-filters xử lý intent android.provider.Telephony.MMS_RECEIVED vƠ 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 vƠ trường văn Nếu trường văn lƠ null, khơng có văn kèm với tin nhắn MMS Nếu trường văn nƠy lƠ trống, có có văn kèm với tin nhắn MMS Tuy nhiên, khơng có c 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, vƠ 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 nƠy khơng địi hỏi thêm phơn quyền AndroidManifest để đạt quyền đọc vƠ truy cập tới nội dung 3.2.5.13 Screen Lock Status Broadcasts toƠn hệ thống gửi mƠn 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 vƠ Intent.ACTION_SCREEN_OFF Không cần bổ sung phơn quyền Androidmanifest để truy cập thông tin nƠy 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 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, vƠ 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 lƠ 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 nƠy 3.3 Phơn tích d li u thu th p 3.3.1 Cấu trúc chung c a 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 lƠ 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 c 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 tố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 đơy lƠ 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 nƠy phục vụ mơ hình tham khảo cho cộng đồng Android để thiết kế vƠ 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 lƠ giải pháp mư nguồn m Tuy nhiên, địi hỏi phải nghiên c u thêm vƠ 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 b i ng dụng có ích cho việc tạo dịch vụ vƠ ng dụng có ích cho người sử dụng Chư ng nƠy 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 vƠ 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 v 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ố tơi đư nghiên c u phần: ng dụng Client vƠ ng dụng hệ thống Server ng dụng gồm hai ng dụng Client lƠm nhiệm vụ thu thập liệu, lọc liệu vƠ để đị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 vƠ 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 vƠ Reciever: Bộ gửi vƠ nhận liệu Client với Server client Theo định kỳ c sau hai kiểm tra liệu ch a liệu vƠ 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 NgoƠ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ý vƠ 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 tơi sử dụng Database Mysql Dữ liệu lƠ nguồn tham khảo cho ng dụng vƠ 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 đơy 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ử vƠ 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 vƠ 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 khai báo phơn quyền ng dụng cần phải 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 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 nƠy 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 vƠ 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 d 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 nƠy 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 cu c 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 c a 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 chuyên sơu Android vƠ 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 h n 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 nƠy đư 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 vƠ phơn quyền sử dụng ng dụng Android Client Thông qua cách mơ tả nƠy 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 vƠ 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 vƠ 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 nƠo 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 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 để cung cấp liệu cho công ty, nhƠ máy vƠ 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 h n NgoƠi mục đích thu thập vƠ 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 vƠ 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 vƠ 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 vƠ xác nhận đồng ý sử dụng sản phẩm, dịch vụ nƠy 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 nƠo 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ị 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 vƠ 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 vƠ giải Trong tư ng lai, ng dụng luận văn m rộng b i nghiên c u thêm nhiều loại liệu thu thập vƠ nghiên c u phơn tích vƠ 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 ... th p d 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()));... thời gian nghiên c u luận văn ngắn, tƠi liệu nghiên c u chuyên sơu Android vƠ 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 h n nên lƠm cho việc nghiên c... đặt ng dụng Trong tư ng lai nghiên c u thêm công ngh? ?? android vƠ 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

Ngày đăng: 16/12/2022, 18:14

Tài liệu cùng người dùng

Tài liệu liên quan