本篇來自Android高階工程師星球,不願意透露姓名的老劉同學這一年的親身經歷。老劉馬上到30了,在技術星球裡也一直不怎麼說話,應該是屬於背後默默努力的那種性格。最近好像快要當孩他爸了。
這裡分享一下他寫的經驗心得,相信會對很多想提升自己的小夥伴有不少切身體會和啟發;
最開始想很俗套的,感謝技術群裡幾個大佬平時的指導分享,以前一直停留在會用的階段。從來沒有深入去學習過技術的原理原始碼。這一年潛心學習研究,明顯感覺到了技術和眼界都有了質的飛躍。
而且也挺感謝前輩提供的內推機會。因為之前也投過幾家一線的公司,有的是簡歷石沉大海了,或者面試完讓我回去等訊息就杳無音信了。不過通過幾次面試也讓我對自我認識更深一些,技術體系夠全面而且深入,而且也有實戰專案經歷。但是經驗年限還不太夠,加上沒有背景,機會就很重要了。
市場對Android工程師有哪些最新的要求?當我出去面試找工作時發現;現在面試往往更注重基礎和深度的,而且還有很多新的技術都會問到,包括音訊,人工智慧,混合開發,甚至底層和全棧方面都得會點。
一年之前,在一家中型公司,三年開發經驗,通過幾次跳槽拿到11k的薪資,加上年終獎有14w左右。二線城市,已經很滿足了。
後來因為一段無疾而終的狗血戀情,突然覺得自己太安逸了,一直想著怎麼舒服的混日子,車,房,物件都還沒有,哪裡來的資格安於現狀?
這一年很長,經常加班加點趕專案,下班了在地鐵上就開啟手機看直播課學習。大多時候是很晚回去後對著錄播視訊自己去敲一遍,不過有原始碼和課件提供而且一直有老師線上答疑,倒是沒怎麼落下。正常八個月學完的整個系統進階課程,我用來差不多一年的時間。
當然最後的一個多月是2019年底了,裸辭專心準備面試方面的事情。
現在算是實現了一年前定下的第一個小目標吧。馬上就奔三了,三十幾後必須爬到管理層去,不然就不得不面對中年危機了。作為一個程式設計師,如果不跟著時代和技術一起更新進步,真的太容易被淘汰了,以至於我現在心情都是一半高興喜悅對未來充滿信心和憧憬,一半是小心翼翼。
以前挺覺得大環境真的對我們這些普通普通程式設計師太差了,畢業了進個小廠,技術和眼界受限,基本很難有比較大的提升。想要提升技能,往往是自己摸索成長,網上找技術部落格,等零散的學習。不成體系的學習效果真的巨低!很容易堅持不下去。
所以我整理了這一年學習的所有的移動高階工程師進階技術,希望可以幫到跟我一樣想進階但是沒有方向的朋友提供一個參考;
Android進階技術框架搭建1.Java語言進階在Android系統中的應用
泛型原理與Android網路請求中應用無所不能反射原理及Android類載入核心機制無所不能的反射原理與retrofit核心原理揭祕執行緒池原理核心(ThreadPool,ansycTask)Rxjava實現核心設計方法原理Java I/O核心原理及在Android中的核心應用多執行緒與android執行緒效能優化Java 註解原理與Dagger2實現核心講解序列化與資料自動解析原理(一)Json解析
02.Android開發架構體系(app亦物件)
App物件中的實體Activity原始碼解析Activity Manager Service 原始碼解析Hook技術在AMS中的應用實戰無Manifest註冊啟動Activity方式ViewGroup原始碼解析各種Layout原理講解與效能對比View原始碼解析與自定義View一般套路講解RecycleView回收複用機制核心解析CardView混合應用於原始碼改裝Touch事件機制架構搭建
** 03.Android開發架構體系(app亦物件)**
事件分發機制問題解決方案揭祕自定義View專案實戰(自定義組合View)自定義View專案實戰完全自定義View實戰一自定義View專案實戰完全自定義View實戰二自定義View專案實戰完全自定義View實戰三自定義View專案實戰完全自定義View實戰四自定義View專案實戰完全自定義View實戰五ViewPager 載入機制原理與載入效能優化ViewPager 與fragment組合架構生命週期實戰Webview使用原理JavaScript Interface實戰
04Android開發架構體系(app亦物件)
Webview與Navite的通訊框架手寫實戰Handler 事件分發機制核心揭祕與架構手寫Intent資料傳遞的原理與核心機制多主題快速構建原理與專案實戰fragment核心事務管理與控制元件混合應用原理一fragment核心事務管理與控制元件混合應用原理二fragment生命週期管理原始碼核心Service生命週期及核心原理Activity與Fragment通訊方案解析Apk之間相互通訊的原理總結
05.Android開發架構體系(app亦物件)
apk與伺服器通訊方案(Okhttp原始碼)解析Http與Https協議講解Restful風格&WebSocket&Socket原理資料儲存方案及應用場景對比Sdcard/SP等
06.android app 360°全方位效能優化
不可思議的OOM(分析方法&核心限制原理)ANR問題暴露的程式結構問題網路請求API效能及效率優化View渲染效能優化Profiler工具對記憶體及CPU使用的效能分析23種常用設計模式對程式碼結構的設計優化一23種常用設計模式對程式碼結構的設計優化二23種常用設計模式對程式碼結構的設計優化三23種常用設計模式對程式碼結構的設計優化四資料結構優化(之一)
07.android app 360°全方位效能優化
資料結構優化(之一)資料結構優化(之二)資料結構優化(之三)資料結構優化(之四)排序演算法的選擇原則及應用場景優化查詢演算法的應用場景和選擇優化app開機啟動速度、白屏閃屏原理及效能優化app介面切換效果與速度優化(Glide、Picasso、Fresco效能分析)
08.android app 360°全方位效能優化
手寫圖片載入快取框架專案實戰耗電效能優化apk打包流程研究與APK縮身優化Volley/Okhttp/Retrofit核心原始碼講解適配方案講解(螢幕、佈局、許可權適配)程式碼品質和隱患排查方案講解(Lint/Findbug)
09.Android NDK開發
C語言程式設計基礎(指標)C語言程式設計基礎(檔案操作)JNI程式設計規範實戰C++程式設計規範與基礎揭祕C++STL(序列式、堆疊、雙向連結串列、關聯式)Linux系統程式設計之Shell指令碼核心程式設計Cmake語法詳解與AS編譯NDK的過程NDK層Native原生繪製原理影象處理之png/jpg格式圖片壓縮微信圖片壓縮技術方案揭祕
10.Android NDK開發
FFmpeg影視訊編解碼庫介紹與編譯FFmpeg對資料幀的處理及常用命令H264&X264協議原理利用Ffmpeg實現音視訊編解碼推流/拉流RTMP詳解走向P2P WebRtc環境搭建與原始碼解析OpenGL 視訊繪製基本技能直播技術原理於架構搭建直播技術資料流播放原理解析直播卡頓延時優化
11.Android NDK開發
直播資料代理優化與運營商劫持優化視訊格式分析(Mp4,FLV,F4V,AVI格式解析)抖音視訊app專案實戰(之一)抖音視訊app專案實戰(之二)抖音視訊app專案實戰(之三)人工智慧專題實現 人臉檢測技術人工智慧專題實現 人臉識別人工智慧專題實現 身份證識別人工智慧專題實現 車牌號識別人工智慧專題實現 人體識別
12.提高開發效率的工具
git工具基本工作原理及常用操作Gradle解決編譯問題及groovy相關語言知識gradle多渠道打包專案實戰APK自動上傳伺服器併發送釘釘提醒專案實戰抓包工具stetho實現網路資料實時跟蹤13.移動架構師框架構建體系移動架構師框架構建體系MVC架構專案實現天氣預報實戰MVVM架構實現新聞客戶端專案實戰MVP架構實戰模組化程式設計專案實戰層次化程式設計專案實戰元件化專案實戰
購物商城後臺搭建J2EE技術介紹小程式技術總覽及架構介紹小程式工具使用與應用程式配置詳解UI開發之複雜頁面佈局及文字圖片的內容呈現UI開發之下拉重新整理與上拉載入等圖形動畫操作UI開發之頁面跳轉與使用者介面事件處理機制API操作之多媒體操作與網路通訊處理方式API操作之地理位置資訊獲取與裝置資訊取用API操作之介面互動操作與系統功能微信登入與使用者資訊獲取實操
微信小程式更新與第三方平臺接入實戰任務清單專案實戰(上)任務清單專案實戰(下)電影榜單專案實戰(上)電影榜單專案實戰(下)購物商場專案(上)購物商場專案(中)購物商場專案(下)
16.Hybrid混合開發
weex基礎知識(跨平臺知識、VueJS、npm生態)搭建Weex開發環境並新建和執行Weex工程vuejs指令碼編寫、css樣式編寫、tpl模板語言打包BundleJS及模擬器中執行wee小專案構建工具npm使用及webpack基礎用法前端Vue架構研究之前端元件化&&MVVM模式Vue渲染例項與Vue元件間通訊實戰Vue架構專案實戰實現TodoList前端樣式開發使用Sass,Postcss編寫樣式Vue頁面引用scss樣式
17.Hybrid混合開發
樣式美化TodoList,結構化樣式Weex例項變數內建元件Weex內建模組與事件內建能力實現TodoList本地儲存於冒泡機制搭建跨平臺環境整合weexSDK並執行原生工程從Handler等容器角度熟練WeexSDK架構拓展Handler、Adapter擴充套件自定義頁面元件及拓展全域性事件Weex UI安裝與配置使用Layout佈局元件WeexUI架構之Navigator導航元件
18.Hybrid混合開發
WeexUI架構之Data Entry表單元件Weex專案實戰實現購物app前端官網配置專案封裝實戰
19.Android前沿技術
騰訊微信Tinker熱升級的開源方案原理解析阿里百川Sophix熱修復核心原理解析銀行APP加密演算法與原理詳解元件化集中式路由—阿里Arouter原理解析造輪子——手寫ARouter 元件化路由框架造輪子之一:影象載入框架手寫實現造輪子之二: 網路訪問架構手寫實現RxJava響應式程式設計設計架構解析RxJava實現鏈式排程及執行緒切換的核心原理
20.Android前沿技術
IOC切片式程式設計在android開發中的應用ButterKnife設計Dagger2架構核心揭祕18年Google I/O大會最新技術方案及技術更新18年Google I/O大會最新技術方案及技術更新
先找準方向,搭建技術框架,填充。然後深入鑽研。以移動架構師位最終目標。Android系統進階思維腦圖整理;
後臺回覆關鍵詞;領取資料 可前往領取高清腦圖。這裡發不出來格式太大了。。
這些系統化進階的Android教程,以及我收集的BAT等一線公司面試題集,都整理了下來。因為發不出來
就我個人而言,Java基礎和原理,自定義view,設計面試,資料結構演算法,MVVM,MVP等各種架構。都熟練學會掌握了。不過關於NDK開發,音視訊,人工智慧,跨平臺開發等至少簡單了解會用應付面試。
音視訊,人工智慧等真的前景大好,如果我熟練這些的話,感覺現在30k的薪資再翻一倍都有信心。不過真的接觸就知道,水太深了。暫時還沒打算往那方面跳。建議有想法的年輕人,大可放心前往。