Android Advanced advance筆記 -目錄分析

 

1.Android 觸摸事件傳遞機制

  1.1.首先固然是類型了面試

  1.2.而後就是傳遞過程當中有哪幾個階段數據庫

  1.3.View的傳遞機制編程

  1.4.ViewGroup的傳遞機制設計模式

 

2.Android View 的繪製流程

  2.1.首先固然是一個總體觀了,就是總體流程api

  2.2.而後是一個測量中須要使用的一個參數MeasureSpec,根據這個參數決定視圖的具體的長寬緩存

  2.3.第一步是Measure——測量安全

  2.4.第二步是Layout——佈局網絡

  2.5.第三步是Draw——繪製 數據結構

 

3.Android 動畫機制

   3.1.首先固然比較傳統一點咯——逐幀動畫架構

  3.2.而後就是xml文件方式使用的——補間動畫

  3.3.最後就是利用代碼的方式來建立動畫——屬性動畫(非傳統動畫)

 

4.Support Annotation Library使用詳解

  4.1.Nullness註解——這個應該是能夠爲空的意思

  4.2.資源類型也是有註解滴...

  4.3.類型定義的註解——比較自定義化吧

  4.4.線程是很是重要的——線程類型的註解

  4.5.RGB顏色值註解——主要是方便編譯器識別吧

  4.6.值範圍註解——強調範圍,保證不越界

  4.7.權限註解——Android因爲版本不一樣,權限機制會有所不一樣

  4.8.重寫函數註解——這個沒怎麼見過呢

  4.9.返回值的註解——主要是給編譯器識別

  4.10.@VisibleForTesting——單元測試中可能會用

  4.11.@Keep——不須要混淆

 

5.百分比庫使用詳解

   這個沒什麼說的,主要是爲了屏幕適配

 

6.Design Support Library 使用詳解

  6.1. 第一個是Snackbar——這是一個提示欄

  6.2.第二個是TextInputLayout——浮動標籤

  6.3.第三個比較常見了TabLayout——用於分頁效果

  6.4.第四個——NavigationView左側的導航欄

  6.5.第五個是浮動按鈕——FloatingActionButton

  6.6.第六個是一個頂層的容器——CoordinatorLayout用於不少收縮效果

  6.7.第七個是經常使用的標題欄——CollapingToolbarLayout

  6.8.最後一個是底部動做條功能的——BottomSheetBehavior

 

7.Android Studio 的NDK開發

  7.1.首先固然是ABI的基本概念了——這是NDK開發最基本的東西了

  7.2.而後確定會跟C/C++有必定關係的嘛——引入C/C++函數庫

  7.3.而後從C/C++源碼編譯也是很重要的

  7.4.那使用.so文件須要注意哪些問題呢 

 

8.Gradle必知必會

  8.1.首先會有一個共享變量,這個用得比較多嘛

  8.2.而後就是比較常見的通用配置了

  8.3.而後就是aar函數庫的使用方法

  8.4.通常的話,簽名和混淆也會用到gradler腳本,因此仍是至關重要的

 

9.經過Gradle打包發佈函數庫到JCenter和Maven Central

  9.1.首先了解一下什麼是Maven Central和JCenter吧

  9.2.而後就是Android Studio獲取函數庫的原理

  9.3.最後固然就是上傳函數庫到JCenter了

 

10.Builder模式詳解

  10.1.首先固然是經典的設計模式——Builder模式

  10.2.而後Builder的變種模式瞭解一下

  10.3.並且這個變種還能夠自動生成哦

  10.4.最後再拿一個開源函數庫爲例講解一下 

 

11.註解在Android中的應用

  11.1.首先固然是瞭解一下定義咯

  11.2.那麼標準註解有哪些呢

  11.3.運行時也是能夠有註解的

  11.4.編譯時固然也是能夠有註解的哦

  

 

12.ANR產生緣由及其定位分析

  12.1.首先固然是瞭解一下緣由啦

  12.2.而後就是典型的ANR場景再現

  12.3.而後歸納一下ANR的定位以及分析緣由啦

  12.4.最後固然就是ANR問題的避免以及檢測了

 

 

