看完阿裏P9大牛的“Android成長筆記”我悟了,最新Android開發進階

mb612ed9e1b6ce5 2021-09-19 09:29:48 阅读数:23

看完 p9 大牛 android 最新

Java相關

  • 容器(HashMap、HashSet、LinkedList、ArrayList、數組等)
  • 內存模型
  • 垃圾回收算法(JVM)
  • 垃圾回收機制和調用 System.gc()的區別?
  • 類加載過程(需要多看看,重在理解,對於熱修複和插件化比較重要)
  • 反射
  • 多線程和線程池
  • 設計模式(六大基本原則、項目中常用的設計模式、手寫單例等)
  • Java 四大引用
  • Java 的泛型
  • final、finally、finalize 的區別
  • 接口、抽象類的區別

看完阿裏P9大牛的“Android成長筆記”我悟了,最新Android開發進階_Android

Android 相關

  • 自定義 View
  • 事件攔截分發
  • 解决過的一些性能問題,在項目中的實際運用
  • 性能優化工具
  • 性能優化 (講講你自己項目中做過的性能優化)
  • Http[s]請求慢的解决辦法(DNS、攜帶數據、直接訪問 IP)
  • 緩存自己如何實現(LRUCache 原理)
  • 圖形圖像相關:OpenGL ES 管線流程、EGL 的認識、Shader 相關
  • SurfaceView、TextureView、GLSurfaceView 區別及使用場景
  • 動畫、差值器、估值器(Android中的View動畫和屬性動畫 - 簡書、Android 動畫 介紹與使用)
  • MVC、MVP、MVVM
  • Handler、ThreadLocal、AsyncTask、IntentService 原理及應用
  • Gradle(Groovy 語法、Gradle 插件開發基礎)
  • 熱修複、插件化
  • 組件化架構思路
  • 系統打包流程
  • Android 有哪些存儲數據的方式。
  • SharedPrefrence 源碼和問題點;
  • sqlite 相關
  • 如何判斷一個 APP 在前臺還是後臺?
  • AMS 、PMS
  • Activity 啟動流程,App 啟動流程
  • Binder 機制(IPC、AIDL 的使用)
  • 為什麼使用 Parcelable,好處是什麼?
  • Android 圖像顯示相關流程,Vsync 信號等

看完阿裏P9大牛的“Android成長筆記”我悟了,最新Android開發進階_程序員_02

算法與數據結構

  • 時間複雜度 / 空間複雜度
  • 常用的排序算法有哪些?
  • 字符串反轉
  • 鏈錶反轉(頭插法)
  • 如何查找第一個只出現一次的字符(Hash查找)
  • 如何查找兩個子視圖的共同父視圖?
  • 無序數組中的中比特數(快排思想)
  • 如何給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。
  • 二叉樹前序、中序、後序遍曆
  • 最大 K 問題
  • 廣度、深度優先搜索算法
  • String 轉 int。核心算法就三行代碼,不過臨界條件很多,除了判空,還需要注意負數、Integer 的最大最小值邊界等;
  • 如何判斷一個單鏈錶有環?
  • 100 億個單詞,找出出現頻率最高的單詞。要求幾種方案;
  • 鏈錶每 k 比特逆序;
  • 鏡像二叉樹;
  • 找出一個無序數組中出現超過一半次數的數字;
  • 計算二叉樹的最大深度,要求非遞歸算法。
  • String 方式計算加法。

尾聲

評論裏面有些同學有疑問關於如何學習material design控件,我的建議是去GitHub搜,有很多同行給的例子,這些栗子足够入門。

有朋友說要是動真格的話,需要NDK以及JVM等的知識,首現**NDK並不是神秘的東西,**你跟著官方的步驟走一遍就知道什麼回事了,無非就是一些代碼格式以及原生/JAVA內存交互,進階一點的有原生/JAVA線程交互,線程交互確實有點蛋疼,但平常避免用就好了,再說對於初學者來說關心NDK幹嘛,據鄙人以前的經曆,只在音視頻通信和一個嵌入式信號處理(離線)的兩個項目中用過,嵌入式信號處理是JAVA->NDK->.SO->MATLAB這樣調用的我原來MATLAB的代碼,其他的大多就用在遊戲上了吧,一般的互聯網公司會有人給你公司的SO包的。
至於JVM,該掌握的那部分,相信我,你會掌握的,不該你掌握的,有那些專門研究JVM的人來做,不如省省心有空看看計算機系統,編譯原理。

一句話,平常多寫多練,這是最基本的程序員的素質,盡量擠時間,讀理論基礎書籍,JVM不是未來30年唯一的虛擬機,JAVA也不一定再風靡未來30年工業界,其他的系統和語言也會雨後春笋冒出來,但你理論紮實會讓你很快理解學會一個語言或者框架,你平常寫的多會讓你很快熟練的將新學的東西應用到實際中。
初學者,一句話,多練。

 CodeChina開源項目:《Android學習筆記總結+移動架構視頻+大廠面試真題+項目實戰源碼》

版权声明:本文为[mb612ed9e1b6ce5]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210919092948197s.html