原創 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 年來,技術文章的一些簡單整理。如果你認可我的話,可以關注我的位置公眾號徐公