13.Android異步處理技術

  13.1.首先固然是最多見的Thread了

  13.2.HandlerThread也能夠了解一下

  13.3.AsyncQueryHandler異步處理技術,這個沒見過哦

  13.4.IntentService也是有的,和HandlerThread比較相似,加多了一個服務的概念了

  13.5.還有Executor Famework,也沒見過,能夠了解一下

  13.6.AsyncTask,輕量級異步處理類

  13.7.Loader,加載器,能夠看一下

  13.8.最後來一個總結吧 

 

 

14.Android數據序列化方案研究

  14.1.首先是常見的Serializable了

  14.2.Parcelable也是比較經常使用的

  14.3.數據庫方面使用——SQliteDatabase

  14.4.文件存儲其實也是本身序列化的——SharedPreferences

  14.5.JSON——這個應該比較常見了,解析網絡數據常常用

  14.6.Protocol Buffers和Nano-Proto-Buffers,這個應該和緩存有關係,能夠了解一下

  14.7.FlatBuffers——也和緩存有關係的序列化方案,可能比較少見吧 

 

15.Android WebView Java和JavaScript交互詳解

  15.1.首先是Java來調用JavaScript

  15.2.其次固然是JavaScript來調用Java代碼了

 

16.MVP模式及其在Android中的實踐

  16.1.首先固然是瞭解一下基本概念了

  16.2.而後是面試常常問到的MVP和MVC模式的區別了

  16.3.MVP有不少開源實現方案,能夠了解一下

  16.4.爲何使用MVP模式呢——即好處

  16.5.MVP模式有缺點嗎——固然有的啦 

 

17.MVVM模式及Android DataBinding實戰

  17.1.用到MVVM模式確定會接觸數據綁定的表達式了

  17.2.而後須要理解一下數據對象

  17.3.固然要理解數據是如何綁定的啦,彼此要創建關聯的嘛

  17.4.其實事件也是能夠綁定的喲 

 

18.觀察者模式的擴展:事件總線

  18.1.爲何要使用事件總線呢——不少地方都會使用到

  18.2.事件總線的原理——面試常常問到,必定要深刻理解

  18.3.事件總線有一些開源的實現,能夠了解一下

  18.4. 觀察者模式和Android 廣播以及上述的事件總線以前有不少關聯的地方,簡單瞭解一下吧

 

19.書寫簡潔規範的代碼

  19.1.Java有一套編碼規範的喲

  19.2.Android也有一套命名的規範

  19.3.CheckStyle的使用,這個沒見過哦,能夠了解一下 

 

20.基於開源項目搭建屬於本身的技術堆棧

  20.1.首先須要瞭解一下APP的總體架構——總體觀

  20.2.而後就是技術選擇須要考慮的地方了

  20.3.日誌是很是關鍵的,記錄成功或者失敗

  20.4.JSON解析也是比較經常使用的啦

  20.5.數據庫方面也是須要考量的

  20.6.網絡方面確定離不開的啦

  20.7.圖片的緩存功能的實現以及顯示方面也是須要注意的哦 

 

 

21.64K方法數限制原理與解決方案

  21.1.64K限制確定有必定緣由吧

  21.2.MultiDex便可解決64K限制問題

  21.3.如何避免這個問題,其實沒法避免就不用刻意去避免了

  21.4.配置MultiDex來解決這個問題

  21.5.用MultiDex來解決有必定侷限性,你知道嗎

  21.6.開發階段如何處理這個問題

 

 

22.Android 插件框架機制研究與實踐  

  22.1.插件化基本概念先了解一下吧

  22.2.開源框架有不少哦 

 

 

23.推送機制實現原理詳解

  23.1.首先了解一下推送的開源實現方案吧

  23.2.第三方推送也是很是方便的

  23.3.本身怎麼實現一個推送功能呢 

 

 

24.APP瘦身經驗總結

  24.1.研究一下APP爲何變龐大了——廢話而已

  24.2.固然APP的結構纔是根本——先了解一下

  24.3.圖片的大小不可小覷

  24.4.使用Lint工具能夠刪除無用資源——仍是比較方便的

  24.5.利用Android Gradle配置也是能夠減小體積的哦

  24.6.重構和優化代碼就須要本身多花時間了

  24.7.資源混淆每每能夠減小一部分體積

  24.8.插件化固然不用說了 

 

 

25.Android Crash日誌收集原理與實踐

  25.1.首先須要瞭解一下Java層的Crash捕獲機制

  25.2.Native層也是有Crash捕獲機制的哦

  25.3.最終固然就是Crash的上報了 

 

 

