日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

基于 Android 平台的手机安全卫士的设计与实现【100010420】

發(fā)布時(shí)間:2023/12/29 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于 Android 平台的手机安全卫士的设计与实现【100010420】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基于 Android 平臺(tái)的手機(jī)安全衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)

第 1 章 引言

1.1 研究背景及意義

隨著智能手機(jī)和網(wǎng)絡(luò)的完美結(jié)合,使得智能機(jī)的功能越來越強(qiáng)大,瀏覽網(wǎng)頁、網(wǎng)絡(luò)購(gòu)物、視頻對(duì)話都普及到各個(gè)手機(jī)終端,然而手機(jī)平臺(tái)越廣泛,存在的危險(xiǎn)就越大,越來越多的安全問題出現(xiàn)在手機(jī)的日常運(yùn)用中[1]。當(dāng)我們以為只有通過網(wǎng)絡(luò)才會(huì)使手機(jī)中毒的時(shí)候,沒想到智能手機(jī)那方便快捷的數(shù)據(jù)傳送方式:WIFI、藍(lán)牙、內(nèi)存卡等也使我們的手機(jī)暴露在病毒感染的危險(xiǎn)之中。通訊設(shè)備本身所具備的便利的支付收費(fèi)、支付方式都為不法份子提供了可乘之機(jī)。

當(dāng)人們已經(jīng)習(xí)慣把手機(jī)當(dāng)做一個(gè)移動(dòng)存儲(chǔ)設(shè)備,作為一個(gè)方便攜帶的移動(dòng)終端時(shí),風(fēng)險(xiǎn)并不僅來源于手機(jī)病毒,也來源于 3G 網(wǎng)絡(luò)的的開放性。當(dāng)手機(jī)不慎丟失或者是在手機(jī)數(shù)據(jù)傳送的過程中用戶數(shù)據(jù)很容易會(huì)被竊聽、復(fù)制或者篡改。這不僅會(huì)面臨經(jīng)濟(jì)損失,還會(huì)遇到甚至更為嚴(yán)重的隱私泄露危險(xiǎn)。

手機(jī)作為個(gè)人通信工具,每天跟隨用戶,保存了很多個(gè)人隱私。并且近年來收費(fèi)電話,垃圾短信,電話和短信詐騙等層出不窮[2]。如果能從這些方面著眼,解決用戶的實(shí)際問題,才是目前真正要做的。而這一類的軟安全軟件目前市場(chǎng)上也有很多,比如,一些來電顯示軟件,就可以很準(zhǔn)確的告知用戶來電的歸屬地,一定程度上杜絕了電話欺詐;另外一些軟件可以由用戶自定義號(hào)碼黑名單,主動(dòng)的屏蔽掉騷擾電話和短信。

1.2 安全軟件的現(xiàn)狀

隨著移動(dòng)互聯(lián)網(wǎng)的不斷發(fā)展,不少互聯(lián)網(wǎng)廠商都看中了手機(jī)安全這塊蛋糕,并已占開積極布局。國(guó)內(nèi)電腦安全軟件廠商 360 早在 09 年就開始推出 360 手機(jī)安全衛(wèi)士。目前,包括金山、騰訊等互聯(lián)網(wǎng)公司也都先后推出了各自的手機(jī)安全軟件。

學(xué)術(shù)探討國(guó)際著名市場(chǎng)調(diào)查機(jī)構(gòu) Juniper Research 經(jīng)過調(diào)查后預(yù)測(cè),到 2011 年,全球手機(jī)安全市場(chǎng)價(jià)值將為 50 億美元,不僅僅包括殺毒軟件,也包括智能手機(jī)的安全接入與安全加固[3]。防病毒、防垃圾、防間諜軟件是市場(chǎng)的大頭,約占 40% 左右,安全接入與安全加固軟件約占 26%[4]。

手機(jī)安全軟件的最大作用是保護(hù)用戶的手機(jī)安全,但是目前市面上的安全軟件都附帶了很多的東西,并不是用戶真正想使用的,白白占用了很多內(nèi)存。而且某些功能上給用戶帶來的體驗(yàn)也不是很好,例如金山手機(jī)衛(wèi)士的程序鎖功能,每次用戶進(jìn)入應(yīng)用程序都要求輸入密碼,如果用戶正在使用某軟件的時(shí)候突然有人打電話過來,當(dāng)通話結(jié)束后,用戶還得再次輸入密碼,這樣的設(shè)計(jì)使用戶很苦惱。

1.3 本文主要工作

本次畢業(yè)設(shè)計(jì)所實(shí)現(xiàn)的手機(jī)安全衛(wèi)士是基于 Android 系統(tǒng)開發(fā)的,通過研究目前 Android 手機(jī)用戶所面臨的安全問題,開發(fā)出一款手機(jī)安全與管理軟件。該軟件的主要能包括手機(jī)防盜,在用戶手機(jī)丟失后通過綁定的安全手機(jī)號(hào)碼找回手機(jī);通訊衛(wèi)士,避免用戶被不必要的短信或電話騷擾;程序鎖,對(duì)某些特定的應(yīng)用程序加鎖,當(dāng)手機(jī)解鎖屏幕后第一次使用應(yīng)用程序需輸入密碼;軟件管理,用戶可以運(yùn)行、卸載或者分享自己喜歡的應(yīng)用程序給好友;進(jìn)程管理,通過桌面組件快捷方式管理運(yùn)行中的進(jìn)程,是手機(jī)保持最佳的運(yùn)行狀態(tài)。整個(gè)系統(tǒng)主要是通過 Eclipse 編程實(shí)現(xiàn),其中編寫了大量的 Android 自定義組件來美化系統(tǒng)界面。通過用例的方式說明整個(gè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)和功能描述等。

1.4 本文的組織結(jié)構(gòu)

第 1 章:引言,主要包括應(yīng)用的研究背景、本文主要工作和論文組織結(jié)構(gòu)。

第 2 章:Android 相關(guān)技術(shù)介紹及分析,主要包括 Android 開發(fā)環(huán)境的搭建,Android 項(xiàng)目目錄結(jié)構(gòu)、Activity、BroadcastReceiver、Service 介紹。

