15 個必知的 Android 開發者選項 - OSCHINA - 中文開源技術交流社區

2021-01-10 開源中國

Android開發者選項,看起來很簡單的事情,其實很多同學對它了解得不夠,Google用心良苦得為我們設計了這麼多小開關都是有它的作用的,今天也花了點時間,過了一遍全部的30多個開關,從中整理出15個對日常Android開發比較有幫助的選項。

需要指出的是,不同的ROM對開發者選項的支持不一樣,精簡掉一些很正常,我下面提到的都是官方支持的功能,當然不同的官方版本支持程度也不一樣,你手機上找不到也別奇怪。

抱歉這裡不介紹開發者選項在哪怎麼開啟之類的問題。

1. Stay awake

充電時保持屏幕喚醒,開發的時候,時不時的鎖屏真是夠了,開啟它後只要插著USB線就不需要總去解鎖屏幕啦。

2. Select runtime(Dalvik or ART)

ART runtime下你的應用會更加絲滑,目前高版本的Android上已經直接是ART runtime了,但作為Android開發也許需要保證你的應用在兩種runtime下都能正常運行,這可能是測試時需要更多考慮的。

3. Process stats

裡面有關於當前運行進程的一切信息,對於一般用戶,它就是一堆無意義的數字,對於Android開發人員來說,調試時這些信息也許可以幫你大忙。

4. USB debugging

這個無需介紹,不開它怎麼調試呢?(雖然現在都流行無線調試了)

5. Allow mock locations

當你的應用需要用到GPS功能,獲取位置信息時(比如天氣應用),可以通過它搭配一些位置模擬應用,模擬全球任何地點。(還能幹什麼?機智的你肯定想到啦)

6. Show surface updates

在界面繪製時,閃爍提醒,開啟它後簡直能閃瞎你的眼睛,但有時候我們需要精確知道具體的界面繪製細節時,不得不需要忍受這種折磨。

7. Show layout bounds

顯示布局格子,當你看到一個應用有很棒的界面效果,想知道它是怎麼布局的?開啟這個功能即可。我更常用的使用場景是:每當有PM過來問我人家這個界面是Native實現的,還是類似Hybrid方案的Web實現時,我就讓他開啟這個功能,WebView是一個整體的格子,Native View是各種小格子組合而成。(除非自己重繪實現自定義View, 一般複雜布局也不會這麼幹)

8. Force RTL layout direction

強制RTL布局,RTL也就是Right To Left,阿拉伯國家一般有這種文化,類似古時候的中國,文字從右往左讀,包括界面布局也是從右往左的,感覺操作習慣都跟我們是鏡像的,如果你跟我一樣不幸需要做這種坑爹適配的話,這也是必須掌握的技能。

9. Animation scale

動畫的尺度、速度調整也是很有用的功能,尤其在實現複雜的組合動畫效果時,調慢點可以看得更清楚,當然你可以在自己代碼裡調慢,但每次改代碼重新build很麻煩對不對?而且如果是PM走過來讓你研究一下某款App的酷炫動畫效果呢?

10. Simulate secondary displays

它允許你模擬不同屏幕尺寸下應用的表現,IDE裡雖然也有類似的功能,可那畢竟只是個靜態的效果。

11. Debug GPU overdraw

這裡是指不正確的過度繪製:

原色: 沒有過度繪製

藍色: 一次過度繪製

綠色: 兩次過度繪製

粉色: 三次過度繪製

紅色: 四次及以上過度繪製

值得提醒的是,過度繪製有時是無法避免的,Android建議是不要超過一次過度繪製,也就是可以是藍色的,不能綠了。

12. Strict mode enabled

嚴苛模式下,當應用做了一些影響性能的事情,屏幕會閃一下提醒你。你也可以在代碼裡為自己的應用開啟嚴苛模式,一旦發現一些性能問題,就會有詳細Log輸出, 為避免影響線上用戶,建議只在Debug模式下開啟。

13. Show CPU usage

在你屏幕右上角顯示一個小窗口,提示當前CPU的各種信息,在性能調試時會有一些幫助,看是否是CPU的負載過高導致了性能問題。

14. Profile GPU rendering

看下面這張圖,就明白它的作用了,開啟後,會在下方顯示一張實時繪製圖,記住那條綠線是性能流暢與否的底線,超過的時刻就會出現掉幀,就會有卡頓的感覺,界面性能調優的一個最重要指標就是將所有界面操作儘量優化到那條綠線以下。具體的原理可以看胡凱同學的Android性能優化典範,我的公眾號裡也收錄了他這篇經典文章。

