原創 110 篇了,是時候來篇總結了

語言: CN / TW / HK

光陰似剪,日月如梭。不知不覺,從 17 年廣工畢業到現在,已經畢業 5 年多了。

從大四開始寫部落格,有原創 110 多篇, 也獲得了 CSDN 部落格專家稱號和掘金優秀作者稱號

image.png

回想這五年來的程式設計師生涯,談不上滿意,也談不上失落,處於中上游狀態吧。有一些事情本來可以做得更好,卻因為某種原因或者某種選擇,沒能取得更進一步的成績(改天有時間再講哈)。。。

不過過去的都過去了,遺憾或者後悔都沒用,只能面對。抓住今天,腳踏實地,一步步出發。

技術上,有一些個人的一些小心得,分享給大家

  1. 學程式設計,如果要掌握一個知識點,一定要動手去實踐,敲程式碼。很多知識,你看了,貌似懂了,但是你沒動手去實踐,你永遠不可能掌握他的,尤其是初學者,切忌好高騖遠,撿了芝麻,丟了瓜。
  2. 善用搜索引擎,學程式設計,儘量用 google 搜尋,少用百度。道理你懂的
  3. 善用搜索技巧,關鍵詞很重要。一些前沿技術,或者疑難雜症,有時候你用中文搜不到,不妨用英文提取關鍵字,說不定會有另外一種收穫
  4. 要學會多歸納總結,形成自己的一套學習方法。尤其是一些重點難點,要儘量搞懂他,吃透他,下次遇到類似的問題,就可以舉一反三了。面試跳槽的時候,也可以用這個來當作你的亮點。
  5. 程式設計師要多培養一些業務思維,產品思維。懂業務的程式設計師,更能理解,發現團隊的痛點,針對性作出一些改善措施,這樣的人往往能夠在團隊中脫穎而出,取得更好的績效。同時,在生活中,說不定也能發現額外的機會,發現自己的一片新天地。

更詳細的可以看我去年寫的這篇文章,我的 5 年 Android 學習之路,那些年一起踩過的坑

