Android架構師:Android零基礎進階到高級架構師

Android架構師:Android零基礎進階到高級架構師
Android架構師:Android零基礎進階到高級架構師
學前基礎
1.掌握Java基本語法,瞭解面向對象編程特點,有基本Java語言編程經驗
2.瞭解計算機系統、數據結構基礎知識,掌握SQL基本語法
3.熟悉“科學上網”方法,可以查閱Android官方文檔、下載IDE

1.高級UI繪製(學習週期2個月)
UI流程繪製分享
源碼級分析、View的測量、View的佈局、View的繪製過程
繪圖及特效製作
Paint畫筆高級技能(Paint的方法使用技巧、高級渲染(BitmapShader位圖渲染、LinearGradient線性渲染、RadialGradient環形渲染、SweepGradient掃描漸變渲染、ComposeShader組合渲染))、Xfermode、濾鏡效果(BlurMaskFilter濾鏡、EmbossMaskFilter濾鏡)、顏色通道過濾(ColorMatrixColorFilter 顏色矩陣過濾、LightingColorFilter曝光顏色過濾、PorterDuffColorFilter圖層混合顏色過濾)、Canvas畫板高級技能(Canvas基礎使用技巧、Canvas區域切割技巧(實例:android實現IOS Reveal特效))、Canvas變換使用技巧(translate、scale、rotate、skew斜拉畫布)、Canvas圖層與狀態方法使用技巧(通過save和restore解決圖層繪製技術、離屏緩衝技術、PorterDuffColorFilter圖層混合顏色過濾)、超強輔助英雄-Path工具類的使用、超強ADC英雄-PathMeasure牛叉輔助類的使用
自定義控件
自繪控件、繼承控件、組合控件、Scroller詳解及源碼淺析、ViewDragHelper詳解及源碼淺析、自定義View觸摸工具類解析(ViewConfiguration基礎參數工具類、VelocityTracker手勢速率工具類、GestureDetector手勢工具類)、大量自定義控件實踐(滑動選擇價格區間標籤控件、熱門標籤--流式佈局、騰訊內部技術-QQ空間之打造個性化可拉伸頭部控件、個性化滑動指示器、Material Design---RecyclerView實現時光軸效果、android實現IOS Reveal特效)
事件傳遞機制(深入源碼分析)
事件衝突解決
高級動畫及特效
屬性動畫完全解析、MaterialDesign動畫(Touch feedback(觸摸反饋)、Reveal effect(揭露效果)、Activity transitions(Activity轉換效果)、Curved motion(曲線運動)、View state changes (視圖狀態改變)、Animate Vector Drawables(矢量動畫))、SVG(SVG概述、SVG圖片使用實例、SVG動畫使用實例)、GIF動畫引擎框架、自定義動畫框架
Material Design原材料設計開發
NavigationView+DrawerLayout主流側滑實現、TextInputLayout、Snackbar、Toolbar、Material Design樣式屬性開發、百分比佈局、沉浸式設計、TabLayout、Palette調色板、FloatingActionButton懸浮按鈕及聯動動畫效果、CardView、CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout、Behavior、CollapsingToolbarLayout、自定義Behavior及源碼分析
2.性能優化(學習週期1個月)
內存泄露分析
發生OOM的條件分析、避免內存泄漏(如何使用更高效的ArrayMap容器、如何避免不經意的“自動裝箱”、Lint,StictMode等工具的使用技巧)、內存管理機制(共享內存、分配與回收內存、限制應用的內存、應用切換操作)、OOM(查看內存使用情況)、onLowMemory與onTrimMemory的回調
性能優化工具的使用
MAT、LeakCanary、Memory Monitor、Allocation Tracking、Heap Tool、TraceView、hierarchyviewer佈局檢測工具
第三方分析工具
MemoryAnalyzer、GT Home、iTest
Android的渲染機制分析
渲染性能問題的根源、渲染優化(UI卡頓分析、過度渲染問題、佈局優化)、內存優化(內存抖動問題)、計算優化
電量優化
分析電量的流失、分析電量消耗數據、分析充電狀態和電池管理、battery-historian工具的使用、窩信號對電量消耗、Job Schedule
網絡優化
Batching批處理技術、Prefetching預取技術、GCMNetworkManager高級實踐、Network Traffic Tool工具的使用
View的性能
自定義View的性能優化、提升View的渲染性能、處理重複layout操作的性能問題
Bitmap內存優化
縮放性能優化、緩存性能優化、重用性能優化、PNG壓縮性能優化、微信圖片終極壓縮方案問題
安裝包性能優化
打包流程分析、aapt資源文件打包原理、resources_arsc二進制機構分析、資源文件壓縮、資源動態加載、Lint工具優化、極限壓縮、Proguard混淆
數據傳輸的效率優化
FlatBuffers、WEBP格式圖片使用、7Zip極限壓縮
隱形內存殺手Service的調優
如何優化後臺服務的內存消耗;如何保障服務的常駐內存、雙進程守護
設計線程池優化性能
多線程併發的性能問題
線程間通訊、AsyncTask源碼級分析及注意、HandlerThread的處理、IntentService使用場景分析和實踐、ThreadPool使用場景和注意
程序調優提高應用啓動速度
線分析程序啓動流程、優化啓動流程和提速
Splash頁面優化設計的竅門
緩存加載設計、如何提升主界面響應速度
3.NDK開發(學習週期3個月)
C 編程
函數、指針(N級指針概念、指針數組、數組指針)、內存佈局、結構體和共用體、文件操作、宏、動態庫的封裝和設計
C++編程
C++對C的擴展(C++關鍵字、命名空間、引用、C/C++混合編程、引用、函數擴展)、C++基礎編程(對象管理、類的構造和析構、友元函數與友元類、操作符重載、c++編譯器對象管理模型分析、類的繼承、多態、抽象類、函數模板、類模板,模板的繼承、C++類型轉換、C++ IO、異常處理)、C++ STL(序列式容器、堆棧容器、雙向鏈表容器、關聯式容器、對組、算法詳解)
愛奇藝音視頻解決方案
音視頻編解碼原理、FFmpeg、音頻解碼、視頻解碼、音視頻同步處理
Linux系統編程
Linux系統管理、VIM使用、GCC GDB使用、Shell腳本核心編程、Mikefile編寫、Linux系統編程之多線程編
JNI開發
JNI類型、JNI函數操作(數組操作、字符串操作、Java層訪問(類、屬性、方法))、異常、引用操作(局部引用、全局引用)、優化
企業級熱門核心技術
阿里雲anfix熱修復原理分析
揭祕底層在線修改app功能(淘寶在線關閉順豐接口,微信在線關閉讚賞功能)
java方法在Dalvik和Art虛擬機運行原理
根據Android系統核心源碼手寫熱修復
揭祕360手機助手卸載監聽雙進程手寫實現
AM命令跳轉網頁的源碼分析
微信鬥圖中帶文字的gif動態圖合成原理及其手寫實現
利用系統源碼打造gif圖的播放
OpenCV
opencv原理詳解,結構體 顏色通道使用
AndroidStudio cmake配置OpenCV開發環境
OpenCV打造人臉識別
利用opencv和TensorFlow打造×××識別
機器深度學習
NDK
運行機制與流程、Android.mk(GNU Make系統變量、模塊描述變量、GNU Make 功能宏)、Application.mk、日誌與調試、支持c++、Native原生繪製
視頻直播與視頻通話
花椒直播解決方案(音視頻採集與編碼、FAAC、X264、RTMP協議、nginx流媒體服務器部署)
騰訊QQ視頻通話核心技術-WebRTC,房間服務器、信令服務器、防火牆穿越服務器部署配置,Android客戶端so庫編譯,單獨模塊定製編譯開發
4.移動架構師(學習週期2個月)
創建型模式
Simple Factory、Factory Method、Abstract Factory、Builder、Prototype、Singleton
UML建模
圖(類圖、時序圖)、關係(依賴 Dependency、泛化 Generalization、關聯 Association、實現 Realization)
設計原則
單一職責SRP、里氏替換LSP、依賴倒置DIP、接口隔離ISP、迪米特LOD、開閉OCP
AOP架構設計
Aspect、Joint point、Pointcut、Advice、用戶行爲統計場景、性能監控場景
行爲型模式
Template Method、Observer、State、Strategy、Chain of Responsibility、Command、Visitor、Mediator、Memento、Iterator、Interpreter
源碼分析
Builder模式及其Dialog系統源碼分析,責任鏈模式模式及其Android系統事件分發機制詳解,Android Handler源碼分析,PackageManagerService源碼解析及其apk安裝原理,解釋器模式及其在PackageParser源碼中的運用,Activity啓動流程源碼全解析,ListView的複用機制源碼層分析,屬性動畫源碼詳解,Message鏈表原理,Binder核心原理與架構設計
數據庫框架設計
面向對象式手寫數據庫架構設計(增刪改查),SQLCipher進行數據庫加解密。xml腳本實現數據庫全量升級
網絡訪問框架設計
Volley網絡框架源碼層解析,使用泛型完成手寫高擴展的Volley網絡訪問框架設計 ,支持高併發,請求隊列和批量斷點下載,以及下載文件時數據記錄自動插入
圖片加載框架設計
配置、外觀、請求隊列、請求、請求轉發、加載器、加載策略、緩存策略。LruCache和DiskLruCache解析,自定義Glide圖片加載框架設計
RXJava響應式編程框架設計
RXJava的內核機制及原理詳解。手寫RxJava框架設計,實現鏈式調度,事件變換,線程切換。
結構型模式
Façade、Adapter、Proxy、Decorator、Bridge、Composite、Flyweight
IOC架構設計
運行時注入、編譯時注入、注入佈局、注入視圖、注入事件, ButterKnife設計Dagger架構設計核心解密
項目框架設計
MVC、MVP三層架構,MVVM在AndroidStudio編譯時的原理剖析
5.數據結構和算法(學習週期2個月)
算法
算法基本概念{算法特徵、算法運算要素、算法優劣評定(時間複雜度、空間複雜度、正確性、可讀性、健壯性)、算法分析方法(遞歸法、窮舉法、貪心法、分治法、動態規劃法、迭代法、回溯法)}
經典排序算法{插入排序(直接插入排序、二分法插入排序、希爾排序)、選擇排序(簡單選擇排序、堆排序)、交換排序(冒泡排序、快速排序)、歸併排序、基數排序}
遞歸法經典算法{二分法查找、歐幾里得算法、漢若塔算法、階乘求解算法}
窮舉法經典算法{泊松算法、哥德巴赫猜想}
貪心法經典算法{揹包算法、普利姆算法}
分治法經典算法{循環賽日常表、棋盤覆蓋算法}
動態規劃法經典算法{最長公共子序列、KMP算法}
回溯法經典算法{八皇后、數獨構造算法}
其他經典算法{約瑟夫殺人法、斐波拉契數列、蒙特卡洛、水仙花、其他}
數據結構
數據結構基本概念{邏輯結構(集合結構、線性結構、樹形結構、圖形結構)、存儲結構(順序存儲、鏈式存儲)}
線性表{順序線性表、鏈表(循環鏈表、雙向循環鏈表)、棧(逆波蘭表達式(中綴表達式))、隊列(循環隊列)}
HashMap{實現原理(擴容機制、hash算法、索引機制)、散列鏈表}
樹{樹的基本概念(結點(結點的度)、層次、深度(高)、有序樹與無序樹、森林)、樹的存儲結構(雙親表示法、孩子表示法、孩子兄弟表示法)、二叉樹(二叉樹的類型(特殊二叉樹、滿二叉樹、完全二叉樹)、二叉樹的存儲結構、二叉樹的遍歷(前序遍歷、中序遍歷、後序遍歷、層序遍歷)、二叉樹的建立(樹、森林、二叉樹的轉換、赫夫曼樹、赫夫曼編碼(壓縮算法))、查找二叉樹、(平衡樹、紅黑樹))}
圖{圖的特徵與基本概念(無向圖、有向圖、圖的權值、連通圖、圖的度)、圖的存儲結構(鄰接矩陣、帶權鄰接矩陣、鄰接表、帶權值鄰接表、十字鏈表)、圖的遍歷(深度優先遍歷、廣度優先遍歷、最小生成樹(普利姆算法、克魯斯卡爾算法)、最短路徑(迪傑斯特拉算法)、拓撲排序)}

百度網雲盤下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章