15. Don't keep activities

開啟這個選項後,當你從Activity A跳轉到Activity B時,Activity A就會被立即銷毀,這一般用來模擬設備內存不足時後臺Activity被銷毀的場景,如果你的應用能做到開啟它時功能仍基本正常,說明代碼設計得比較合理,不同Activity之間的耦和很低,對於複雜業務的應用來說,能做到這點真心不容易。

轉載自微信公眾號:Android程式設計師

相關焦點

  • 重磅推出:Gitee 2019 年度數據報告 - OSCHINA - 中文開源技術交流...
    大前端技術在 2019 年爭相進入落地期,催生出各種跨端方案。這些技術使得移動開發不再局限於 Android 與 iOS 這樣的特定端,直接用跨端框架開發「小程序」,成為了開發者更便捷的選擇。 注重高效、安全與並行的系統級程式語言 Rust 受到越來越多開發者的關注和使用。雖然國內目前並沒有太多出眾的 Rust 落地實踐,但它確實是一門極具潛力的語言,並且獲得了微軟、谷歌等大廠的大力支持,未來可期。
  • 【建議收藏】10個適合程式設計師逛的在線社區
    、高質的技術交流平臺以及最前沿的技術行業動態,幫助更多的開發者獲得認知。有很多厲害的開發者,在上面可以寫文章,分享看法。 7.博客園 網站地址:https://www.cnblogs.com/網站簡介:博客園是一個面向開發者的知識分享社區,也是非常老牌的技術社區。博客園一直致力並專注於為開發者打造一個純淨的技術交流社區,推動並幫助開發者通過網際網路分享知識。
  • 你會讓你的孩子去做開發者嗎? - OSCHINA - 中文開源技術交流社區
    我們曾在去年年底報導過科技界的三個天才少年,其中就有一位 6 年級的 iOS 開發者 Thomas Suarez,當時他已經開發了 5 款 iOS 應用,成立了一家公司 CarrotCorp,
  • 開發者的實用 Vim 插件(一) - OSCHINA - 中文開源技術交流社區
    除了是一個多功能編輯器外,世界各地的軟體開發者將 Vim 當做 IDE(集成開發環境Integrated Development Environment)來使用。事實上,因為 Vim 可以通過插件來擴展其自身功能才使得它如此功能強大。不用說,肯定有那麼幾個 Vim 插件是旨在提高用戶的編程體驗的。
  • - OSCHINA - 中文開源技術交流...
    在甲骨文全面接管之前的SUN公司技術的第一年,甲骨文開始進入多頭並進的時代,因為公司計劃與開源社區和谷歌公司一爭高下。
  • 媒體評熱門開源軟體Top100 17173技術大俠上榜
    編者按:日前,oschina評選出了國人開發的熱門開源軟體TOP100排行榜,其中,來自17173的技術大俠林良益開發的IKAnalyzer上榜。IK Analyzer 是一個開源的,基於java語言開發的輕量級的中文分詞工具包。
  • GitHub Top 100的Android開源庫
    Universal ImageLoaderImageLoader 是最早開源的 Android 圖片緩存庫, 強大的緩存機制, 早期被廣泛 Android 應用使用, 至今仍然有很多 Android 開發者在使用3.
  • 開源 | Scene:Android 開源頁面導航和組合框架
    Scene 是字節跳動西瓜視頻技術團隊開源的一款 Android 頁面導航和組合框架,用於實現 Single Activity Applications,有著靈活的棧管理,頁面拆分,以及完整的各種動畫支持。
  • GNOME 3.38 Beta 2 發布 - OSCHINA - 中文開源技術交流社區
    FFmpeg 發推慶祝誕生 20 周年,並附上了 FFmpeg 項目的首個 commit 截圖。
  • JFinal 4.9 發布,持續精雕細琢 - OSCHINA - 中文開源技術交流社區
    JFinal 堅持極簡設計,迭代近 10 年,卻只有 3 萬行代碼,比傳統的同等功能組合類框架要少幾十倍的代碼量,這使得開發者可以完全掌控其原始碼,也成為學習 java 框架設計的絕佳資源。    經過這麼多年的迭代,JFinal 已經非常完善、成熟。
  • 剛剛用鴻蒙跑了個「hello world」!跑通後,我特麼開始懷疑人生....
    來自:開源中國,作者:一個俗人
  • 廣邀全球開發者執開源之槳,匯百川成海
    這些同樣因熱愛一款軟體而聚集的人們,在開放、透明、完整、平等的開源理念下,開源社區越發生機盎然,而這些在社區裡活躍的人們也贏得了行業的尊重。開發者與開源社區,似乎是天生的一對,相互成就,共同成長。開發者與開源的互相成就他們的故事從來都不缺乏傳播者,與比爾·蓋茨相似,似乎一些偉大的人物註定不願意受到大學的拘束。
  • 百度開源2020:二十個技術領域持續開源 飛槳、阿波羅成行業領先者...
    (PaddlePaddle)、Apollo兩大平臺,  截止目前,百度已在Github主導的18個開源組織累計開源項目1,023個、社區貢獻者20,000+、獲得Star總數210,000+。  一、20個技術領域持續開源  截止2020年底,在GitHub/Gitee百度官方組織下已經圍繞著安全、監控、知識圖譜、網絡與接入、視覺、量子計算、開發框架等20個技術領域開源了86個項目,其中自然語言處理、開發框架與前端領域的開源項目數佔比超過50%。
  • 「騰訊開源十年圖譜」發布,覆蓋雲原生等五大技術領域
    開源是全球開發者共享知識、共建技術的橋梁,而跨越技術本身,開源還是解決人類共同難題的重要模式。12月19日,騰訊開源聯盟主席單致豪在騰訊 2020Techo Park 開發者大會上,集中發布了三大騰訊開源項目,同時還首次發布了「騰訊開源十年圖譜」。
  • 推動我國主導的開源技術紮根高校,OpenI啟智社區校園行深圳啟動
    啟智社區深圳運營中心主任餘躍介紹啟智校園行本次啟智社區校園行哈工大(深圳)站邀請了華為開源工程師王輝作主題為《MindSpore與AI技術的應用》的報告,王輝結合應用案例深入淺出地介紹新一代現場氣氛熱烈,提問踴躍,幾位嘉賓回答了在場學生的問題,解決了大家對於開源社區及MindSpore相關的疑問。據悉,OpenI啟智社區是在國家實施新一代人工智慧發展戰略背景下,新一代人工智慧產業技術創新戰略聯盟(AITISA)組織產學研用通力協作共建共享的開源軟體開源硬體開放數據超級社區,肩負「新一代人工智慧開源開放平臺」的使命與夢想。
  • 擁抱開源,激揚代碼,當高校開發者遇上openEuler
    12月10日晚,由 OSCHINA、Gitee 主辦,openEuler 協辦的 2020 openEuler高校開發者大賽 初賽階段落下帷幕。大賽的初衷是鼓勵高校學生積極參與開源項目,無論對於國內開源生態體系的構建,還是對於他們自身開發技能的鍛鍊,都是一次極為難得的機會。
  • openEuler Summit 2020帶你領略開源與作業系統的技術盛宴
    本次峰會將聚焦於軟硬體協同、雲邊端協同的技術趨勢、萬物互聯的多算力場景,挖掘技術創新與社區生態的價值.屆時,開發者、用戶、社區貢獻者、軟體愛好者將在openEuler Summit 2020匯聚成海,連接行業上下遊,讓全產業鏈共享作業系統的創新價值。
  • 向上而生:TF中文社區一周年大事記
    TF中文社區一周歲了。本文將梳理這一年我們的成長曆程,以及開源SDN技術Tungsten Fabic在中國的發展。歡迎了解我們,也歡迎分享給更多致力於開源SDN的小夥伴,咱們一起向上生長!     這一年,TF中文社區得到了原廠、生態夥伴、最終用戶和開發者的幫助,已經成為中國開源SDN領域最重要的選擇之一。     這一年,新冠疫情肆虐,但是TF中文社區的腳步並沒有停止,有超千人參與了我們的直播,跟隨社區共同成長。
  • Gfast 工作流引擎 1.0 正式發布 - OSCHINA - 中文開源技術交流社區
    Gfast管理系統採用go語言開發,基於GF(Go Frame)的後臺管理系統,現增加工作流引擎模塊開源發布,實現工作流引擎與業務解綁
  • 中國版GitHub讓國內開源生態建設進入快車道
    對於工信部的結果公示,碼雲 Gitee 在其博客中也給出了回應,並稱「國內開源生態建設進入快車道」。 公開信息顯示,碼雲 Gitee 是開源中國推出的基於 Git 的代碼託管服務。除此以外,碼雲 Gitee 也提供開源軟體的發布和溝通社區,供開發者在其中進行技術交流與溝通。