應用執行總時間= 應用在linux核心態執行時間 + 應用在linux使用者態執行時間1)cpucpu工作總時間= 軟體執行期間cpu每個頻率下工作的時間之和比例
應用消耗的電量= cpu每個頻率等級下工作的時間比例/cpu工作總時間 * 應用執行總時間 * 不同頻率下消耗的電量 + 資料傳輸消耗的電量(wi-fi或者流動網路)+ 使用所有感測器消耗的電量 + 喚醒鎖消耗的電量。
根據網上資料顯示,cpu的使用率和功耗大小成正比。
2)wakelock
android為了節省電量,會在使用者無操作一段時間之後進入休眠狀態。wake_lock鎖是提供防止系統休眠的,意思就是程式給cpu加了這個鎖那系統就不會休眠。wakelock也是引起大多數功耗的最主要的原因。不斷頻繁喚醒系統或者長時間wakelock鎖沒有被釋放而引起系統無法休眠都是非常耗電的。
3)網路
a.傳輸大量的資料b.網路狀態的變化
4)動畫繪製
動畫的連續變化是由view的不斷重繪產生的效果,代價就是cpu或者gpu不斷的計算從而導致耗電高。
❤cpu使用率優化
避免複雜的計算和邏輯,警惕動畫的不斷重繪以及布局的過渡渲染,優化布局層次結構,合理使用include、merge。
❤wakelock優化
❤網路優化
❤心跳優化
在實際專案中遇到了許多業務都是需要依靠alarm定時去執行相關業務。定時任務特別多,在未梳理前都是各幹各的,心跳很亂,定時參差不齊。
統一心跳是就是我們接下來要做的事,把一些業務的心跳盡量統一靠攏。這 樣就不會特別頻繁的喚醒系統,消耗電量。
心跳這塊同事之前模仿借鑑系統alarm優化了一版,就是將臨近要執行的業務在一定時間範圍內的一次性喚醒執行。這樣集中管控定時,減少喚醒次數。如果對業務準確性不高建議使用jobshedule。
關於alarm的使用也要注意的一點就是:結合業務對定時的開始和結束要進行控制。不要忘記定時的關閉。
❤小結:具體的耗電點分析還是要實際結合**業務來看,以個人的工作經驗來看,上述的wakelock優化和心跳統一優化是最有效的。其他的網友也總結了一些其他的優化項,但是個人認為這兩個還是優化電量最直觀的了。
Transact SQL 乙個計算用電量的問題
下面是乙個計算用電量的問題,原本是乙個excel方面的面試題 白日平均用電 30度以內,0.4元每度,70度以上,1.2元每度 30到70,0.8元每度 晚間用電22點到早6點,統一按0.3元每度收取 現在有3戶,用電量是 戶,人數,白天用電,晚上用電 a 4,315 115 b 3,105 102...
Android電量優化
目前先寫乙個low版本的 過兩天來個超詳細版本的電量優化 學習自電量1.合理用wake lock不讓螢幕鎖定 並合理釋放wake lock 2.電量充足或者充電中的狀態,進行某些操作,如上傳歌曲 處理 3.打包零散網路請求,因為無線訊號的電量消耗是很大的 4.預取 5.jobscheduler等到正...
Android效能優化之電量優化
android應用開發中存在很多比較耗電的特性。例如網路,定位,感測器等,同時關於一些關鍵的api的正確使用也是有效降低應用耗電的手段,例如broadcastreceiver,alarmmanager,wakelock等。為了減少應用的損耗的電量,在 實現中需要盡量避免無用操作 的執行。當應用退到後...