在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ Best Practices for Performance
Launch mode 和 Intent flags專題
Canvas & Drawables
UTAustinX_UT.9.01x: Effective Thinking Through Mathematics
《JavaScript 語(yǔ)言精粹》
Memory leak專題
React基礎(chǔ)
《Test Driven Development: By Example》一書
Developer tools
安卓開(kāi)發(fā)技能樹
<a rel="nofollow" href="https://mp.weixin.qq.com/s?__biz=MzA3NDM
Best Practices for Interaction and Engagement
各個(gè)安卓版本引入的主要新特性
Building Apps with Connectivity &amp; the Cloud
List.toArray()再?gòu)?qiáng)轉(zhuǎn)是一定會(huì)失敗的
深入Android frameworks
Google dev 100 days系列視頻
Building Apps with Contacts &amp; Sign-In
關(guān)系型數(shù)據(jù)庫(kù)設(shè)計(jì)范式
《App研發(fā)錄》一書
REST API設(shè)計(jì)
Google IO 2015摘要
自定義View/ViewGroup以及高性能實(shí)現(xiàn)自定義UI
安卓系統(tǒng)點(diǎn)擊事件處理
《50 Android Hacks》一書
Building Apps with Content Sharing
Flux基礎(chǔ)
<a rel="nofollow" href="http://developer.android.com/training/in
依賴注入(以Dagger 2為例)
Java同步機(jī)制
Java對(duì)象內(nèi)存的使用情況
JSR133(Java memory model)
Google官方Material Design手冊(cè)(<a rel="nofollow" href="http://develop
Futurice公司安卓團(tuán)隊(duì)的建議
安卓性能優(yōu)化
  • 1.
Best Practices for Performance
<a rel="nofollow" href="http://www.vogella.com/tutorials/Android
<a rel="nofollow" href="http://blog.danlew.net/2014/11/19/styles
Handling Runtime Changes
<a rel="nofollow" href="http://www.vogella.com/tutorials/Android
Building Apps with Graphics &amp; Animation
<a rel="nofollow" href="http://tools.android.com/tech-docs/new-b
Android項(xiàng)目架構(gòu)
MVP(Model-View-Presenter)模式
<a rel="nofollow" href="http://www.infoq.com/cn/es6-in-depth/"">
《Android源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》一書
Rx在Android中的最佳實(shí)踐
函數(shù)調(diào)用時(shí),傳遞參數(shù)應(yīng)該是不可變的(Immutable)
ProGuard
面向?qū)ο罅笤瓌t(SOLID+)
深入理解Java虛擬機(jī)
深入Java深淺拷貝、immutable、unmodifiable
Best Practices for User Input
UI上的一些高效方式/最佳實(shí)踐
<a rel="nofollow" href="https://blog.stylingandroid.com/ripples-
Best Practices for User Interface
安卓測(cè)試驅(qū)動(dòng)開(kāi)發(fā)/安卓測(cè)試驗(yàn)證
暗時(shí)間:學(xué)會(huì)正確思考
技術(shù)筆記
Aspect Oriented Programming(AOP)
Best Practices for Background Jobs
安卓系統(tǒng)動(dòng)效專題
Feed系統(tǒng)的設(shè)計(jì)
Data binding(MVVM,Model-View-ViewModel)
Effective Java一書筆記
<a rel="nofollow" href="http://developer.android.com/training/in
Rx (Reactive eXtention)
MultiDex專題
一些很棒的點(diǎn)子
WebRTC

Best Practices for Performance

Managing Your App's Memory

  • 安卓系統(tǒng)的內(nèi)存沒(méi)有swap機(jī)制,但是有分頁(yè)機(jī)制
  • 安卓系統(tǒng)不會(huì)整理堆上的內(nèi)存,即:小塊的可用內(nèi)存可能無(wú)法再被使用
  • ActivityManager::getMemoryClass返回系統(tǒng)對(duì)堆內(nèi)存大小的限制
  • 謹(jǐn)慎使用Service
  • 用戶界面銷毀時(shí),釋放內(nèi)存資源
  • 內(nèi)存吃緊時(shí)(onTrimMemory()回調(diào)),釋放非必須的內(nèi)存資源
  • 檢查允許使用的堆大?。?code>getMemoryClass(), getLargeMemoryClass()
  • bitmap要小心使用
  • 使用優(yōu)化的容器類型:SparseArray, SparseBooleanArray, LongSparseArray
  • 注意數(shù)據(jù)結(jié)構(gòu)的內(nèi)存overhead
  • 不要過(guò)度使用繼承
  • 合理選擇序列化/反序列化方式
  • 合理選擇依賴注入框架,dagger比較不錯(cuò),但是guice和roboguice開(kāi)銷很大
  • 合理選擇第三方庫(kù)
  • ProGuard, zipalign
  • Service可以考慮使用跨進(jìn)程

優(yōu)化layout

  • 不要簡(jiǎn)單地認(rèn)為RelativeLayout慢,需要測(cè)量!也許兩層LinearLayout比一層RelativeLayout更慢,但也有可能更快,都需要用測(cè)量來(lái)確認(rèn);
  • include和merge標(biāo)簽的使用,merge作為layout的根節(jié)點(diǎn),在include的時(shí)候?qū)⒁瞥?,直接將子?jié)點(diǎn)展開(kāi)到它的父節(jié)點(diǎn)中;
  • 使用ViewStub按需加載layout,ViewStub的加載很輕量,在需要的時(shí)候再加載它所stub的layout;ViewStub與merge無(wú)法同時(shí)使用;