26.函數式編程思想及其在Android中的應用

  26.1.首先代碼須要簡化

  26.2.而後要理解一下Operators,這個沒據說過,能夠簡單瞭解一下 

 

 

27.依賴注入及其在Android中的應用

  27.1.首先須要瞭解一下依賴注入的基本概念

  27.2.爲何須要一些框架來進行依賴注入呢

  27.3.常見的依賴注入的框架有哪些呢 

 

 

28.Kotlin在Android中的應用

  28.1.首先了解一下爲何要選擇Kotlin

  28.2.瞭解一下Kotlin的安裝和配置

  28.3.Kotlin有哪些特性呢——簡單瞭解一下便可

  28.4.Kotlin須要Gradle的配置哦

  28.5.Java類能夠直接轉換爲Kotlin

  28.6.相關資料能夠了解一下 

 

 

29.React Native For Android 入門指南

  29.1.首先固然是環境配置了

  29.2.Android開發的環境仍是有必定要求的哦

  29.3.React Native工程須要一些簡單的配置

  29.4.在AS下,瀏覽一下工程結構唄

  29.5.將React Native依賴庫修改成本地——多是比較重要的吧

  29.6.最後是一些學習建議——做者專門就搞React Native的,因此有必定的參考價值 

 

 

30.Android在線熱修復方案研究

  30.1.首先了解一下在線熱修復的基本流程

  30.2.來一種熱修復框架——Dexposed——這個應該比較熱門的吧

  30.3.再來一種熱修復框架——AndFix——好像比較老,可是很牛逼的框架

  30.4.再來一種更通用的框架——Nuwa——很是棒的熱修復框架

  30.5.最後來一個簡單的總結 

 

 

31.面向切面編程及其在Android中的應用

  31.1.首先固然簡單地瞭解一下AOP的基本概念了

  31.2.何時用的切面編程呢

  31.3.介紹一下框架了——AspectJ來實現Android平臺的切面編程

  31.4.其餘AOP的開源的框架,能夠簡單瞭解一下 

 

 

32.基於Facebook Buck改造Android構建系統

  32.1.首先固然是Buck的環境配置了

  32.2.而後就來一個基於Buck構建的Android工程唄

  32.3.基本概念仍是再瞭解一下嘛

  32.4.而後升級一下,項目改造一下

  32.5.固然自動化改造是更牛逼的啦 

 

 

33.代碼優化

  33.1.首先是數據結構方面的選擇

  33.2.而後是Handler和內部類的選擇啦

  33.3.正確使用Context也是很關鍵的

  33.4.要掌握Java四種引用方式哦

  33.5.其餘代碼本身微微優化一下唄 

 

 

34.圖片優化

  34.1.首先是圖片格式的問題

  34.2.而後是圖片壓縮的問題

  34.3.最後是圖片緩存的問題 

 

 

35.電量優化

  35.1.首先是廣播接收器會佔用大量電量,需優化

  35.2.數據傳輸也會佔用電量

  35.3.後臺的位置服務也會佔用大量電量哦

  35.4.鬧鐘服務也會佔用電量的

  35.5.WakeLock,不知道是啥,能夠簡單瞭解一下哦 

 

 

36.佈局優化

  36.1.首先固然是include了

  36.2.而後是ViewStub了——按需加載

  36.3.而後是merge——減小視圖層級

  36.4.儘可能使用CompoundDrawable,這個不知道哦

  36.5.使用Lint,猜想是減小無用佈局

 

 

37.網絡優化

  37.1.首先要避免DNS解析

  37.2.能夠合併網絡氫氣

  37.3.能夠預先獲取數據的

  37.4.要避免輪詢

  37.5.要優化重連機制

  37.6.離線緩存也是須要作的

  37.7.數據量大的話,還要壓縮數據大小哦

  37.8.超時策略應對不一樣網絡環境

  37.9.CDN能夠了解一下,這個不知道哦 

 

 

38.Android混淆機制詳解

  38.1.首先是Java代碼混淆

  38.2.而後是Native開發的C/C++的代碼混淆

  38.3.資源文件若是須要也是能夠混淆的哦 

 

 

39.Android反編譯機制詳解

  39.1.首先資源文件的反編譯比較方便

  39.2.而後是Java代碼的反編譯,這個稍微複雜一點點

 

 