第 3 章:手機(jī)安全衛(wèi)士分析與設(shè)計(jì),主要是通過用例表的方式分析與設(shè)計(jì)手機(jī)防盜功能、通訊衛(wèi)士功能、軟件管理功能、進(jìn)程管理功能、系統(tǒng)優(yōu)化功能。

第 4 章:手機(jī)安全衛(wèi)士詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),主要包括應(yīng)用程序自動(dòng)升級(jí)、應(yīng)用程序主界面、通訊衛(wèi)士、手機(jī)防盜、軟件管理、進(jìn)程管理、系統(tǒng)優(yōu)化、病毒查殺、高級(jí)工具中的手機(jī)號(hào)碼歸屬地查詢和常用號(hào)碼查詢的實(shí)現(xiàn)。

第 5 章:結(jié)論與展望,即對(duì)本文的總結(jié),并提出可擴(kuò)展的功能模塊說明。

第 2 章 Android 的相關(guān)技術(shù)介紹及分析

2.1 搭建 Android 開發(fā)環(huán)境

在 Android 應(yīng)用程序開發(fā)過程中使用的工具軟件都是可以在網(wǎng)上免費(fèi)下載的,本手機(jī)安全衛(wèi)士采用的的集成開發(fā)環(huán)境為安卓官方網(wǎng)站提供的 ADT。此外,與開發(fā)普通 Java 程序類似的是在 Ubuntu 系統(tǒng)下我們需要將 SDK 的目錄添加到系統(tǒng)的環(huán)境變量[5]。具體的地址和安裝步驟如下:

2.1.1 搭建 Ubuntu 系統(tǒng)下 Java 開發(fā)環(huán)境

到官網(wǎng)下載 JDK 文件

跳轉(zhuǎn)到下載目錄

cd /home/bingo/下載

解壓到安裝目錄

tar -zxvf jdk-7u45-linux-i586.tar.gz -C /home/bingo/install

配置環(huán)境變量

在/etc/profile.d 目錄下新建一個(gè)叫 java.sh 的文件

sudo vi /etc/profile.d/java.sh

在 java.sh 中加入以下內(nèi)容

export JAVA_HOME=/home/bingo/install/jdk1.7.0_45export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

執(zhí)行以下命令使上面的配置立即生效

source /etc/profile

輸入以下命令,如果顯示 Java 的版本信息說明 Java 環(huán)境配置成功

Java -version。

2.1.2 搭建 Ubuntu 系統(tǒng)下 Android 開發(fā)環(huán)境

到官網(wǎng)下載 sdk

跳轉(zhuǎn)到下載目錄

cd /home/bingo/下載

解壓到安裝目錄,如果不存在則創(chuàng)建該文件夾

mkdir /home/bingo/install

如果沒安裝解壓 zip 格式的軟件,在 Ubuntu 軟件中心中安裝 7zip 和 rar

配置環(huán)境變量

在/etc/profile.d 目錄下新建一個(gè)叫 android.sh 的文件[6]

sudo vi /etc/profile.d/android.sh

在 android.sh 中加入以下內(nèi)容

export ANDROID_SDK_ROOT=/home/bingo/install/adt-bundle-linux-x86-20131030/sdkexport PATH=$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH

執(zhí)行以下命令使上面的配置立即生效

source /etc/profile

輸入以下命令,如果顯示 adb 的版本信息說明 Android 環(huán)境配置成功

adb version

2.2 Android 項(xiàng)目目錄結(jié)構(gòu)

src 文件夾:存放 Java 代碼的地方,通過集成開發(fā)環(huán)境單獨(dú)指定源代碼目錄也是可以的。

gen 文件夾:這里面最關(guān)鍵的是 R.java 文件,這個(gè)文件是集成開發(fā)環(huán)境幫我們自動(dòng)生成的,不能手動(dòng)去更改它,否則系統(tǒng)會(huì)報(bào)錯(cuò)[7]。里面通過很多內(nèi)部的靜態(tài)類來指向 res 目錄中的資源文件,如果開發(fā)中發(fā)現(xiàn)這個(gè)文件,那么很有可能是因?yàn)?res 目錄總的文件內(nèi)部錯(cuò)誤或者是文件重復(fù)。

assets 文件夾:存放應(yīng)用中需要用到的文件,例如存放初始化系統(tǒng)用到的數(shù)據(jù)庫(kù)文件、音頻資源文件等[8]。

res 文件夾:主要用來存放系統(tǒng)中的資源文件,例如布局文件、國(guó)際化的字符串文件、圖像資源文件等。

AndroidManifest.xml 文件:該文件主要包含了應(yīng)用程序的基本信息[9]。如果要使用 Android 系統(tǒng)中的四大組件的話則需要在文件中進(jìn)行配置,還有就是系統(tǒng)測(cè)試和應(yīng)用也需要用到系統(tǒng)的一些特性,因此,這些也是需要在該文件中進(jìn)行配置。

default.properties 文件:在應(yīng)用正式發(fā)布時(shí)為了防止別人反編譯自己的代碼,要在該文件中進(jìn)行配置。同時(shí)也記錄了應(yīng)用程序開發(fā)過程中的在集成開發(fā)環(huán)境中所需要的版本信息。

2.3 Activity

2.3.1 Activity 生命周期方法

onCreate 方法:當(dāng) Activity 第一次被創(chuàng)建的時(shí)候,Android 系統(tǒng)將會(huì)會(huì)執(zhí)行該生命周期方法,或者是用戶在沒有退出該應(yīng)用程序的情況下切換到了其他應(yīng)用程序,而恰好此時(shí)系統(tǒng)資源不夠用了,這時(shí)系統(tǒng)就會(huì)回收該 Activity,但是并未銷毀該 Activity。用戶突然又切換到當(dāng)前應(yīng)用程序,此時(shí)系統(tǒng)就會(huì)重新執(zhí)行該生命周期方法[10]。事實(shí)上,在實(shí)際開發(fā)中我們通常在這個(gè)方法中初始化界面組件和恢復(fù)當(dāng)前 Activity 狀態(tài)。

