Android開發者選項,看起來很簡單的事情,其實很多同學對它瞭解得不夠,Google用心良苦得為我們設計了這麼多小開關都是有它的作用的,今天也花了點時間,過了一遍全部的30多個開關,從中整理出15個對日常Android開發比較有幫助的選項。
需要指出的是,不同的ROM對開發者選項的支援不一樣,精簡掉一些很正常,我下面提到的都是官方支援的功能,當然不同的官方版本支援程度也不一樣,你手機上找不到也別奇怪。
抱歉這裡不介紹開發者選項在哪怎麼開啟之類的問題。
- Stay awake
充電時保持螢幕喚醒,開發的時候,時不時的鎖屏真是夠了,開啟它後只要插著USB線就不需要總去解鎖螢幕啦。 - Select runtime(Dalvik or ART)
ART runtime下你的應用會更加絲滑,目前高版本的Android上已經直接是ART runtime了,但作為Android開發也許需要保證你的應用在兩種runtime下都能正常執行,這可能是測試時需要更多考慮的。 - Process stats
裡面有關於當前執行程式的一切資訊,對於一般使用者,它就是一堆無意義的數字,對於Android開發人員來說,除錯時這些資訊也許可以幫你大忙。 - USB debugging
這個無需介紹,不開它怎麼除錯呢?(雖然現在都流行無線除錯了) - Allow mock locations
當你的應用需要用到GPS功能,獲取位置資訊時(比如天氣應用),可以通過它搭配一些位置模擬應用,模擬全球任何地點。(還能幹什麼?機智的你肯定想到啦) - Show surface updates
在介面繪製時,閃爍提醒,開啟它後簡直能閃瞎你的眼睛,但有時候我們需要精確知道具體的介面繪製細節時,不得不需要忍受這種折磨。 - Show layout bounds
顯示佈局格子,當你看到一個應用有很棒的介面效果,想知道它是怎麼佈局的?開啟這個功能即可。我更常用的使用場景是:每當有PM過來問我人家這個介面是Native實現的,還是類似Hybrid方案的Web實現時,我就讓他開啟這個功能,WebView是一個整體的格子,Native View是各種小格子組合而成。(除非自己重繪實現自定義View, 一般複雜佈局也不會這麼幹) - Force RTL layout direction
強制RTL佈局,RTL也就是Right To Left,阿拉伯國家一般有這種文化,類似古時候的中國,文字從右往左讀,包括介面佈局也是從右往左的,感覺操作習慣都跟我們是映象的,如果你跟我一樣不幸需要做這種坑爹適配的話,這也是必須掌握的技能。 - Animation scale
動畫的尺度、速度調整也是很有用的功能,尤其在實現複雜的組合動畫效果時,調慢點可以看得更清楚,當然你可以在自己程式碼裡調慢,但每次改程式碼重新build很麻煩對不對?而且如果是PM走過來讓你研究一下某款App的酷炫動畫效果呢? - Simulate secondary displays
它允許你模擬不同螢幕尺寸下應用的表現,IDE裡雖然也有類似的功能,可那畢竟只是個靜態的效果。 - Debug GPU overdraw
這裡是指不正確的過度繪製:- 原色: 沒有過度繪製
- 藍色: 一次過度繪製
- 綠色: 兩次過度繪製
- 粉色: 三次過度繪製
- 紅色: 四次及以上過度繪製。
值得提醒的是,過度繪製有時是無法避免的,Android建議是不要超過一次過度繪製,也就是可以是藍色的,不能綠了。
- Strict mode enabled
嚴苛模式下,當應用做了一些影響效能的事情,螢幕會閃一下提醒你。你也可以在程式碼裡為自己的應用開啟嚴苛模式,一旦發現一些效能問題,就會有詳細Log輸出, 為避免影響線上使用者,建議只在Debug模式下開啟。 - Show CPU usage
在你螢幕右上角顯示一個小視窗,提示當前CPU的各種資訊,在效能除錯時會有一些幫助,看是否是CPU的負載過高導致了效能問題。 - Profile GPU rendering
看下面這張圖,就明白它的作用了,開啟後,會在下方顯示一張實時繪製圖,記住那條綠線是效能流暢與否的底線,超過的時刻就會出現掉幀,就會有卡頓的感覺,介面效能調優的一個最重要指標就是將所有介面操作儘量優化到那條綠線以下。具體的原理可以看胡凱同學的Android效能優化典範,我的公眾號裡也收錄了他這篇經典文章。 - Don’t keep activities
開啟這個選項後,當你從Activity A跳轉到Activity B時,Activity A就會被立即銷燬,這一般用來模擬裝置記憶體不足時後臺Activity被銷燬的場景,如果你的應用能做到開啟它時功能仍基本正常,說明程式碼設計得比較合理,不同Activity之間的耦和很低,對於複雜業務的應用來說,能做到這點真心不容易。