freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文基于android的手機(jī)電池保姆軟件的設(shè)計(jì)與實(shí)現(xiàn)-閱讀頁(yè)

2025-07-08 08:20本頁(yè)面
  

【正文】 件的打開退出模式,軟件的版本信息。調(diào)用如下:()。//顯示tabhost啟動(dòng)時(shí)顯示的畫面tabwidget是托盤部分,用來(lái)存放tab標(biāo)簽,相當(dāng)于四個(gè)按鈕來(lái)控制四個(gè)屏幕界面,本軟件四個(gè)按鈕分別為省電、充電、模式、排行。Tabspec用來(lái)存放tab標(biāo)簽,tabcontent相當(dāng)于四個(gè)控制的目錄,當(dāng)點(diǎn)擊tabspec中的一個(gè)按鈕,tabcontent進(jìn)入到對(duì)應(yīng)界面。//設(shè)定標(biāo)簽值TextView tvTab1 = (TextView) tabIndicator1 .findViewById()。 ()。 //點(diǎn)擊tabspec下的按鈕,進(jìn)入對(duì)應(yīng)的屏幕((A) .setIndicator(tabIndicator1).setContent(intent))。}軟件后臺(tái)運(yùn)行,在退出軟件時(shí),為了能使軟件一直監(jiān)聽(tīng)程序耗電情況,所以必須要軟件后臺(tái)運(yùn)行,可以在用戶點(diǎn)擊返回鍵的情況下,屏蔽返回鍵功能,來(lái)實(shí)現(xiàn)程序后臺(tái)運(yùn)行,具體后臺(tái)實(shí)現(xiàn)代碼如下://改寫返回鍵事件監(jiān)聽(tīng),使得back鍵功能類似home鍵,讓Acitivty退至后臺(tái)時(shí)不被系統(tǒng)銷毀 public boolean onKeyDown(int keyCode, KeyEvent event){//調(diào)用包管理器PackageManager pm = getPackageManager()。//當(dāng)按下系統(tǒng)返回鍵,比進(jìn)行程序的關(guān)閉,而是將打開程序標(biāo)記并保留在后臺(tái)if (keyCode == ) { ActivityInfo ai = 。 ()。 //打開界面 startActivitySafely(startIntent)。 } else return (keyCode, event)。 try { startActivity(intent)。 } catch (SecurityException e) { //錯(cuò)誤處理 (this, null, ).show()。(1)開始按鈕動(dòng)態(tài)展示,是通過(guò)不斷切換按鈕圖片來(lái)實(shí)現(xiàn),此時(shí)需要啟動(dòng)一個(gè)線程來(lái)控制圖片運(yùn)動(dòng)時(shí)間,但是開啟線程之后,需要在主線程中開啟一個(gè)Handler來(lái)接收該子線程發(fā)送的數(shù)據(jù),代碼如下://開啟新的線程,處理數(shù)據(jù)new Thread(){ public void run(){ int i =1。 //循環(huán)改變level值 while(i38) { i++。 = level。 level = level + 5。 //更改圖標(biāo)的背景圖片 ()。 if(==0){ ()。 Intent intent = new Intent (, )。 } } } (msg)。 (2)優(yōu)化后界面切換,通過(guò)啟動(dòng)一個(gè)線程,監(jiān)聽(tīng)程序運(yùn)行狀態(tài),等運(yùn)行結(jié)束,再將界面值更改,眾所周知,操作系統(tǒng)處理數(shù)據(jù)是一個(gè)很快的過(guò)程,有時(shí)候快的讓人們很難適應(yīng)過(guò)來(lái),所以通過(guò)一定的緩沖等待時(shí)間,來(lái)扮演系統(tǒng)后臺(tái)在做大量的設(shè)置和計(jì)算,優(yōu)化過(guò)程的等待也給予用戶一定的好的體驗(yàn)感受,經(jīng)過(guò)測(cè)試,將等待時(shí)間設(shè)置為2秒左右最合適,實(shí)現(xiàn)如下://啟動(dòng)線程監(jiān)聽(tīng) new Thread() { public void run() { try { //暫停2秒 sleep(2000)。 } catch (InterruptedException e) { // TODO Autogenerated catch block ()。//更改優(yōu)化后狀態(tài)值switch () { case 1: (完成)。 break。獲取正在運(yùn)行的應(yīng)用,并加入到list列表之中:runningTasks =(runningTasks.get(i).processName).FLAG_SYSTEM)==0 ||(runningTasks.get(i).processName).equals() ||(runningTasks.get(i).processName).equals() ||(runningTasks.get(i).processName).equals() ||(runningTasks.get(i).processName).equals() ||(runningTasks.get(i).processName).equals()||(runningTasks.get(i).processName).equals()||(runningTasks.get(i).processName).equals()||(runningTasks.get(i).processName).equals()||(runningTasks.get(i).processName).equals()||(runningTasks.get(i).processName).equals()||(runningTasks.get(i).processName).equals())獲取程序占用內(nèi)存大小是通過(guò)調(diào)用系統(tǒng)文件管理的API來(lái)實(shí)現(xiàn)的,內(nèi)存大小主要是以KB為單位,但是如果內(nèi)存過(guò)大,通過(guò)轉(zhuǎn)換,變?yōu)镸B或GB為單位:[] memoryInfo = am .getProcessMemoryInfo(myMempid)。關(guān)閉所有進(jìn)程方法也是通過(guò)調(diào)用ActivityManager,殺死進(jìn)程有好幾種方法,這里可以通過(guò)調(diào)用restartPackage來(lái)關(guān)閉正在運(yùn)行的進(jìn)程或服務(wù):ActivityManager am = (ActivityManager) getSystemService ()。j()。 //根據(jù)包名殺死應(yīng)用程序 (packageName)。} 充電功能代碼實(shí)現(xiàn)充電功能主要有電池狀態(tài)檢測(cè)、充電階段檢測(cè)功能,知識(shí)小講堂。因此軟件啟動(dòng)了一個(gè)服務(wù)來(lái)實(shí)時(shí)檢測(cè)電池信息,具體實(shí)現(xiàn)如下:?jiǎn)?dòng)一個(gè)服務(wù)Intent startService=new Intent(this,)。public void onStart(Intent intent,int startId){ (intent, startId)。 //狀態(tài)信息 currentBatteryStatus=(status, 0)。 //電池健康狀態(tài) currentBatteryHealth=(health, 0)。 //獲取電池電壓值 currentBatteryVoltage=(voltage,0)。 //獲取充電方式 currentBatteryPlugged=(plugged,0)。(2)充電階段檢測(cè)功能,主要檢測(cè)手機(jī)是否處于充電狀態(tài),以及處于哪個(gè)充電階段,手機(jī)充電觸發(fā)的實(shí)現(xiàn)和充電階段的判定實(shí)現(xiàn)如下://注冊(cè)廣播,監(jiān)聽(tīng)充電觸發(fā)、斷開充電觸發(fā)registerReceiver(powerConnectedReceiver,new IntentFilter())。電池充電分為三個(gè)階段,當(dāng)電量低于80%時(shí),處于第一階段;當(dāng)電量高于80%低于100%時(shí),處于第二階段;當(dāng)電量剛好充滿到30分鐘之后,處于第三階段,充電處于哪個(gè)階段的判定以及功能設(shè)定switch(currentBatteryStatus){//當(dāng)電池處于充電狀態(tài),檢測(cè)充電階段 case 2: if(currentBatteryLevel=80amp。currentBatteryLevel100){ //充電第二階段設(shè)置各個(gè)圖片值 ()。 ()。 ()。 } //電池顯示為充電狀態(tài) ()。}當(dāng)電池電量剛好充滿,進(jìn)入第三階段時(shí),在運(yùn)行的服務(wù)中定義一個(gè)時(shí)鐘計(jì)算器,當(dāng)該階段進(jìn)行30分鐘之后,設(shè)定第三階段完成,提醒用戶停止充電以保護(hù)電池。//等待時(shí)間30分鐘long pause=1000*60*30。(,now+pause,pendingIntent)。(1)檢測(cè)和更改系統(tǒng)設(shè)置,主要檢測(cè)系統(tǒng)耗電設(shè)置:屏幕亮度、自動(dòng)鎖屏、數(shù)據(jù)連接、WiFi、藍(lán)牙、GPS、靜音、振動(dòng),各種設(shè)置的實(shí)現(xiàn)和更改如下:屏幕亮度檢測(cè)與更改實(shí)現(xiàn)主要是調(diào)用系統(tǒng)settingsscreenMode = (getContentResolver(), )。主要實(shí)現(xiàn)如下://獲取屏幕亮度數(shù)據(jù)screenBrightness = (getContentResolver(), )。//保存當(dāng)前的屏幕亮度值,并使之生效Window localWindow = getWindow()。//將亮度值更改為float型float f = paramInt / 。//設(shè)置屏幕亮度(localLayoutParams)。//更改鎖屏?xí)r間(getContentResolver(), Settings ., paramInt)。 if (mBluetoothAdapter == null) { return。amp。 }//關(guān)閉藍(lán)牙if (()amp。checked == 0) { ()。 //設(shè)置為靜音模式()。(2)數(shù)據(jù)庫(kù)存儲(chǔ),主要運(yùn)用SQLite小型數(shù)據(jù)庫(kù),保存各個(gè)模式的狀態(tài)數(shù)據(jù),所需技術(shù)如下://加入數(shù)據(jù)庫(kù)dbHelper dbhelper = new dbHelper()。//數(shù)據(jù)更新(model, st)。(new TimerTask(){ Override public void run() { ()。 final int minute = ()。amp。amp。 }} 排行功能代碼實(shí)現(xiàn)排行功能,主要實(shí)現(xiàn)系統(tǒng)各個(gè)程序耗電排行以及調(diào)用系統(tǒng)程序詳細(xì)信息界面。具體計(jì)算和實(shí)現(xiàn)代碼如下:計(jì)算每字節(jié)的消耗量private double getAverageDataCost() { // TODO: Extract average bit rates from system final long WIFI_BPS = 1000000。 //獲取wifi消耗電量 final double WIFI_POWER = () / 3600。 // 移動(dòng)數(shù)據(jù)傳輸字節(jié)數(shù)量 final long mobileData = (mStatsType) + (mStatsType)。 // 傳輸時(shí)間(毫秒) final long radioDataUptimeMs = () / 1000。 // 每秒每字節(jié)的消耗 double mobileCostPerByte = MOBILE_POWER / (mobileBps / 8)。 // 平均消耗 if (wifiData + mobileData != 0) { //如果傳輸字節(jié)數(shù)不是空,則返回平均消耗值 return (mobileCostPerByte * mobileData + wifiCostPerByte * wifiData) / (mobileData + wifiData)。 } }屏幕占用消耗量private void addScreenUsage(long uSecNow) { double power = 0。 //電量總數(shù) power += screenOnTimeMs * ()。 //循環(huán)計(jì)算總電量 for (int i = 0。 i++) { double screenBinPower = screenFullPower * (i + ) / 。 //計(jì)算屏幕所消耗的總的電量 power += screenBinPower * brightnessTime。 } } //更改為秒 power /= 1000。 }獲取占用CPU時(shí)間if (() 0) { for (String, ? extends ent : ()) { //獲取日志記錄 if (DEBUG) (TAG, Process name = + ())。 //獲取用戶使用時(shí)間 Final long userTime = (which)。 //獲取前端使用時(shí)間 final long foregroundTime = (which)。 final long tmpCpuTime = (userTime + systemTime) * 10。 // 獲取總數(shù) for (int step = 0。 step++) { cpuSpeedStepTimes[step] = (step, which)。 } //如果使用時(shí)間為0,表示未使用 if (totalTimeAtSpeeds == 0) totalTimeAtSpeeds = 1。 for (int step = 0。 step++) { //某一頻率時(shí)間
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1