onStart 方法:每一次 activity 從用戶不可見到用戶可見的時(shí)候系統(tǒng)都會(huì)執(zhí)行該生命周期方法,在某些對(duì)信息時(shí)時(shí)性要求高的應(yīng)用程序中,需要在該方法中更新該界面的數(shù)據(jù),例如青蛙衛(wèi)士中的系統(tǒng)設(shè)置界面,為了避免用戶使用 Android 系統(tǒng)自帶的設(shè)置界面把服務(wù)停掉后回到青蛙衛(wèi)士的系統(tǒng)界面是看到臟數(shù)據(jù),每次顯示該界面的時(shí)候都要重新獲取當(dāng)前正在運(yùn)行的服務(wù)。

onRestart 方法:當(dāng) activity 對(duì)用戶不可見并且沒有被系統(tǒng)銷毀的情況下,如果該 activity 再一次對(duì)用戶可見,那么系統(tǒng)就會(huì)執(zhí)行該生命周期方法。

onResume 方法:當(dāng) activity 獲取焦點(diǎn)時(shí),系統(tǒng)會(huì)執(zhí)行該生命周期方法。

onPause 方法:當(dāng) activity 失去焦點(diǎn)時(shí),系統(tǒng)會(huì)執(zhí)行該生命周期方法,失去焦點(diǎn)并不是指該 activity 對(duì)用戶不可見,而是被對(duì)話框或者其他透明的 activity 遮罩,用戶是可以看見該 activity 的,只是不能點(diǎn)擊而已,該方法與 onResume 方法相對(duì)應(yīng)。

onStop 方法:當(dāng) activity 對(duì)用戶不可見時(shí),系統(tǒng)將會(huì)執(zhí)行該生命周期方法,該方法與 onStart 方法是相對(duì)應(yīng)的。

onDestory:當(dāng) activity 被系統(tǒng)銷毀時(shí),系統(tǒng)會(huì)執(zhí)行該生命周期方法。在實(shí)際開發(fā)中,通常在該方法內(nèi)部做一些掃尾動(dòng)作。例如解綁通過代碼方式在該 activity 中綁定服務(wù)、取消在該 activity 中注冊(cè)的內(nèi)容觀察者等。

2.3.2 與其他應(yīng)用程序交互

在我們實(shí)際開發(fā)的應(yīng)用程序中,很少有應(yīng)用程序是單獨(dú)存在的,或多或少都會(huì)使用到第三方應(yīng)用程序提供的數(shù)據(jù),例如實(shí)習(xí)期間做的一個(gè)遠(yuǎn)程會(huì)議軟件,需要網(wǎng)服務(wù)端上傳照片,為了節(jié)省開發(fā)時(shí)間就是直接使用系統(tǒng)自帶的相機(jī)拍照。這里就已這個(gè)例子來介紹 Android 系統(tǒng)中各應(yīng)用程序之間的交互。在我們自己應(yīng)用程序的 activity 中,把要拍攝照片的全路徑名存放在 intent 中,并且在 intent 中加入照相的動(dòng)作和類型,(系統(tǒng)會(huì)篩選出手機(jī)中所已安裝的照相機(jī)供用戶選擇),將該 intent 對(duì)象作為參數(shù)傳遞給 startActivityForResult 方法。程序中也調(diào)用系統(tǒng)自帶的相冊(cè)從相冊(cè)中選擇圖片上傳,但是相冊(cè)和相機(jī)返回的數(shù)據(jù)是不同的,所有還需要傳遞一個(gè)請(qǐng)求碼給 startActivityForResult 方法來區(qū)分當(dāng)前操作類型,以便在 onActivityResult 方法中根據(jù)請(qǐng)求碼的不同來出來不同的數(shù)據(jù)[11]。

2.4 BroadcastReceiver

2.4.1 廣播接收者的分類

普通廣播:這種廣播并不是同步傳輸?shù)?#xff0c;并且可以被任意廣播接收者收聽。這種廣播的好處是效率非常高。缺點(diǎn)是任意收聽該廣播的廣播接收者都改變不了該廣播中所傳遞的數(shù)據(jù),同時(shí)也不能阻止別的廣播接收者收聽該廣播。

有序廣播:該廣播是依照廣播接收者的優(yōu)先級(jí)次序,在收聽了該廣播的廣播接收者中根據(jù)該數(shù)據(jù)依次傳遞。例如有三個(gè)廣播接收者 X,Y,Z,優(yōu)先級(jí)是 X> Y > Z。那這個(gè)廣播首先傳遞給 X,其次再傳給 Y,最后傳遞給 Z。每個(gè)廣播接收者都可接結(jié)束廣播的傳遞,比如 Y 結(jié)束了廣播的傳遞,Z 就不能收到廣播消息。另外,X 收到廣播消息后可以對(duì)消息內(nèi)容進(jìn)行更改,當(dāng)廣播傳遞到 Y 那里的時(shí)候,廣播接收者 Y 從廣播中取到的數(shù)據(jù)就是廣播接收者 X 放進(jìn)去的數(shù)據(jù)。例如,在 Android 系統(tǒng)中接收短信廣播就是有序廣播。

2.4.2 注冊(cè)廣播接收者的兩種方式

廣播接收者注冊(cè)方式的不同會(huì)影響其存活的時(shí)間,用清單文件配置的方式注冊(cè)的廣播接收者可以在其應(yīng)用程序沒有運(yùn)行的時(shí)候繼續(xù)收聽廣播[12],例如系統(tǒng)自帶的電池電量不足的廣播接收者,不需要專程打開某個(gè)應(yīng)用程序來監(jiān)聽它。

還有就是通過代碼的方式注冊(cè)廣播接收者,這種方式注冊(cè)的廣播接收者只有在其應(yīng)用程序運(yùn)行的時(shí)候才能收聽廣播,在實(shí)際開發(fā)中的應(yīng)用場(chǎng)景是時(shí)時(shí)監(jiān)聽廣播事件來更新界面上顯示的數(shù)據(jù),當(dāng)界面關(guān)閉后該廣播接收者就沒有存活的意思,所以就不用配置在清單文件中。

