Java相關(guān)
- 容器(HashMap、HashSet符糊、LinkedList菠净、ArrayList、數(shù)組等)
- 內(nèi)存模型
- 垃圾回收算法(JVM)
- 垃圾回收機制和調(diào)用 System.gc()的區(qū)別拦键?
- 類加載過程(需要多看看谣光,重在理解,對于熱修復(fù)和插件化比較重要)
- 反射
- 多線程和線程池
- 設(shè)計模式(六大基本原則芬为、項目中常用的設(shè)計模式萄金、手寫單例等)
- Java 四大引用
- Java 的泛型
- final蟀悦、finally、finalize 的區(qū)別
- 接口氧敢、抽象類的區(qū)別
Android 相關(guān)
- 自定義 View
- 事件攔截分發(fā)
- 解決過的一些性能問題日戈,在項目中的實際運用
- 性能優(yōu)化工具
- 性能優(yōu)化 (講講你自己項目中做過的性能優(yōu)化)
- Http[s]請求慢的解決辦法(DNS、攜帶數(shù)據(jù)孙乖、直接訪問 IP)
- 緩存自己如何實現(xiàn)(LRUCache 原理)
- 圖形圖像相關(guān):OpenGL ES 管線流程浙炼、EGL 的認(rèn)識、Shader 相關(guān)
- SurfaceView唯袄、TextureView弯屈、GLSurfaceView 區(qū)別及使用場景
- 動畫、差值器恋拷、估值器(Android中的View動畫和屬性動畫资厉、Android 動畫介紹與使用)
- MVC、MVP梅掠、MVVM
- Handler垃杖、ThreadLocal徐鹤、AsyncTask靶衍、IntentService 原理及應(yīng)用
- Gradle(Groovy 語法司浪、Gradle 插件開發(fā)基礎(chǔ))
- 熱修復(fù)、插件化
- 組件化架構(gòu)思路
- 系統(tǒng)打包流程
- Android 有哪些存儲數(shù)據(jù)的方式且叁。
- SharedPrefrence 源碼和問題點都哭;
- sqlite 相關(guān)
- 如何判斷一個 APP 在前臺還是后臺?
- AMS 逞带、PMS
- Activity 啟動流程欺矫,App 啟動流程
- Binder 機制(IPC、AIDL 的使用)
- 為什么使用 Parcelable展氓,好處是什么穆趴?
- Android 圖像顯示相關(guān)流程,Vsync 信號等
算法與數(shù)據(jù)結(jié)構(gòu)
- 時間復(fù)雜度 / 空間復(fù)雜度
- 常用的排序算法有哪些遇汞?
- 字符串反轉(zhuǎn)
- 鏈表反轉(zhuǎn)(頭插法)
- 如何查找第一個只出現(xiàn)一次的字符(Hash查找)
- 如何查找兩個子視圖的共同父視圖未妹?
- 無序數(shù)組中的中位數(shù)(快排思想)
- 如何給定一個整數(shù)數(shù)組和一個目標(biāo)值,找出數(shù)組中和為目標(biāo)值的兩個數(shù)空入。
- 二叉樹前序络它、中序、后序遍歷
- 最大 K 問題
- 廣度歪赢、深度優(yōu)先搜索算法
- String 轉(zhuǎn) int化戳。核心算法就三行代碼,不過臨界條件很多埋凯,除了判空点楼,還需要注意負(fù)數(shù)扫尖、Integer 的最大最小值邊界等;
- 如何判斷一個單鏈表有環(huán)掠廓?
- 100 億個單詞藏斩,找出出現(xiàn)頻率最高的單詞。要求幾種方案却盘;
- 鏈表每 k 位逆序;
- 鏡像二叉樹媳拴;
- 找出一個無序數(shù)組中出現(xiàn)超過一半次數(shù)的數(shù)字黄橘;
- 計算二叉樹的最大深度,要求非遞歸算法屈溉。
- String 方式計算加法塞关。
網(wǎng)絡(luò)
- 網(wǎng)絡(luò)框架對比和源碼分析
- 網(wǎng)絡(luò)七層協(xié)議有哪些?
- Http 和 Https 的區(qū)別子巾?Https為什么更加安全帆赢?
- HTTPS的連接建立流程
- 解釋一下 三次握手 和 四次揮手
- TCP 和 UDP的區(qū)別
- Cookie和Session
- DNS是什么?
- DNS解析過程
- HTTP報文結(jié)構(gòu)
- HTTP與HTTPS的區(qū)別以及如何實現(xiàn)安全性
- 如何驗證證書的合法性?
- https中哪里用了對稱加密线梗,哪里用了非對稱加密椰于,對加密算法(如RSA)等是否有了解?
- client如何確定自己發(fā)送的消息被server收到?
- 談?wù)勀銓ebSocket的理解
- WebSocket與socket的區(qū)別
- 談?wù)勀銓Π沧亢灻睦斫狻?/li>
- 請解釋安卓為啥要加簽名機制?
- 視頻加密傳輸
- App 是如何沙箱化,為什么要這么做仪搔?
- 權(quán)限管理系統(tǒng)(底層的權(quán)限是如何進(jìn)行 grant 的)瘾婿?
源碼理解
- Glide :加載、緩存烤咧、LRU 算法 (如何自己設(shè)計一個大圖加載框架) (LRUCache 原理)
- EventBus
- LeakCanary
- ARouter
- 插件化(不同插件化機制原理與流派偏陪,優(yōu)缺點。局限性)
- 熱修復(fù)
- RXJava (RxJava 的線程切換原理)
- Retrofit (Retrofit 在 OkHttp 上做了哪些封裝煮嫌?動態(tài)代理和靜態(tài)代理的區(qū)別笛谦,是怎么實現(xiàn)的)
- OkHttp
Kotlin 相關(guān)
- 從原理分析Kotlin的延遲初始化: lateinit var和by lazy
- 使用Kotlin Reified 讓泛型更簡單安全
- Kotlin里的Extension Functions實現(xiàn)原理分析
- Kotlin系列之頂層函數(shù)和屬性
- Kotlin 兼容 Java 遇到的最大的 “坑”
- Kotlin 的協(xié)程用力瞥一眼
- Kotlin 協(xié)程「掛起」的本質(zhì)
- 到底什么是「非阻塞式」掛起?協(xié)程真的更輕量級嗎昌阿?
- 資源混淆是如何影響到Kotlin協(xié)程的
- Kotlin Coroutines(協(xié)程) 完全解析
- 破解 Kotlin 協(xié)程
Flutter相關(guān)
- Dart 當(dāng)中的 「..」表示什么意思饥脑?
- Dart 的作用域
- Dart 是不是單線程模型?是如何運行的宝泵?
- Dart 是如何實現(xiàn)多任務(wù)并行的好啰?
- 說一下Dart異步編程中的 Future關(guān)鍵字?
- 說一下Dart異步編程中的 Stream數(shù)據(jù)流儿奶?
- Stream 有哪兩種訂閱模式框往?分別是怎么調(diào)用的?
- await for 如何使用闯捎?
- 說一下 mixin機制椰弊?
- 請簡單介紹下Flutter框架许溅,以及它的優(yōu)缺點?
- 介紹下Flutter的理念架構(gòu)
- 介紹下FFlutter的FrameWork層和Engine層秉版,以及它們的作用
- 介紹下Widget贤重、State、Context 概念 - Widget
- 簡述Widget的StatelessWidget和StatefulWidget兩種狀態(tài)組件類
- StatefulWidget 的生命周期
- 簡述Widgets清焕、RenderObjects 和 Elements的關(guān)系
- 什么是狀態(tài)管理并蝗,你了解哪些狀態(tài)管理框架?
- 簡述Flutter的繪制流程
- 簡述Flutter的線程管理模型
- Flutter 是如何與原生Android秸妥、iOS進(jìn)行通信的滚停?
- 簡述Flutter 的熱重載