1. 程式人生 > >Android效能優化之工具篇 — — 開發者選項

Android效能優化之工具篇 — — 開發者選項

Google為了方便開發者除錯Android程式專門開發了開發者選項功能,能夠讓開發者方便快捷除錯Android應用程式。對於一般使用者無需關注,所以往往開發者選項在新版本中都會隱藏,需要特殊操作才會展示入口,比如連續點選版本號等等。當然還有許多國內定製系統開啟開發者選項的方式不盡相同,有的還會閹割掉部分功能,在各個版本之間也存在一定的差異,其實真正使用到的也就幾項,我們現在只關心官方裝置提供的功能選項(本部落格使用的裝置為Nexus 4  Android 7.1)。

下面我們一一介紹一下各個選項代表的含義。

  • 提交錯誤報告

 

顧名思義,將本機上安卓系統的出錯日誌以及硬體裝置資訊傳送給Google。

  • 桌面備份密碼

設定或更新桌面完整備份的密碼。

  • 不鎖定螢幕

充電時螢幕不會休眠,當然是建議關閉了。

  • HDCP檢查

 

HDCP指的是高頻寬數字內容保護技術,他的出現是為了保證HDMI或者DVI傳輸的高清晰訊號不會被非法錄製。當用戶進行非法複製時,該技術會進行干擾,降低複製出來的影像的質量,從而對內容進行保護。該選項針對Android TV有效。

  • 啟用藍芽HCI資訊收集日誌

HCI指的是藍芽協議棧主機控制介面,開啟時會記錄藍芽互傳檔案的記錄。也很少去開啟這個。

  • 程序統計資訊


這是一個強大的程序管理器,展示了相關後臺服務資訊。您也可以在這裡管理執行程序等。

  • 圖片顏色模式

sRGB(standard Red Green Blue)提升色彩還原度,對比度,提升成像水平。

  • WebView實現

主要是用於APP與網頁互動,特別是混合開發,經常見的就是電商的APP,裡面大量使用了Android WebView。

  • 自動系統更新

類似IOS通用功能的“軟體更新”,自動更新系統用的,不開啟。

  • 演示模式

 

 

開啟後,會顯示演示模式,狀態列資訊不一定是真實的。

除錯相關                                                                                                               
  • USB除錯開關


這個作為開發者並不會陌生,我們在真機除錯APP檢視日誌的時候肯定要開啟這個開關,然後就可以通過adb命令管理手機上應用了。

  • 錯誤報告快捷方式

 

開啟後,長按電源鍵會彈出右邊的框框,說白了就是方便提交錯誤日誌用的。

  • 選擇模擬位置資訊應用

軟體開發人員對開發的某些定位軟體(一般為地圖軟體),做測試的時候使用的,功能是模擬手機目前所處的位置(比如手機當前實際位置在中國,但測試軟體時要求測試條件為美國,就可以使用該功能進行測試軟體模擬定位)。

  • 檢視屬性檢查



開啟工具Android Device Monitor的Hierarchy View檢視,選擇某一個View你就會發現該屬性


另外,在Debug模式下也能看到該屬性,返回值是String[]型別,如果關閉,則返回為null。


將檢視屬性資訊儲存在 View 例項的 mAttributes成員變數中,以便將這些資訊用於除錯,您可以通過佈局檢查器介面訪問屬性資訊(如果不啟用此選項,“Attributes”項將不可用)。

  • 選擇除錯應用


允許開發人員在PC上除錯某款應用。

  • 等待偵錯程式


如果開啟,其實就是下圖:


  • 通過USB驗證應用

可以檢測我們使用ADT除錯程式安裝的APP或者通過USB連線真機在adb命令列下安裝應用的安全性。

  • 日誌記錄快取大小

  

顧名思義。

  • 持久化儲存日誌資訊

 

不做過多解釋了。

網路相關                                                                                                               
  • 無線顯示認證

主要用於無線投屏用的。

  • WLAN記錄日誌

Service Set Identifier 無線網路中SSID,是路由器傳送的無線訊號的名字;Received Signal Strength Indication 接收的訊號強度指示,無線傳送層的可選部分,用來判定連結質量,以及是否增大廣播發送強度。

  • WLAN切換到行動網路

  • WLAN漫遊掃描


  • 始終開啟移動資料網路

  • 選擇USB配置

   

USB真機除錯日誌顯示不出來時,看一下該配置是否選的是僅充電。

  • 絕對音量功能


輸入                                                                                                                      
  • 顯示點按操作反饋

效果如下圖,建議平時玩玩就可以了,不需要開啟。


  • 指標位置

效果如下圖


繪圖                                                                                                                      
  • 顯示螢幕更新


當滾動螢幕或觸控或者系統自動重新整理使得螢幕上的某塊區域重新繪製時,該區域閃爍。建議:別開,容易亮瞎咱們的24k鈦合金眼。

  • 顯示佈局邊界