2.5 Service

2.5.1 什么是服務(wù)

Android 中的服務(wù)和 windows 中的服務(wù)類似,兩者都是運(yùn)行在后臺(tái)用戶看不見的,其存在的級(jí)別會(huì)比 activity 高一些,同樣的也是需要在清單文件中進(jìn)行配置,在主進(jìn)程中運(yùn)行。正因?yàn)槭沁\(yùn)行在主進(jìn)程里的,所以不能直接在服務(wù)中執(zhí)行需要運(yùn)行很久的操作,應(yīng)該單獨(dú)開一個(gè)子線程來做這些長(zhǎng)時(shí)間運(yùn)行的操作,例如在后臺(tái)播放音樂,在導(dǎo)航軟件中時(shí)時(shí)獲取最新的位置信息等。

2.5.2 本地服務(wù)

本地服務(wù),顧名思義就是在某一個(gè)應(yīng)用程序內(nèi)容運(yùn)行的服務(wù)。在服務(wù)外部通過執(zhí)行 startService 方法來開起服務(wù)和通過執(zhí)行 stopService 方法來停止服務(wù)。在服務(wù)的內(nèi)部可以通過執(zhí)行 stopSelf 或者 stopSelfResult 來停止服務(wù)。值得注意的是,同一時(shí)刻同一個(gè)服務(wù)只會(huì)有一個(gè)實(shí)例存在。

2.5.3 遠(yuǎn)程服務(wù)

遠(yuǎn)程服務(wù),主要是應(yīng)用在 Android 系統(tǒng)中各個(gè)應(yīng)用之間的通信當(dāng)中,通過接口并且暴露借口給其他應(yīng)用程序,供其他應(yīng)用程序調(diào)用。其客戶端連接到服務(wù)點(diǎn)是通過該連接來執(zhí)行服務(wù)里的方法。在執(zhí)行 bindService()方法連接服務(wù)時(shí),如果是在 activity 中綁定的服務(wù),則需要在 activity 的 onDestory()方法中執(zhí)行 unbindService()方法來取消綁定的服務(wù)[13]。要說明的是,其中多個(gè)客戶端是可以綁定同一個(gè)服務(wù)的,但一個(gè)服務(wù)只會(huì)被開起一次。

第 3 章 手機(jī)安全衛(wèi)士分析與設(shè)計(jì)

3.1 手機(jī)防盜功能需求分析與設(shè)計(jì)

落地有聲:由于我的眼鏡是透明的,經(jīng)常一覺睡醒找不到眼鏡,每次這個(gè)時(shí)候都想能通過手機(jī)控制眼鏡發(fā)出聲音以便更快的找到眼鏡。落地有聲就是由這個(gè)想法演變來的,如果用戶的愛機(jī)剛被盜不久,那么手機(jī)還在用戶附近的,如果此時(shí)設(shè)定的安全號(hào)碼手機(jī)可以用,只需要用安全手機(jī)發(fā)送一條警報(bào)指令給丟失的手機(jī),那么丟失的手機(jī)就會(huì)播放報(bào)警音樂,以便用戶在第一時(shí)間找回丟失的愛機(jī)。

換卡先知:Android 手機(jī)換 SIM 卡都需要重啟手機(jī),每次手機(jī)重啟的時(shí)候判斷當(dāng)前 SIM 卡的串號(hào)是否和被保護(hù)的 SIM 卡的串號(hào)是否相同,如果不相同,則手機(jī)將在后臺(tái)自動(dòng)發(fā)送短信給安全手機(jī),這樣就在小偷不知道的情況下第一時(shí)間得知小偷的手機(jī)號(hào)碼,大大提升找回手機(jī)的可能性。

遠(yuǎn)程開啟防盜:當(dāng)用戶愛機(jī)沒有開起防盜功能的時(shí)候,使用任意的手機(jī)發(fā)送應(yīng)用和密碼和遠(yuǎn)程開啟防盜功能命令時(shí)可以開起防盜功能,并設(shè)置當(dāng)前手機(jī)號(hào)碼安全手機(jī)號(hào)碼,從而為找回手機(jī)打下基礎(chǔ)。

通信攔截:獲取丟失的愛機(jī)的外撥電話、來電號(hào)碼、外發(fā)短信和收到的短信,并轉(zhuǎn)發(fā)給安全手機(jī)。這樣就可以愛機(jī)丟失的第一時(shí)間和盜竊者取得聯(lián)系,也獲取了盜竊者朋友的手機(jī)號(hào)碼,進(jìn)一步增加找回手機(jī)的可能性,也大大影響了丟失愛機(jī)的正常使用,使盜竊者覺得丟失的愛機(jī)拿來也無用,還給手機(jī)主人好些。

保護(hù)隱私:當(dāng)用戶的愛機(jī)丟失時(shí),通過短信發(fā)送特定的指令,可將丟失手機(jī)通訊錄里面的所有聯(lián)系人、通話記錄以及短信內(nèi)容全部刪除,及時(shí)保護(hù)用戶的相關(guān)隱私信息。

充電防盜:在某些特殊的場(chǎng)合,用戶的愛機(jī)急需充電,而用戶又不在手機(jī)周圍,這時(shí)開啟手機(jī)充電防盜就能很好地監(jiān)控手機(jī)的狀況,一旦有其他人蓄意拔出正在充電的手機(jī),手機(jī)就會(huì)立即發(fā)出警報(bào)音,并同時(shí)發(fā)送短信通知安全手機(jī)。

設(shè)置安全號(hào)碼用例說明表(表 3.1)、設(shè)置報(bào)警指令用例說明表(表 3.2)、遠(yuǎn)程開啟防盜指令用例說明表(表 3.3):

表 3.1 設(shè)置安全號(hào)碼用例說明表

