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