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

Google dev 100 days系列視頻

Day 1:The Android Design Library

compile 'com.android.support:design:22.2.0'

  • TextInputLayout
    EditText的hint將一直以浮動形式顯示在輸入框下面,并且可以通過setError()接口,提示錯誤信息;
  • FloatingActionButton
    浮動操作按鈕,默認(rèn)設(shè)置為app theme的顏色;可以設(shè)置為mini大小;繼承自ImageView,可以為其設(shè)置任何顯示內(nèi)容;
  • Snackbar
    輕量、快速的用戶反饋方式;顯示在屏幕底部,支持一個可選的操作按鈕,顯示超時后自動消失,用戶也可以滑動使其消失;API與toast基本一致,但功能更強(qiáng)大;
    Snackbar
    .make(parentLayout, R.string.snackbar_text, Snackbar.LENGTH_LONG)
    .setAction(R.string.snackbar_action, myOnClickListener)
    .show(); // Don’t forget to show!
  • TabLayout
    多view tab支持;可以和ViewPager一起使用;
  • NavigationView
    支持通過menu資源文件創(chuàng)建導(dǎo)航視圖;把NavigationView放到DrawerLayout里面,通過app:headerLayout屬性設(shè)置headerLayout,通過app:menu屬性設(shè)置導(dǎo)航菜單內(nèi)容,支持高亮顯示當(dāng)前選中的菜單項,支持多級菜單,通過setNavigationItemSelectedListener()接口設(shè)置菜單點(diǎn)擊回調(diào);需要注意的是NavigationView會負(fù)責(zé)狀態(tài)欄的操作,在API 21+時,需要考慮狀態(tài)欄的控制;
  • CoordinatorLayout
    • floating action buttons
      將FloatingActionButton放到CoordinatorLayout中,在使用Snackbar時,將CoordinatorLayout傳入到Snackbar的Snackbar.make()函數(shù)中,那么action button將會在snack bar顯示和消失時,自動改變其位置,不需要任何代碼;layout_anchorlayout_anchorGravity屬性可以設(shè)置浮動view和其他view的位置;
    • app bar(以前的ActionBar)
      AppBarLayout可以和RecyclerView響應(yīng),RecyclerView通過app:layout_behavior屬性指定Behavior子類,AppBarLayout的元素通過app:layout_scrollFlags屬性指定對滑動事件的響應(yīng)方式;
    • Collapsing Toolbars
      把Toolbar直接作為AppBarLayout的子元素,無法滿足Toolbar的不同元素以不同方式響應(yīng)滑動操作的需求,為此,可以在中間加一層CollapsingToolbarLayout;可以實現(xiàn)頂部自定義布局,隨滾動而變化為bar,再滾動則消失,反向滾動則顯示的炫酷效果
      !videopatterns-scrolling-techniques_flex_space_image_xhdpi_003.webm
    • Custom views
      自定義View可以通過定義Coordinator.Behavior的子類來與CoordinatorLayout進(jìn)行合作,從而實現(xiàn)自定義的顯示效果;

Day 2:LRUCache

Android framework實現(xiàn)的LRU緩存算法類,對于Bitmap的使用場景非常合適;

Day 3:Google Play Services 7.5

  • Smart Lock for Passwords
    密碼保存服務(wù)API;
  • Instance ID, Identity, and Authorization
    提供應(yīng)用識別、授權(quán)服務(wù);
  • Google Cloud Messaging
    消息推送、上報服務(wù)、基于話題訂閱的推送、網(wǎng)絡(luò)請求管理(優(yōu)化);
  • App invite
    集成的邀請新用戶(分享APP)功能;
  • Google Cast
    谷歌提供的多設(shè)備視頻、音頻播放功能;
  • Android Wear、Google Fit...

Day 4:Web app的推送通知

Day 5:用戶活動識別:步行、跑步、騎車等

Day 6:Android wear使用MAP API

Day 7:語音互動,不僅是啟動命令,還能交互

Day 8:谷歌地圖的Lite模式,高性能顯示多張靜態(tài)地圖

Day 9:使用Lint工具進(jìn)行代碼檢查:性能、bug、內(nèi)存泄漏等

Day 10:逐步優(yōu)化網(wǎng)頁響應(yīng)的速度

Day 11:指紋驗證API

Day 12:Google Play商店的icon、描述文字-安裝量統(tǒng)計功能

Day 13:優(yōu)化APP在google搜索中的結(jié)果

Day 14:Google play for work:為辦公設(shè)備訂制的APP

Day 15:Google map的AnimateCamera API

Day 16:Transparency & Alpha使用時的渲染性能優(yōu)化

  • 在動畫開始時,setLayerType(View.LAYER_TYPE_HARDWARE, null),動畫結(jié)束后,setLayerType(View.LAYER_TYPE_NONE, null);在API >= 16時,可以只調(diào)用ViewPropertyAnimator.alpha(0.0f).withLayer()接口即可;
  • 使用shadow時,重寫View的hasOverlappingRendering()接口,返回false;
  • 只有當(dāng)確定瓶頸是這部分view的渲染時,才有必要這樣優(yōu)化;

Day 17:Google Analytics SDK

下載量、安裝量、用戶離開APP的頁面、地區(qū)分布等多種統(tǒng)計信息;

Day 18:AdMob:APP廣告分發(fā)平臺

多種展示方式、自動獲取費(fèi)用最高的廣告、Google Analytics集成等特點(diǎn);

Day 19:designing for drivers

6步法則;只展示駕駛員真正想要的內(nèi)容;使用語音控制;

Day 20:Android M中的Android for work API

Day 25:Android M preview介紹

Day 26:Chrome支持把web應(yīng)用“安裝”到桌面:去掉地址欄,有主題,有icon,直接啟動