用例名稱:設(shè)置安全號(hào)碼用例
參與者:用戶
目標(biāo):設(shè)置手機(jī)丟失后找回手機(jī)的安全手機(jī)號(hào)碼
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1. 進(jìn)入設(shè)置手機(jī)防盜界面 2. 點(diǎn)擊安全號(hào)碼設(shè)置條目 3. 在彈出的安全號(hào)碼對(duì)話框中輸入安全號(hào)碼 4. 點(diǎn)擊確定按鈕完成安全號(hào)碼的設(shè)置

表 3.2 設(shè)置報(bào)警指令用例說明表

用例名稱:設(shè)置報(bào)警指令用例
參與者:用戶
目標(biāo):設(shè)置讓手機(jī)發(fā)出報(bào)警音的指令
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1. 進(jìn)入設(shè)置手機(jī)防盜界面 2. 點(diǎn)擊設(shè)置報(bào)警指令條目 3. 在彈出的報(bào)警指令對(duì)話框中輸入報(bào)警指令 4. 點(diǎn)擊確定按鈕保存報(bào)警指令

表 3.3 設(shè)置遠(yuǎn)程開啟防盜指令用例說明表

用例名稱:設(shè)置遠(yuǎn)程開起防盜指令用例
參與者:用戶
目標(biāo):設(shè)置遠(yuǎn)程開起手機(jī)防盜功能指令
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1. 進(jìn)入設(shè)置手機(jī)防盜界面 2. 點(diǎn)擊設(shè)置遠(yuǎn)程開啟防盜指令條目 3. 在彈出的遠(yuǎn)程開啟防盜指令對(duì)話框中輸入遠(yuǎn)程開起防盜指令 4. 點(diǎn)擊確定按鈕保存遠(yuǎn)程開起防盜指令

3.2 通訊衛(wèi)士功能需求分析與設(shè)計(jì)

電話攔截:將指定的號(hào)碼加入電話攔截列表中,那么下次在該號(hào)碼來電的時(shí)候不會(huì)通知用戶,直接在后臺(tái)掛斷電話,防止用戶被別人打騷擾電話。

短信攔截:將指定的號(hào)碼加入到短信攔截列表中,那么下次在該號(hào)碼發(fā)送短信來的時(shí)候刪除這條短信,避免用戶被垃圾信息騷擾。

全部攔截:將指定的號(hào)碼加入到全部截列表中,那么下次該號(hào)碼發(fā)送來的短信和撥打的電話都會(huì)被阻止調(diào),避免用戶被騷擾。

添加黑名單用例說明表(表 3.5):

表 3.5 添加黑名單用例說明表

用例名稱:添加黑名單用例
參與者:用戶
目標(biāo):添加黑名單號(hào)碼到黑名單列表中
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1.進(jìn)入通訊衛(wèi)士界面 2.點(diǎn)擊添加按鈕 3.在彈出對(duì)話框中輸入黑名單號(hào)碼 4.在彈出對(duì)話框中選擇攔截模式 5.點(diǎn)擊確定按鈕完成黑名單號(hào)碼的添加

3.3 軟件管理功能需求分析與設(shè)計(jì)

按用戶程序和系統(tǒng)程序分類管理手機(jī)中的應(yīng)用程序,可以查看、執(zhí)行、卸載和分享用戶程序。而系統(tǒng)程序只能被查看和執(zhí)行。

3.4 進(jìn)程管理功能需求分析與設(shè)計(jì)

目前市面上的某些 Android 手機(jī)性能并不是很好,多開幾個(gè)應(yīng)用程序就會(huì)很卡,而正在運(yùn)行的程序中有些并不是用戶所需要的,通過系統(tǒng)服務(wù)獲得系統(tǒng)中正在運(yùn)行的應(yīng)用總數(shù)和手機(jī)中剩下的內(nèi)存信息以及運(yùn)行中進(jìn)程詳細(xì)信息展示給用戶,然后提供后臺(tái)進(jìn)程停止選項(xiàng),根據(jù)用戶的選擇終止特定的應(yīng)用程序。并且提供一個(gè)桌面組件給用戶,使其能在桌面上點(diǎn)一個(gè)按鈕就能清理正在運(yùn)行的應(yīng)用程序。

進(jìn)程管理用例說明表(表 3.6):

表 3.6 進(jìn)程管理功能用例說明表

用例名稱:進(jìn)程管理功能用用例
參與者:用戶
目標(biāo):根據(jù)用戶的操作結(jié)束特定的進(jìn)程
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1.進(jìn)入進(jìn)程管理界面 2.選擇需要停止的應(yīng)用程序 3.單擊停止按鈕結(jié)束所選進(jìn)程

3.5 程序鎖功能需求分析與設(shè)計(jì)

在日常生活中,好友之間可能會(huì)互相借手機(jī)打電話或者是玩游戲,但是用戶不想讓好友看自己手機(jī)里的某些私密應(yīng)用程序,如果給手機(jī)的鎖屏加上密碼,那么每次解鎖屏幕的時(shí)候都得輸入密碼,自己用著也會(huì)麻煩,而且手機(jī)解鎖屏幕后給玩游戲的話好友可以操作手機(jī)上的任意一個(gè)應(yīng)用程序。

程序鎖功能就是為了解決以上問題,用戶不必給屏幕加密碼鎖,只需要給特定的應(yīng)用加上應(yīng)用鎖就可以了,只有解屏后第一次進(jìn)入加鎖的應(yīng)用程序才會(huì)要求輸入程序鎖密碼,在應(yīng)用解鎖后只要沒有鎖屏的情況下,即使用戶退出應(yīng)用程序界面再次進(jìn)入時(shí)不需要輸入密碼,此時(shí)如果好友再讓你借手機(jī)給他玩,那么用戶只需要把屏幕關(guān)閉后給他,除了用戶的加鎖程序,其他程序好友都可以玩。

設(shè)置程序鎖狀態(tài)用例說明表(表 3.7)、添加需要保護(hù)的應(yīng)用用例說明表(表 3.8)、移除已加鎖應(yīng)用用例說明表(表 3.9):

表 3.7 設(shè)置程序鎖狀態(tài)用例說明表