40.客戶端敏感信息隱藏技術研究

  40.1.將敏感信息放在strings.xml中如何

  40.2. 放在Java源代碼中也能夠

  40.3.隱藏在BuildConfig中

  40.4.使用DexGuard——這個不知道哦,能夠了解一下

  40.5.對敏感信息進行假裝和加密,經常使用MD5加密

  40.6.能夠隱藏在.so文件中,這個不錯嘛

  40.7.對APK進行加固,沒想到還有這個

 

 

41.Android加固技術研究

  41.1.首先了解一下愛加密的主要功能

  41.2.而後須要理解常見APP的漏洞和風險

  41.3.而後須要瞭解Android程序的反破解技術

  41.4.加固技術須要的一些工具和資料,簡單瞭解一下便可 

 

 

42.Android安全編碼

  42.1.首先是WebView遠程代碼的執行,沒想到這個還涉及到了

  42.2.WebView的密碼明文保存,這個的確要考慮的

  42.3.Android本地拒絕服務能夠了解一下

  42.4.SP文件方面——全局的任意讀寫,這個仍是知道一點的

  42.5.密鑰硬編碼,這個高大上哦

  42.6.AES/DES/RSA弱加密,這個沒聽過

  42.7.隨機函數使用錯誤咋辦...

  42.8.WebView如何忽略SSL證書的狀況下進行安全編碼

  42.9.HTTPS證書的弱校驗——能夠簡單瞭解一下

  42.10.PendingIntent使用不當下如何處理——這個也不清楚啦

 

 

43.Android調試工具Facebook Stetho

  43.1.首先使用這個工具來監視視圖佈局

  43.2.數據庫也是能夠監視的

  43.3.網絡更不用說啦,好像看到過別人框架中用過這個工具

  43.4.dumpapp插件的使用——這個的確不知道

  43.5.Javascript控制檯,這樣更方便使用了

  43.6.簡單實踐一下,這個纔是關鍵吧     

 

 

44.內存泄漏檢測函數庫LeakCanary

  44.1.基本概念簡單瞭解一下

  44.2.集成方法,很是簡單哦

  44.3.LeakCanary的基本原理,這個仍是須要知道的哦

  44.4.如何定製本身的LeakCanary呢——值的借鑑哦 

 

 

45.基於Facebook Redex實現Android APK的壓縮和優化

  45.1.轉換的時機,什麼鬼?

  45.2.管道的思想,相似於Linux中的管道通訊吧

  45.3.減小字節碼的意義——簡單瞭解一下便可

  45.4.混淆和壓縮,對APK有很大影響哦

  45.5.如何使用內聯函數,這個不知道哦

  45.6.無用的代碼消除——升級到代碼層面了哦

  45.7.Redex的集成和簡單的使用 

 

 

46.Android Studio 須要瞭解的功能

  46.1.Annotate,不知道

  46.2..ignore,應該比較簡單吧

  46.3.Live Template,模板,很是好用

  46.4.如何集成Bug管理系統,這個應該不錯呢 

 

 

47.Android單元測試框架簡介

  47.1.首先是單元測試框架JUnit

  47.2.還有Robolectric3.0,這個沒據說過呢

  47.3.Java來模擬測試框架Mockito,能夠了解一下

 

 

48.Android UI自動化測試框架簡介

  48.1.首先是Monkey

  48.2.MonkeyRunner能夠了解一下

  48.3.UIAutomator,這個用過,簡單

  48.4.Robotium,這個不知道了

  48.5.Espresso,這個也比較經常使用,應該不錯

  48.6.Appium,母雞啊 

 

 

 

49.Android靜態代碼分析實戰

  49.1.Java代碼規範檢查工具CheckStyle,居然還有這東西

  49.2.Java靜態代碼分析工具FindBugs,這個牛逼了

  49.3.Java靜態代碼分析工具PMD,能夠看一下

  49.4.Android代碼優化工具Lint,前面好像有講過呢   

 

 

50.基於Jenkins+Gradle搭建Android持續集成編譯環境

  50.1.首先是Tomcat要知道

  50.2.而後是下載Jenkins和安裝

  50.3.而後是Jenkins的全局配置

  50.4.JOB的相關操做

  50.5.最後是Jenkins預約義的環境變量,須要瞭解

相關文章
相關標籤/搜索