下面是我這五年來的一些技術文章,大概整理了一些,進行分類,有興趣的可以看一下。(有一些連結是外鏈,因為公眾號限制,可以點選文章底部的原文,跳轉到 github 檢視

Android 基礎&必學

必知必會

Android 點九圖機制講解及在聊天氣泡中的應用

SharedPreferences靈魂拷問之原理

java 原始碼系列 - 帶你讀懂 Reference 和 ReferenceQueue

Android livedata 原始碼解剖

Android lifecyle 原始碼解剖

Android LiveData 使用詳解

Android lifecycle 使用詳解

你真的瞭解 View 的座標嗎

一步步讀懂 ButterKnife

Android 二次封裝網路載入框架

Android Fragment 的妙用 - 優雅地申請許可權和處理 onActivityResult

TextView AutoLink, ClikSpan 與長按事件衝突的解決

聊一聊 Android 中巧妙的位操作

Android 自定義 MarqueeView 實現跑馬燈 —— 原理篇

Android MarqueeView 實現跑馬燈效果

Android Hook 機制之簡單實戰

ConstraintLayout最詳細使用,減少巢狀優化ui,提升app效能

事件分發機制&巢狀滑動

圖解 Android 事件分發機制

ViewPager,ScrollView 巢狀ViewPager滑動衝突解決

這可能是 ViewPager2 滑動衝突最全處理方案

使用CoordinatorLayout打造各種炫酷的效果

自定義Behavior —— 仿知乎,FloatActionButton隱藏與展示

NestedScrolling 機制深入解析

一步步帶你讀懂 CoordinatorLayout 原始碼

自定義 Behavior -仿新浪微博發現頁的實現

自定義 behavior - 完美仿 QQ 瀏覽器首頁,美團商家詳情頁

【使用篇】WebView 實現巢狀滑動,絲滑般實現吸頂效果,完美相容 X5 webview

【原理篇】WebView 實現巢狀滑動,絲滑般實現吸頂效果,完美相容 X5 webview

巨絲滑 —— 自己動手擼一個Android圖片編輯器(支援長圖)

有點酷,仿京東首頁體驗的巢狀滑動吸頂效果

自定義 View

『Android自定義View實戰』實現一個小清新的彈出式圓環選單

讀原始碼長知識 | 更好的 RecyclerView 表項點選監聽器

Android 彈幕的兩種實現及效能對比 | 自定義 LayoutManager

這效果炸了,網易雲音樂“宇宙塵埃”特效!

Android 玩轉PathMeasure之自定義支付結果動畫

Android實現圖片轉字元畫效果

效果太酷了,Android 實現一個炫酷的自定義時鐘

Android 自定義View之雙層波紋氣泡(xFermode)

Android-自定義氣泡View,讓我們告別.9圖

TouchDelegate 的這些盲區瞭解一下?

Android 進階

啟動優化

Android 啟動優化(七) - JetPack App Startup 使用及原始碼淺析

Android 啟動優化(六)- 深入理解佈局優化

Android 啟動優化(五)- AnchorTask 1.0.0 版本正式釋出了

Android 啟動優化(四)- AnchorTask 是怎麼實現的

Android 啟動優化(三)- AnchorTask 開源了

Android 啟動優化(二) - 拓撲排序的原理以及解題思路

Android 啟動優化(一) - 有向無環圖

面試官:今日頭條啟動很快,你覺得可能是做了哪些優化?

Android 頁面非同步載入優化的幾種方案

原始碼分析

面試官,怎樣實現 Router 框架?

面試官:簡歷上最好不要寫Glide,不是問原始碼那麼簡單

從篩選簡歷和麵試流程講起,再給培訓班出身的程式設計師一些建議

Rxjava 2.x 原始碼系列 - 執行緒切換 (上)

Rxjava 2.x 原始碼系列 - 執行緒切換 (下)

Rxjava 2.x 原始碼系列 - 執行緒切換 (下)

Rxjava 2.x 原始碼系列 - 變換操作符 Map(上)

Rxjava 原始碼系列 - 基礎框架分析

一步步拆解 LeakCanary

java 原始碼系列 - 帶你讀懂 Reference 和 ReferenceQueue

入木三分:從設計者角度看Retrofit原理

【帶著問題學】Glide做了哪些優化?

隱私合規

Android隱私合規檢測(藉助 Xposed)

一文學會位元組碼替換,再也不用擔心隱私合規稽核

真牛系列 - 一步步解決 App 隱私違規問題

正式開源!無恆實驗室推出 appshark 自動化漏洞及隱私合規檢測工具

Idea外掛學習

Android Studio IDE 外掛開發

IntelliJ IDEA/Android Studio外掛開發指南

效率提升百分之四十,AS模板也太好用了吧

Android Studio Template(模板)開發

系統性解決IntelliJ IDEA外掛開發環境問題

快看漫畫提效工具之Android Studio外掛

開發AndroidStudio圖片壓縮外掛TinyPngPlus

效能監控&優化

Android 程式碼覆蓋率如何實現

Android 快速適配 64 位架構

Android IO監控 | 效能監控系列

愛奇藝 Xcrash 是怎麼捕獲 crash 的

快手線上 OOM 監控方案 - KOOM 分析

Android NDK Crash 定位簡單分析

今日頭條 ANR 優化實踐系列 - 監控工具與分析思路

Android 徹底消滅 OOM 的實戰經驗分享(千分之1.5 -> 萬分之0.2)

疑難雜症

okhttp檔案上傳失敗,居然是Android Studio背鍋?太難了~

APP 定位過於頻繁,我用反射+動態代理揪出元凶,太強了

RxJava 堆疊異常資訊顯示不全,怎麼搞

耗時一週,我解決了微信 Matrix 增量編譯的 Bug,已提 PR

什麼?Android 編譯執行緒爆了, gradle 記憶體 OOM 解決之路

個人總結

個人總結

程式設計師該如何寫好自己的簡歷,一位 5 年中大廠老哥跟你聊聊

我的 5 年 Android 學習之路,那些年一起踩過的坑

關於我,一個簡單低調的程式設計師

職場上這四件事,越早知道越好

今天,說三件小事

技術人的未來在哪裡

致剛入職場的你 - 程式設計師的成長筆記

徐公隨筆

關於小米得屌絲者得天下的一些思考

延遲享受,在最好的年紀請不要選擇安逸

我面試人只看這4點

那些年,我們一起追過的安卓技術大佬們

職場上這四件事,越早知道越好

幹起來,你就超過了 50% 的人

致剛入職場的你 - 程式設計師的成長筆記

拼夕夕事件反思,底層逆襲,靠拼命加班行嗎

2019.05 隨筆

面試必備

網路和基礎

面試官系列 - https 真的安全嗎,可以抓包嗎,如何防止抓包嗎

Android 面試必備 - http 與 https 協議

Android 面試必備 - 計算機網路基本知識(TCP,UDP,Http,https)

Android 面試必備 - 系統、App、Activity 啟動過程

Android 面試必備 - JVM 及 類載入機制

面經

面試 Google, 我失敗了 | Google 面經分享

常見的連結串列翻轉,位元組跳動加了個條件,面試者高呼「我太難了」| 圖解演算法

面試官:說說多執行緒併發問題

【不用背的原理】不用背的ThreadLocal原理

面試官:你能說說生產者消費者的幾種實現方式嗎

阿里釘釘,位元組抖音 Android 面經分享

又卡了~從王者榮耀看 Android 螢幕重新整理機制

設計模式

[即學即用] Android開發——狀態模式

帶你瞭解Android常見的記憶體快取演算法

Android 建造者模式(Builder)及其應用

責任鏈模式以及在 Android 中的應用

java 代理模式詳解

裝飾者模式及其應用

Kotlin下的5種單例模式,真香

演算法

剛開始準備刷演算法題目的時候,感覺真的是好難,十道題目有九道是不會的。心中曾一萬隻草泥馬跑過,自己怎麼這麼辣雞。

慢慢得,我發現演算法也是一個可以通過練習慢慢成長的。

  1. 首先我們要掌握基本的資料結構,陣列,連結串列,雜湊表, Set,二叉樹,堆,棧等。你要知道他們有什麼優缺點,適應場景是什麼,時間複雜度和空間複雜度是多少。而不能知道簡單的 API。
  2. 接著,掌握了這些基本的資料結構之後,一些基本的演算法你也要掌握以下,比如快速排序,歸併排序,對排序,二分查詢。這些基本的一定要掌握,面試當中經常也會問到。
  3. 分類刷題,我們在力扣上面可以看到,https://leetcode-cn.com/problemset/algorithms/ ,刷題是可以按標籤來的。比如連結串列,陣列,二分查詢,二叉樹,動態規劃等
  4. 學好演算法不是一日之功,需要長期的積累。建議的做法是每天做一兩道題,題目不在多,貴在於理解。堅持一兩個月,你會發現你的感覺逐漸好起來了

最後,讓我們一起加油,一起進大廠,拿期權,高薪。

leetcode 演算法

leetcode

arraylist-leetcode-list.md

arraylist.md

演算法總結】30道題搞定大廠演算法面試-二叉樹

演算法總結

【演算法總結】你真的掌握了二叉樹的遍歷嘛

【演算法總結】五道常見的演算法-二叉樹

面試官:手寫生產者消費者模型

快速排序與各種衍生知識點

面試官系列 - LeetCode連結串列知識點&題型總結

java 版劍指offer集錦

面試官:你有m個雞蛋,如何用最少的次數測出雞蛋會在哪一層碎?

歸併排序 遞迴版和非遞迴版的實現

筆試題—字串常見的演算法題集錦

小結

以上是我對 5 年來,技術文章的一些簡單整理。如果你認可我的話,可以關注我的位置公眾號徐公