用例名稱:設(shè)置程序鎖狀態(tài)用例
參與者:用戶
目標(biāo):按照用戶指定的方式設(shè)置程序鎖狀態(tài)
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1. 進(jìn)入設(shè)置中心界面 2. 點(diǎn)擊程序鎖條目,選擇程序鎖條目設(shè)置程序鎖的狀態(tài)

表 3.8 添加需要保護(hù)的應(yīng)用用例說明表

用例名稱:添加需要保護(hù)的應(yīng)用用例
參與者:用戶
目標(biāo):添加應(yīng)用程序到已加鎖應(yīng)用列表中
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1. 進(jìn)入程序鎖界面 2. 點(diǎn)擊未加鎖列表中的應(yīng)用條目

表 3.9 移除已加鎖應(yīng)用用例說明表

用例名稱:移除已經(jīng)加鎖的應(yīng)用用例
參與者:用戶
目標(biāo):從已加鎖應(yīng)用列表中移除應(yīng)用程序
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1. 進(jìn)入程序鎖界面 2. 點(diǎn)擊已加鎖標(biāo)簽 3. 點(diǎn)擊已加鎖列表中的應(yīng)用條目

3.6 手機(jī)殺毒功能需求分析與設(shè)計(jì)

手機(jī)安全廠商和各大應(yīng)用市場(chǎng)收集了市面上常見的病毒軟件,本功能需要收集他們所提供的病毒軟件的包名,將其存儲(chǔ)到本地?cái)?shù)據(jù)庫(kù)中,在執(zhí)行病毒掃描的時(shí)候?qū)⑹謾C(jī)中所有已安裝的用戶程序包名與病毒數(shù)據(jù)庫(kù)中的包名進(jìn)行對(duì)比,如果相同則詢問用戶是否卸載該應(yīng)用程序。

3.7 系統(tǒng)優(yōu)化功能需求分析與設(shè)計(jì)

清理應(yīng)用程序緩存在手機(jī)中的緩存數(shù)據(jù),但是這需要具備 root 權(quán)限,所以本應(yīng)用的實(shí)現(xiàn)方式打開系統(tǒng)自帶的查看應(yīng)用程序詳細(xì)信息界面,在該界面中清理緩存數(shù)據(jù)。

3.8 自動(dòng)升級(jí)功能需求分析與設(shè)計(jì)

升級(jí)方式用例說明表(表 3.10)、自動(dòng)升級(jí)用例說明表(表 3.11):

表 3.10 升級(jí)方式用例說明表

用例名稱:應(yīng)用升級(jí)方式用例
參與者:用戶
目標(biāo):按照用戶指定的方式設(shè)置應(yīng)用升級(jí)方式
前置條件:進(jìn)入應(yīng)用程序主界面
基本事件流:1. 進(jìn)入設(shè)置中心界面 2. 點(diǎn)擊自動(dòng)更新條目,選擇升級(jí)方式

表 3.11 自動(dòng)升級(jí)用例說明表

用例名稱:青蛙衛(wèi)士自動(dòng)升級(jí)用例
參與者:用戶
目標(biāo):在 wifi 打開的情況下,按照用戶指定的升級(jí)方式升級(jí)應(yīng)用程序
前置條件:進(jìn)入安全衛(wèi)士歡迎界面
基本事件流:1.用戶允許手機(jī)安全衛(wèi)士應(yīng)用程序 2.程序自動(dòng)判斷應(yīng)用程序當(dāng)前版本和服務(wù)器最新版本,并顯示 3.在彈出的對(duì)話框中選擇立即更新

第 4 章 手機(jī)安全衛(wèi)士詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

4.1 歡迎界面實(shí)現(xiàn)

該界面的主要功能是顯示軟件升級(jí)信息和初始化應(yīng)用程序,如果服務(wù)器的最新版本和當(dāng)前版本相同則顯示應(yīng)用的當(dāng)前版本信息,否則顯示提示升級(jí)信息對(duì)話框,用戶根據(jù)需要自行決定是否升級(jí)。

歡迎界面提示用戶升級(jí)應(yīng)用的實(shí)現(xiàn)如圖 4.1 所示:

圖 4.1 歡迎界面提示用戶升級(jí)應(yīng)用

歡迎界面正在升級(jí)應(yīng)用程序的實(shí)現(xiàn)如圖 4.2 所示:

圖 4.2 歡迎界面正在升級(jí)應(yīng)用

4.1.1 檢查升級(jí)功能實(shí)現(xiàn)

判斷當(dāng)前用戶是否設(shè)置了自動(dòng)更新應(yīng)用程序,手機(jī)有沒有鏈接 wifi,如果有設(shè)置自動(dòng)更新并且已鏈接 wifi,則從服務(wù)器獲取最新版本信息和本地版本對(duì)比,如果本地版本號(hào)低于服務(wù)器版本號(hào),則彈出升級(jí)對(duì)話框供用戶選擇是否立即升級(jí)。

4.1.2 升級(jí)對(duì)話框顯示功能實(shí)現(xiàn)

升級(jí)對(duì)話框采用自定義的對(duì)話框,創(chuàng)建一個(gè)自定義對(duì)話框類繼承于 Dialog 類,其關(guān)鍵是編寫自定義布局文件和重寫構(gòu)造方法,實(shí)現(xiàn)該對(duì)話框能在應(yīng)用的其他功能模塊中能重用。

首先通過抽取樣式文件,達(dá)到樣式代碼的重用,然后通過重寫構(gòu)造方法,根據(jù)不同的應(yīng)用場(chǎng)景傳遞不同的參數(shù),達(dá)到自定義對(duì)話框的重用。

4.2 應(yīng)用程序主界面實(shí)現(xiàn)

應(yīng)用程序主頁是展示程序的各個(gè)功能模塊,從而使用戶能夠快速進(jìn)入到自己想使用的功能。該界面的另一個(gè)很重要的功能就是修改程序鎖密碼,在該界面連續(xù)三次點(diǎn)擊菜單按鈕彈出修改密碼對(duì)話框。

