一、保持螢幕常亮
原則:有喚起螢幕常亮的**必須有移除螢幕常亮的**。
原因:有保持螢幕常亮的**,cpu一直在執行。
1、增加flag
getwindow().addflags(windowmanager.layoutparams.flag_keep_screen_on); //喚醒
getwindow().clearflags(windowmanager.layoutparams.flag_keep_screen_on); //移除
3、控制項屬性 作用在控制項的生命週期內
二、service 服務
普通服務一旦啟動之後,就會一直處於執行狀態,必須呼叫stopservice()或者stopself()方法才能讓服務停止下來。android專門提供了乙個intentservice類,intentservice在執行完畢後自動停止,減少耗電量。
三、ui層級
原則:ui層級越深,越耗電
原因:層級越深,cpu和gpu的繪製越耗費時間,越耗電。
**:include、merge、viewstub
四、alarm機制和timer
alarm往往用在執行定時任務,因此具有喚醒cpu的功能。可根據需求,最大程度的降低cpu的喚醒頻率。
timer也可以執行定時任務,但是當手機進入休眠狀態時,timer會失效,但是也要在**中注意timer的注入和移除。
五、view 設定透明度
mimageview.setalpha()
原則:盡量少用,盡量減小作用域 原因:會呼叫底層的cpu和gpu進行重繪,以致耗費電量。
六、利用jobscheduler api
過去,如果開發人員想通過後台調取伺服器資料,或完成某些處理工作,應用程式必須先監聽是否有事件正在發生,並為自己設定乙個喚醒時間,一旦應用程式開始執行,他需要檢查各種環境條件,以確定是否具備條件讓它完成工作,還是需要稍後再試,這種方式不僅複雜,而且容易出錯,它會不斷的浪費資源,比如當 乙個應用程式被喚醒後,發現條件不符合就只能去睡覺並為下次喚醒再次設定時間,這是乙個反覆的過程。 這個問題,將引用jobscheduler來修復,它作為乙個排程應用程式,負責當應用程式被喚醒時,提供適當的執行環境,所以開發者不用再讓程式檢測環境是否符合需求,開發人員只需要按照標準的流程來,排程程式會自動為喚醒的程式,準備好執行環境。 jobscheduler的優勢相當巨大,它不僅可以幫助手機節省電量, 實際由於不在需要監聽,更改和設定報警,還可以幫助開發人員減少**書寫量。目前該jobscheduler類,已經加入android l開發者預覽版。
七、網路請求
wifi網路請求會比流動網路請求下省電。在蜂窩流動網路下,最好做到批量執行網路請求,盡量避免頻繁的間隔網路請求。
八、工具
得到了原始的電量消耗資料之後,我們需要通過google編寫的乙個python指令碼把資料資訊轉換成可讀性更好的html檔案。
python historian.py ***.txt > ***.html
android專案 開發過程中需要時刻注意的
菜鳥入門級別程式設計師,頭一回做上線專案。經驗不足導致專案在開發完成之後bug 百出,小記一下在以後的開發過程中需要時刻注意的點 1,規範很重要 在後期的 整理的過程中,回頭看才發現,各種亂七八遭的多餘 邏輯混亂的 在專案進行的過程中一定要注意,先理清邏輯再敲 摒棄多餘 該省就省。2,記憶體優化 安...
遊戲開發過程中需求變化那些事
隨著軟體專案越來越龐大,為了提高開發效率和有效的質量管控,開發過程中的專案管理越來越重要,流程分工也在不斷細化。傳統的軟體開發過程分大致分為如下幾個步驟 需求提出 可行性分析 需求分析 概要設計 詳細設計 編碼測試 整合交付 產品的最終形態和功能都是第一步的需求所決定,蝴蝶效應 在開發過程中體現特別...
Android開發過程中需要注意的細節
git 使用 rebase 命令來合併分支,盡量不要直接 merge 導致分支 日誌混亂。開發新功能時,自己在本地建立 feature 分支開發,功能開發完畢之後,參照上面合併流程操作功能的合併,並刪除本地分支,注意不要將本地分支推送到伺服器。平時開發只在 develop 分支和自己的本地分支操作,...