顯示當前頁面各個元件的邊界框架資訊,對於開發人員參考好的app設計有些幫助。效果如下


  • 強制從右向左佈局


效果如下,沒什麼用,主要針對某些國家的習慣的。


  • 視窗動畫相關

這三項決定了你對整個rom的動態感官體驗。比如啟動app、桌面滑屏、確認框的彈出等,有了動畫就會顯得很順滑以及和諧。關閉了或調節比例越低,會顯得切換動作較為生硬,但好處是對系統資源佔用就會降低。建議:保持前兩個為0.5x,最後一個為1x,在效能和體驗中間取個平衡。

  • 模擬輔助裝置

 

效果如下

 

會有一個小螢幕,用於模擬各種螢幕解析度的顯示效果

  • 最小寬度


用來改變螢幕寬度,可以模擬不同解析度的手機顯示效果,您比如下圖

 

硬體加速渲染                                                                                                        
  • 強制GPU渲染

安卓的軟體應用的介面可以使用cpu或gpu渲染,包括桌面。由於gpu處理圖形比cpu好,所以gpu渲染應用的介面會更流暢,同時減輕cpu的負擔。gpu強制渲染就是hwa(hard ware  acceleration硬體加速)的一種,能夠得到更好的優化。

但強制gpu也是有缺陷的。第一是強制GPU加速功能會增加功耗,降低待機時間。第二是,部分舊程式本身不支援gpu渲染,沒有硬體加速hwa的就會出現崩潰。比較老的程式因為SDK版本低不支援gpu加速,或者開發時預設不開啟gpu渲染,遇上gpu強制渲染就會出現問題。

  • 顯示GPU檢視更新

螢幕上的區域更新時閃爍響應的螢幕區域各種閃爍。

  • 顯示硬體層更新


哪裡會有更新啊。

  • 除錯GPU過度繪製


當使用GPU繪圖時,在螢幕上繪製不同的顏色來表明過度繪製的情況。過度繪製情況的好壞通過顏色來表示,從藍色、綠色、淡紅色到紅色 ,分別代表從好到壞的漸變(1x過度繪製、2x過度繪製、3x過度繪製和超過4x過度繪製)。介面上存在少量的淡紅色可以接受,但如果存在較多的大紅色就代表過度繪製有點嚴重了。暢玩總的來說還好,以正常色和藍綠色居多,說明GPU很智慧。突然發現“全部設定”和“常用設定”兩個標題是深紅色,過度繪製。。。

效果如下

 

好恐怖。。。。

  • 除錯非矩形裁剪區域

 

  • 強制啟動抗鋸齒


4倍抗鋸齒,遊戲達人應該對此很熟悉。經過小貝實測,對於暢玩的GPU來說,開啟此選項不會明顯的增加手機的發熱量,對於續航也影響不大,當然這是建立在我的遊戲時長比較短的情況下。但對畫質的提升還是蠻明顯的,地鐵跑酷、極品飛車,遊戲畫面的邊緣都有了明顯改善,更為細膩圓潤。建議:遊戲達人,開;普通使用者,隨意。

  • 停用HW疊加層


停用的話,所有應用將共享視訊記憶體,將不會經常檢查碰撞與裁剪以顯示一個合適的影象,將會耗費大量處理能力。而HW疊加層允許應用有單獨的視訊記憶體,效能自然要好些

  • 模擬顏色空間

 

色盲使用者的福音。

媒體                                                                                                                      
  • 關閉USB音訊轉

監控                                                                                                                      
  • 啟用嚴格模


在你開啟某個應用後,點返回退出但在程序中仍然執行,長時間後螢幕會閃爍提示你在主執行緒上還是正在執行的應用程式。

  • GPU分析展示效果

 

您比如如下效果


這個用來除錯應用,需要結合adb shell dumpsys gfxinfo your_package 命令來使用。可以用來測量某個app的幀速率,例如列表檢視滾動的時候。還想深入瞭解的可以移步:http://blog.csdn.net/wangbaochu/article/details/50396512

  • 啟用OpenGL跟蹤

圖形視角效果器,是手機制作圖片軟體的輔助工具,比如ps3D立體圖,需要啟用這個工具才能實現再編輯過程中的圖片旋轉,放大縮小復位等

應用                                                                                                                      
  • 不保留活動


  • 後臺程序限制

 

自定義設定後臺程式的程序限制。建議:這種系統級的東西就留給系統去處理吧,咱們自己設定的也許起到反面影響。保留“標準限制”即可。

  • 顯示所有ANR


app出現FC(強制關閉)錯誤時(具體錯誤做安卓或java開發的人很清楚了,比如陣列越界),提示給使用者知曉。

  • 強制允許將應用寫入外部裝置

就是強制允許應用可以移到SD卡,舊手機記憶體小,那時候往往會安裝到外部儲存裝置上(其實也是部分安裝),會影響執行速度的。

  • 強制將活動設為可調整大小


用於分屏技術,可以解決部分沒有適配分屏的應用,並不說開啟它就一定能使用分屏模式。