其中,應(yīng)用程序主界面密碼認(rèn)證的實(shí)現(xiàn)如圖 4.3 所示:

圖 4.3 應(yīng)用程序主界面密碼認(rèn)證

應(yīng)用程序主界面功能列表的實(shí)現(xiàn)如圖 4.4 所示:

圖 4.4 應(yīng)用程序主界面功能列表

4.3 程序鎖實(shí)現(xiàn)

通過幀布局實(shí)現(xiàn) Android 界面的復(fù)雜布局,在頁面的底部放置兩個(gè)按鈕控制 FrameLayout 里的兩個(gè) ListView 的顯示與否,模擬出 TabHost 的效果。由于已加鎖應(yīng)用和未加鎖應(yīng)用列表極其相似,所以這里只需在編寫一個(gè) ListView 適配器,在適配器中通過一個(gè) flag 標(biāo)記區(qū)分當(dāng)前適配器是未加鎖適配器還是已加鎖適配器。為了提升程序鎖的運(yùn)行效率,不每次都從數(shù)據(jù)庫(kù)中獲取最新已加鎖應(yīng)用程序列表,而是用兩個(gè)集合來分表保存已加鎖應(yīng)用程序和臨時(shí)不需要保護(hù)的應(yīng)用程序,在每一次收到鎖屏事件的時(shí)候清空臨時(shí)不需要保護(hù)的集合,在解鎖某一個(gè)應(yīng)用程序的時(shí)候?qū)⒃搼?yīng)用程序加入到臨時(shí)停止保護(hù)的集合中。需要注意的是,這里需要通過代碼的方式注冊(cè)監(jiān)聽鎖屏事件的廣播和解屏事件的廣播。

已加鎖應(yīng)用界面的實(shí)現(xiàn)如圖 4.5 所示:

圖 4.5 已加鎖應(yīng)用界面

未加鎖應(yīng)用界面的實(shí)現(xiàn)如圖 4.6 所示:

圖 4.6 未加鎖應(yīng)用界面

程序鎖密碼認(rèn)證界面的實(shí)現(xiàn)如圖 4.7 所示:

圖 4.7 程序鎖密碼認(rèn)證界面

4.4 手機(jī)防盜實(shí)現(xiàn)

手機(jī)防盜界面主要是編寫 ListView 及其適配器,根據(jù)用戶點(diǎn)擊不同的條目彈出不同類型的自定義對(duì)話框,有些對(duì)話框功能不同,但是內(nèi)容的格式完全相同,這就需要重寫自定義度畫框的構(gòu)造方法,根據(jù)傳入?yún)?shù)的不同顯示不同內(nèi)容和類型的自定義對(duì)話框。

手機(jī)防盜功能列表界面的實(shí)現(xiàn)如圖 4.8 所示:

圖 4.8 手機(jī)防盜功能列表界面

手機(jī)防盜界面設(shè)置安全手機(jī)號(hào)碼界面的實(shí)現(xiàn)如圖 4.9 所示:

圖 4.9 手機(jī)防盜綁定安全手機(jī)號(hào)碼界面

4.5 手機(jī)殺毒實(shí)現(xiàn)

在 Android 系統(tǒng)中,每一個(gè)應(yīng)用程序都有一個(gè)簽名信息。通過反編譯 360 手機(jī)安全衛(wèi)士,獲取離線病毒數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)中存放了世面上已經(jīng)存在的病毒應(yīng)用的簽名的 MD5 信息。當(dāng)用戶進(jìn)入手機(jī)殺毒界面時(shí),通過系統(tǒng) API 提供的包管理器獲取系統(tǒng)中已安裝應(yīng)用的簽名 MD5 信息,并與離線數(shù)據(jù)庫(kù)中的信息對(duì)比,如果該簽名信息在病毒數(shù)據(jù)庫(kù)中存在,則彈出對(duì)話框提示用戶卸載包含病毒信息應(yīng)用的應(yīng)用程序。

正在掃描病毒界面的實(shí)現(xiàn)如圖 4.10 所示:

圖 4.10 正在掃描病毒界面

發(fā)現(xiàn)病毒應(yīng)用提示用戶卸載界面的實(shí)現(xiàn)如圖 4.11 所示:

圖 4.11 發(fā)現(xiàn)病毒應(yīng)用提示用戶卸載界面

4.6 系統(tǒng)優(yōu)化實(shí)現(xiàn)

通過系統(tǒng) API 提供的包管理器獲取每個(gè)應(yīng)用程序所占的存儲(chǔ)空間,并通過 ListView 展示給用戶,由于 Google 工程師為了提升 Android 系統(tǒng)的安全性,沒有 Root 權(quán)限不能刪除其他應(yīng)用的數(shù)據(jù)信息,本應(yīng)用的實(shí)現(xiàn)方式是當(dāng)用戶點(diǎn)擊某個(gè)應(yīng)用條目時(shí),通過顯式意圖跳轉(zhuǎn)到系統(tǒng)自帶應(yīng)用數(shù)據(jù)信息清理界面清理緩存數(shù)據(jù)。

系統(tǒng)優(yōu)化界面的實(shí)現(xiàn)如圖 4.12 所示:

圖 4.12 系統(tǒng)優(yōu)化界面

4.7 通訊衛(wèi)士實(shí)現(xiàn)

通訊衛(wèi)士界面主要也是便表列表和適配器,在注冊(cè)監(jiān)聽電話到來和短信到來事件的廣播接收者時(shí),需要將其優(yōu)先級(jí)設(shè)置到最大值,以確保本應(yīng)用最先收到這兩個(gè)廣播事件,在第一時(shí)間掛斷電話以及刪除最近一條通話記錄和短信記錄,避免用戶看到臟數(shù)據(jù)。

黑名單管理界面的實(shí)現(xiàn)如圖 4.13 所示:

圖 4.13 黑名單管理界面

添加黑名單界面的實(shí)現(xiàn)如圖 4.14 所示

圖 4.14 添加黑名單界面

4.8 軟件管理實(shí)現(xiàn)

