




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Android程序設(shè)計(jì)課程報(bào)告 題 目:360安全衛(wèi)士 專 業(yè):軟件工程 姓名學(xué) 號(hào): 一、 系統(tǒng)功能1.1 手機(jī)防盜手機(jī)防盜主要實(shí)現(xiàn)對(duì)手機(jī)的保護(hù),進(jìn)入“手機(jī)防盜”模塊,提示用戶設(shè)置手機(jī)保護(hù)密碼,設(shè)置密碼成功或者已經(jīng)設(shè)置后進(jìn)入保護(hù)程序,主要有以下幾個(gè)功能:SIM卡變更警報(bào)等。1.2 通訊衛(wèi)士通訊衛(wèi)士主要實(shí)現(xiàn)對(duì)手機(jī)通訊錄的備份,添加黑名單,防騷擾設(shè)置。1.3 手機(jī)殺毒手機(jī)殺毒主要實(shí)現(xiàn)對(duì)惡意軟件的掃描,通過(guò)調(diào)用數(shù)據(jù)庫(kù)中惡意軟件標(biāo)識(shí)特征來(lái)識(shí)別本機(jī)是否含有惡意軟件。1.4 軟件管理軟件管理實(shí)現(xiàn)對(duì)軟件的管理,包括系統(tǒng)軟件和用戶軟件,包含軟件的卸載程序。1.5 任務(wù)管理任務(wù)管理實(shí)現(xiàn)對(duì)系統(tǒng)內(nèi)存中的進(jìn)程進(jìn)行動(dòng)
2、態(tài)監(jiān)控,滿足用戶對(duì)無(wú)響應(yīng)占資源的進(jìn)程結(jié)束機(jī)制。但不允許用戶結(jié)束系統(tǒng)進(jìn)程。1.6 流量管理流量管理實(shí)現(xiàn)對(duì)各進(jìn)程訪問(wèn)網(wǎng)絡(luò)數(shù)據(jù)量的監(jiān)控。1.7 系統(tǒng)優(yōu)化系統(tǒng)優(yōu)化實(shí)現(xiàn)優(yōu)化系統(tǒng),對(duì)系統(tǒng)開(kāi)機(jī)項(xiàng)進(jìn)行優(yōu)化、系統(tǒng)垃圾清理。1.8 隱私空間隱私空間實(shí)現(xiàn)用戶保存一些重要的文件,訪問(wèn)需要獨(dú)立密碼。1.9 高級(jí)工具高級(jí)工具實(shí)現(xiàn)一些日常需要的幫助。1.10 設(shè)置中心設(shè)置中心實(shí)現(xiàn)用戶對(duì)操作習(xí)慣的設(shè)置,如界面顏色、升級(jí)服務(wù)、程序鎖、退出等操作。二、項(xiàng)目分析2.1 主界面新建類SplashActivity設(shè)置不要提示標(biāo)題欄并且全屏顯示。檢查是否升級(jí)版本。 protected void onCreate(Bundle saved
3、InstanceState) super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.splash);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);tv_version = (TextView) findViewById(R.id.tv_splash_version);ve
4、rsion = getVersion();tv_version.setText(版本號(hào) + version);ll = (LinearLayout) findViewById(R.id.ll_splash_main);AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);alphaAnimation.setDuration(2000);ll.startAnimation(alphaAnimation);progressDialog = new ProgressDialog(this);progressDialog.setP
5、rogressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.setMessage(正在下載.);new Thread()public void run() trysleep(3000);handler.sendEmptyMessage(0);catch (InterruptedException e)e.printStackTrace();.start();private void showUpdateDialog()AlertDialog.Builder builder = new AlertDialog.Builder(this
6、);builder.setIcon(android.R.drawable.ic_dialog_info);builder.setTitle(升級(jí)提醒);builder.setMessage(info.getDescription();builder.setCancelable(false);builder.setPositiveButton(確定, new DialogInterface.OnClickListener()Overridepublic void onClick(DialogInterface dialog, int which)if(Environment.getExterna
7、lStorageState().equals(Environment.MEDIA_MOUNTED)File dir = new File(Environment.getExternalStorageDirectory(), /security/update);if(!dir.exists()dir.mkdirs();String apkPath = Environment.getExternalStorageDirectory() + /security/update/new.apk;UpdateTask task = new UpdateTask(info.getUrl(), apkPath
8、);progressDialog.show();new Thread(task).start();elseToast.makeText(SplashActivity.this, SD卡不可用,請(qǐng)插入SD卡, Toast.LENGTH_SHORT).show();loadMainUI(););builder.setNegativeButton(取消, new DialogInterface.OnClickListener()Overridepublic void onClick(DialogInterface dialog, int which)loadMainUI(););builder.cr
9、eate().show();private boolean isNeedUpdate(String version)UpdateInfoService updateInfoService = new UpdateInfoService(this);tryinfo = updateInfoService.getUpdateInfo(R.string.serverUrl);String v = info.getVersion();if(v.equals(version)Log.i(TAG, 當(dāng)前版本: + version);Log.i(TAG, 最新版本: + v);loadMainUI();re
10、turn false;elseLog.i(TAG, 需要更新);return true;catch (Exception e)e.printStackTrace();Toast.makeText(this, 獲取更新信息異常,請(qǐng)稍后再試, Toast.LENGTH_SHORT).show();loadMainUI();return false;private String getVersion()tryPackageManager packageManager = getPackageManager();PackageInfo packageInfo = packageManager.getP
11、ackageInfo(getPackageName(), 0);return packageInfo.versionName;catch (NameNotFoundException e)e.printStackTrace();return 版本號(hào)未知;2.2 與服務(wù)器的交互2.2.1 tomcat配置好之后在update.xml里面添加一下內(nèi)容配置好服務(wù)器。其中這里的ip地址一定要寫你服務(wù)器所在的電腦的ip地址,需要在Security這個(gè)目錄下面放置一下new.apk的,用來(lái)更新的。1.0這里寫一些這個(gè)版本的特點(diǎn):8080/Security/new.apk2
12、.2.2 交互地址存起來(lái),在項(xiàng)目的values目錄下面新建一個(gè)config.xml文件 :8080/Security/update.xml2.2.3需要用一個(gè)model用來(lái)存放輸入的更新信息,并且需要新建類com.xiaobin.security.domain.UpdateInfo從服務(wù)器中讀取update.xml里面的內(nèi)容,拿到apk的下載地址,和最新版本與當(dāng)前版本的比較,查看是否下載。從服務(wù)器上讀取update.xml新建類與服務(wù)器交互。public UpdateInfo getUpdateInfo(int urlId) throws Exception
13、String path = context.getResources().getString(urlId);URL url = new URL(path);HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();httpURLConnection.setConnectTimeout(5000);httpURLConnection.setRequestMethod(GET);InputStream is = httpURLConnection.getInputStream();return Up
14、dateInfoParser.getUpdateInfo(is);/解析xml2.2 app更新的邏輯和主頁(yè)面下載apk需要另開(kāi)一個(gè)線程下載,新建類。有安裝邏輯后,用一個(gè)內(nèi)部類用來(lái)啟動(dòng)另一個(gè)線程下載。class UpdateTask implements Runnableprivate String path;private String filePath;public UpdateTask(String path, String filePath)this.path = path;this.filePath = filePath;Overridepublic void run()tryFil
15、e file = DownloadTask.getFile(path, filePath, progressDialog);progressDialog.dismiss();install(file);catch (Exception e)e.printStackTrace();progressDialog.dismiss();Toast.makeText(SplashActivity.this, 更新失敗, Toast.LENGTH_SHORT).show();loadMainUI();2.3 設(shè)置自定義對(duì)話框與啟動(dòng)activity2.3.1 在手機(jī)防盜界面設(shè)置一個(gè)快捷啟動(dòng)方式,就是在撥打電
16、話的時(shí)候,輸入一個(gè)特定的號(hào) 碼,然后就會(huì)啟動(dòng)手機(jī)防盜界面。接收打電話的廣播,捕獲它。并且在AndroifMainfest文件里面注冊(cè)這個(gè)廣播接收者。再加上相應(yīng)的權(quán)限。 public void onReceive(Context context, Intent intent)String outPhoneNumber = this.getResultData();if(outPhoneNumber.equals(1314)/當(dāng)監(jiān)聽(tīng)到用戶撥打的是1314的時(shí)候,就進(jìn)行下面的操作,你可以把撥打的號(hào)碼做成參數(shù)的形式,讓用戶可配置Intent i = new Intent(context, LostPr
17、otectedActivity.class);/這個(gè)很重要,如果沒(méi)有這一句,那就會(huì)報(bào)錯(cuò),這一句是因?yàn)槲覀兪窃谝粋€(gè)Receiver里面啟動(dòng)一個(gè)activity的,但activity的啟動(dòng),都是放到一個(gè)棧里面的,/但Receiver里面沒(méi)有那個(gè)棧,所以我們要在這里啟動(dòng)一個(gè)activity,那就必須要指定這行代碼啦i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);setResultData(null);/這行代碼是把廣播的數(shù)據(jù)設(shè)置為null,這樣就不會(huì)把剛剛那個(gè)號(hào)碼撥打出去啦,只會(huì)啟動(dòng)我們的activity2.3.2
18、 自定義對(duì)話框需要在styles.xml文件里面寫上所需的對(duì)話框的樣式,之后指定樣式dialog=new Dialog(this,R.style.MyDialog);2.4 加密當(dāng)用戶第一次啟動(dòng)手機(jī)防盜功能時(shí),輸入一次登陸密碼,之后每次進(jìn)入這個(gè)功能時(shí),都要輸入之前設(shè)置的登陸密碼。密碼是以MD5加密后放到SharedPreferences里。加密的工具類,邏輯是返回加密后的字節(jié)數(shù)組并把字節(jié)轉(zhuǎn)換成16進(jìn)制的字符串,如果這個(gè)字符串只有一個(gè)字符就要補(bǔ)0.MessageDigest messageDigest = MessageDigest.getInstance(MD5);/拿到MD5加密的對(duì)象byt
19、e bytes = messageDigest.digest(pwd.getBytes();/返回一個(gè)加密后的字節(jié)數(shù)組StringBuffer sb = new StringBuffer();String tmp;for(int i = 0; i bytes.length; i+)tmp = Integer.toHexString(0xff & bytesi);/把字節(jié)轉(zhuǎn)換為16進(jìn)制的字符串if(tmp.length() = 1)/如果這個(gè)字符串,只有一個(gè)字符,就要補(bǔ)0sb.append(0 + tmp);elsesb.append(tmp);2.5 優(yōu)化2.5.1 ListView和GridView效率很重要,需要避免在滑動(dòng)的時(shí)候出現(xiàn)了停頓等問(wèn)題。優(yōu)化是在adapter里面修改。是在進(jìn)行view繪制的時(shí)候進(jìn)行判斷是否繪制過(guò)。2.5.2 Button優(yōu)化樣式,需要把它的Background指定成xml2.6 設(shè)置向?qū)?個(gè)xml是向?qū)У慕缑妗?.6.1 切換activity時(shí)添加的效果需要通過(guò)overridePendingTransition來(lái)實(shí)現(xiàn)的。2.6.2 定義一個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任德育青春期教育計(jì)劃
- 影視制作安全事故應(yīng)急處理與報(bào)告流程他
- 路燈施工新技術(shù)應(yīng)用及售后計(jì)劃
- 國(guó)有企業(yè)人力資源規(guī)劃及執(zhí)行計(jì)劃
- 雨季施工已有設(shè)施加固措施
- 小學(xué)五年級(jí)美術(shù)上冊(cè)創(chuàng)新教學(xué)計(jì)劃
- 食品加工安全生產(chǎn)技術(shù)措施
- 三年級(jí)上冊(cè)道德與法治教育計(jì)劃
- 事業(yè)單位新員工培訓(xùn)作文范文
- 五年級(jí)中隊(duì)校園文化節(jié)活動(dòng)計(jì)劃
- 2024-2025學(xué)年初中信息技術(shù)(信息科技)七年級(jí)上冊(cè)蘇科版(2023)教學(xué)設(shè)計(jì)合集
- 課程思政示范課程申報(bào)書
- 2024年秋新外研版三年級(jí)上冊(cè)英語(yǔ)教學(xué)課件 Unit 1 第1課時(shí) Start up
- 《成人有創(chuàng)機(jī)械通氣氣道內(nèi)吸引技術(shù)操作》標(biāo)準(zhǔn)解讀
- 2021網(wǎng)絡(luò)布線省賽評(píng)分標(biāo)準(zhǔn)(公開(kāi)稿)
- DB32T-跨境電商零售進(jìn)口商品線下展示交易規(guī)范
- DL-T 567.2-2018火力發(fā)電廠燃料試驗(yàn)方法 第2部分:入爐煤粉樣品的采取和制備方法
- 湖南省長(zhǎng)沙市雨花區(qū)2023-2024學(xué)年五年級(jí)下學(xué)期期末考試英語(yǔ)試題
- 支氣管微生物組與肺部健康
- 江蘇省南京市2023-2024學(xué)年七年級(jí)下學(xué)期期末歷史試卷
- 一年級(jí)下冊(cè)口算題卡大全(口算練習(xí)題50套直接打印版)
評(píng)論
0/150
提交評(píng)論