通過系統(tǒng) API 提供的包管理器,獲取手機(jī)中已安裝的應(yīng)用程序并通過 ListView 展示給用戶,當(dāng)用戶點(diǎn)擊某個(gè)應(yīng)用條目后,通過彈出 PupupWindow 顯示功能對(duì)話框。當(dāng)用戶點(diǎn)擊運(yùn)行按鈕時(shí),通過顯式意圖運(yùn)行某個(gè)應(yīng)用程序。當(dāng)用戶點(diǎn)擊卸載按鈕時(shí),通過隱式意圖調(diào)用系統(tǒng)軟件管理器卸載軟件。當(dāng)用戶點(diǎn)擊分享按鈕時(shí),通過調(diào)用系統(tǒng)短信發(fā)送器發(fā)送要分享的應(yīng)用的基本信息以及在 GooglePlay 上的下載地址給好友。

軟件管理界面的實(shí)現(xiàn)如圖 4.15 所示:

圖 4.15 軟件管理界面

4.9 高級(jí)工具實(shí)現(xiàn)

高級(jí)工具主要提供手機(jī)號(hào)碼歸屬地查詢和常用號(hào)碼查詢功能。通過反編譯 QQ 通訊錄,獲取手機(jī)號(hào)碼歸屬地?cái)?shù)據(jù)庫(kù),將用戶輸入的手機(jī)號(hào)碼與該數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行匹配獲取手機(jī)號(hào)碼歸屬地并顯示給用戶。通過互聯(lián)網(wǎng)獲取常用手機(jī)號(hào)碼,并錄入到自定義數(shù)據(jù)庫(kù)中,用戶查看常用號(hào)碼時(shí)將該數(shù)據(jù)庫(kù)中的數(shù)據(jù)顯示給用戶,當(dāng)用戶點(diǎn)擊通用號(hào)碼條目時(shí),通過隱式意圖跳轉(zhuǎn)撥號(hào)界面。

號(hào)碼歸屬地查詢界面的實(shí)現(xiàn)如圖 4.15 所示:

圖 4.16 號(hào)碼歸屬地查詢界面

常用號(hào)碼查詢界面的實(shí)現(xiàn)如圖 4.16 所示:

圖 4.17 常用號(hào)碼查詢界面

4.10 系統(tǒng)設(shè)置實(shí)現(xiàn)

系統(tǒng)設(shè)置界面的難點(diǎn)是通過自定義組合控件的方式實(shí)現(xiàn)自定義 view,從而使每一個(gè)設(shè)置條目只需要引用一個(gè)組件,實(shí)現(xiàn)代碼的復(fù)用。為了防止用戶打開 Android 系統(tǒng)自帶的設(shè)置界面關(guān)掉安全衛(wèi)士中的某些服務(wù)出現(xiàn)臟數(shù)據(jù),每次顯示該界面的時(shí)候必須在 onStart 方法內(nèi)重新獲取最新數(shù)據(jù)。

系統(tǒng)設(shè)置界面的實(shí)現(xiàn)如圖 4.18 所示:

圖 4.18 系統(tǒng)設(shè)置界面

來電歸屬地運(yùn)行效果界面的實(shí)現(xiàn)如圖 4.19 所示:

圖 4.19 來電歸屬地運(yùn)行效果

第 5 章 結(jié)論與展望

5.1 結(jié)論

半年前,對(duì)畢業(yè)后有著強(qiáng)烈意愿從事 Android 開發(fā)工作的我,選擇了基于 Android 平臺(tái)的手機(jī)安全衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)這個(gè)課題作為我的畢業(yè)課題,在長(zhǎng)達(dá)三個(gè)月的 Android 實(shí)習(xí)工作中學(xué)習(xí)到了從事 Android 開發(fā)工作必備的一些技能,例如屏幕適配、兼容多版本系統(tǒng)等,了解了移動(dòng)應(yīng)用程序開發(fā)的基本流程,同時(shí)在林老師的細(xì)心指導(dǎo)下完成了我的畢業(yè)設(shè)計(jì)作品《青蛙衛(wèi)士》。

由于 Android 是基于 Linux 系統(tǒng)的,所以我嘗試著去學(xué)習(xí) Linux 操作系統(tǒng),在這半年里我學(xué)會(huì)了 Ubuntu 系統(tǒng)中開發(fā)人員必備一些技能,例如掌握 Ubuntu 系統(tǒng)下開發(fā) Android 應(yīng)用程序的能力,學(xué)會(huì)使用 Ubuntu 系統(tǒng)中的常用辦公軟件等。在編寫青蛙衛(wèi)士的過程中鞏固了 Android 的基礎(chǔ)知識(shí),通過看別人的技術(shù)博客掌握了 Android 中常見動(dòng)畫效果、編寫自定義組件、編寫自定義組合控件以及加深了對(duì) Framework 層 API 的印象,從以前看教學(xué)視頻學(xué)習(xí)編程過度到看技術(shù)博客學(xué)習(xí)編程,為以后的職業(yè)生涯打下了堅(jiān)實(shí)的基礎(chǔ)。

5.2 進(jìn)一步工作的方向

目前為止,青蛙衛(wèi)士的功能基本上都實(shí)現(xiàn)了,但是在一些功能中仍存在不完善之處,例如手機(jī)防盜模塊沒有實(shí)現(xiàn)每次手機(jī)重啟完畢后調(diào)用系統(tǒng)前置攝像頭拍照以便手機(jī)丟失后獲取小偷的長(zhǎng)相、沒有加入第三方平臺(tái)用戶登錄、沒有編寫后臺(tái)管理系統(tǒng)上傳和恢復(fù)用戶數(shù)據(jù)等。作為一個(gè)手機(jī)安全衛(wèi)士,功能還需在日后的工作中進(jìn)一步地考查調(diào)研并完善。

?? 資源

大小: 26.8MB
?? 資源下載:https://download.csdn.net/download/s1t16/87379046

總結(jié)

以上是生活随笔為你收集整理的基于 Android 平台的手机安全卫士的设计与实现【100010420】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。