LRUCache原理java
圖片加載原理android
模塊化實現(好處,緣由)面試
JVM算法
視頻加密傳輸sql
統計啓動時長,標準數據庫
如何保持應用的穩定性設計模式
ThreadLocal 原理數組
談談classloader緩存
動態佈局安全
熱修復,插件化
HashMap源碼,SpareArray原理
性能優化,怎麼保證應用啓動不卡頓
怎麼去除重複代碼
SP是進程同步的嗎?有什麼方法作到同步
介紹下SurfView
HashMap實現原理,ConcurrentHashMap 的實現原理
BroadcastReceiver,LocalBroadcastReceiver 區別
Bundle 機制
Handler 機制
android 事件傳遞機制
線程間 操做 List
App啓動流程,從點擊桌面開始
動態加載
類加載器
OSGI
Https請求慢的解決辦法,DNS,攜帶數據,直接訪問IP
GC回收策略
畫出 Android 的大致架構圖
描述清點擊 Android Studio 的 build 按鈕後發生了什麼
大致說清一個應用程序安裝到手機上時發生了什麼;
對 Dalvik、ART 虛擬機有基本的瞭解;
Android 上的 Inter-Process-Communication 跨進程通訊時如何工做的;
App 是如何沙箱化,爲何要這麼作;
權限管理系統(底層的權限是如何進行 grant 的)
進程和 Application 的生命週期;
系統啓動流程 Zygote進程 –> SystemServer進程 –> 各類系統服務 –> 應用進程
recycleview listview 的區別,性能
排序,快速排序的實現
樹:B+樹的介紹
圖:有向無環圖的解釋
TCP/UDP的區別
synchronized與Lock的區別
volatile
Java線程池
Java中對象的生命週期
類加載機制
雙親委派模型
Android事件分發機制
MVP模式
RxJava
抽象類和接口的區別
集合 Set實現 Hash 怎麼防止碰撞
JVM 內存區域 開線程影響哪塊內存
垃圾收集機制 對象建立,新生代與老年代
二叉樹 深度遍歷與廣度遍歷
B樹、B+樹
消息機制
進程調度
進程與線程
死鎖
進程狀態
JVM內存模型
併發集合瞭解哪些
ConCurrentHashMap實現
CAS介紹
開啓線程的三種方式,run()和start()方法區別
線程池
經常使用數據結構簡介
判斷環(猜想應該是鏈表環)
排序,堆排序實現
鏈表反轉
synchronized用法
volatile用法
動態權限適配方案,權限組的概念
網絡請求緩存處理,okhttp如何處理網絡緩存的
圖片加載庫相關,bitmap如何處理大圖,如一張30M的大圖,如何預防OOM
進程保活
listview圖片加載錯亂的原理和解決方案
https相關,如何驗證證書的合法性,https中哪裏用了對稱加密,哪裏用了非對稱加密,對加密算法(如RSA)等是否有了解
MVP
廣播(動態註冊和靜態註冊區別,有序廣播和標準廣播)
service生命週期
handler實現機制(不少細節須要關注:如線程如何創建和退出消息循環等等)
多線程(關於AsyncTask缺陷引起的思考)
數據庫數據遷移問題
設計模式相關(例如Android中哪裏使用了觀察者模式,單例模式相關)
x個蘋果,一天只能吃一個、兩個、或者三個,問多少天能夠吃完
TCP與UDP區別與應用(三次握手和四次揮手)涉及到部分細節(如client如何肯定本身發送的消息被server收到) HTTP相關 提到過Websocket 問了WebSocket相關以及與socket的區別
是否熟悉Android jni開發,jni如何調用java層代碼
進程間通訊的方式
java註解
計算一個view的嵌套層級
項目組件化的理解
多線程斷點續傳原理
Android系統爲何會設計ContentProvider,進程共享和線程安全問題
jvm相關
Android相關優化(如內存優化、網絡優化、佈局優化、電量優化、業務優化)
EventBus實現原理
static synchronized 方法的多線程訪問和做用,同一個類裏面兩個synchronized方法,兩個線程同時訪問的問題
內部類和靜態內部類和匿名內部類,以及項目中的應用
handler發消息給子線程,looper怎麼啓動
View事件傳遞
activity棧
封裝view的時候怎麼知道view的大小
arraylist和linkedlist的區別,以及應用場景
怎麼啓動service,service和activity怎麼進行數據交互
下拉狀態欄是否是影響activity的生命週期,若是在onStop的時候作了網絡請求,onResume的時候怎麼恢復
view渲染
數據結構中堆的概念,堆排序
死鎖的概念,怎麼避免死鎖
ReentrantLock 、synchronized和volatile(n面)
HashMap
singleTask啓動模式
用到的一些開源框架,介紹一個看過源碼的,內部實現過程。
消息機制實現
ReentrantLock的內部實現
App啓動崩潰異常捕捉
事件傳遞機制的介紹
ListView的優化
二叉樹,給出根節點和目標節點,找出從根節點到目標節點的路徑
模式MVP,MVC介紹
斷點續傳的實現
集合的接口和具體實現類,介紹
TreeMap具體實現
synchronized與ReentrantLock
手寫生產者/消費者模式
邏輯地址與物理地址,爲何使用邏輯地址
一個無序,不重複數組,輸出N個元素,使得N個元素的和相加爲M,給出時間複雜度、空間複雜度。手寫算法
.Android進程分類
前臺切換到後臺,而後再回到前臺,Activity生命週期回調方法。彈出Dialog,生命值週期回調方法。
Activity的啓動模式
RxJava的功能與原理實現
RecycleView的使用,原理,RecycleView優化
ANR的緣由
四大組件
Service的開啓方式
Activity與Service通訊的方式
Activity之間的通訊方式
HashMap的實現,與HashSet的區別
JVM內存模型,內存區域
Java中同步使用的關鍵字,死鎖
MVP模式
Java設計模式,觀察者模式
Activity與Fragment之間生命週期比較
廣播的使用場景
百度
Bitmap 使用時候注意什麼?
Oom 是否能夠try catch ?
內存泄露如何產生?
適配器模式,裝飾者模式,外觀模式的異同?
ANR 如何產生?
String buffer 與string builder 的區別?
如何保證線程安全?
java四中引用
Jni 用過麼?
多進程場景碰見過麼?
關於handler,在任何地方new handler 都是什麼線程下
sqlite升級,增長字段的語句
bitmap recycler 相關
強引用置爲null,會不會被回收?
glide 使用什麼緩存?
Glide 內存緩存如何控制大小?
如何保證多線程讀寫文件的安全?
Activity啓動模式
廣播的使用方式,場景
App中喚醒其餘進程的實現方式
AndroidManifest的做用與理解
List,Set,Map的區別
HashSet與HashMap怎麼判斷集合元素重複
Java中內存區域與垃圾回收機制
EventBus做用,實現方式,代替EventBus的方式
Android中開啓攝像頭的主要步驟
集合
concurrenthashmap
volatile
synchronized與Lock
Java線程池
wait/notify
NIO
垃圾收集器
Activity生命週期
AlertDialog,popupWindow,Activity區別
String 爲何要設計成不可變的?
fragment 各類狀況下的生命週期
Activity 上有 Dialog 的時候按 home 鍵時的生命週期
橫豎屏切換的時候,Activity 各類狀況下的生命週期
Application 和 Activity 的 context 對象的區別
序列化的做用,以及 Android 兩種序列化的區別。
List 和 Map 的實現方式以及存儲方式。
靜態內部類的設計意圖。
線程如何關閉,以及如何防止線程的內存泄漏
軟引用、弱引用區別
垃圾回收
多線程:怎麼用、有什麼問題要注意;Android線程有沒有上限,而後提到線程池的上限
JVM
鎖
OOM,內存泄漏
ANR怎麼分析解決
LinearLayout、RelativeLayout、FrameLayout的特性、使用場景
如何實現Fragment的滑動
ViewPager使用細節,如何設置成每次只初始化當前的Fragment,其餘的不初始化
ListView重用的是什麼
進程間通訊的機制
AIDL機制
AsyncTask機制
如何取消AsyncTask
序列化
Android爲何引入Parcelable
有沒有嘗試簡化Parcelable的使用
AIDL機制
項目:拉活怎麼作的
應用安裝過程
線程和進程的區別?
爲何要有線程,而不是僅僅用進程?
算法判斷單鏈表成環與否?
如何實現線程同步?
hashmap數據結構?
arraylist 與 linkedlist 異同?
object類的equal 和hashcode 方法重寫,爲何?
hashmap如何put數據(從hashmap源碼角度講解)?
簡述IPC?
fragment之間傳遞數據的方式?
簡述tcp四次揮手?
threadlocal原理
內存泄漏的可能緣由?
用IDE如何分析內存泄漏?
OOM的可能緣由?
線程死鎖的4個條件?
差值器&估值器
簡述消息機制相關
進程間通訊方式?
Binder相關?
觸摸事件的分發?
簡述Activity啓動所有過程?
okhttp源碼?
RxJava簡介及其源碼解讀?
性能優化如何分析systrace?
廣播的分類?
點擊事件被攔截,可是相傳到下面的view,如何操做?
Glide源碼?
ActicityThread相關?
volatile的原理
synchronize的原理
lock原理
翻轉一個單項鍊表
string to integer
合併多個單有序鏈表(假設都是遞增的)
四大組件
Android中數據存儲方式
微信主頁面的實現方式
微信上消息小紅點的原理
兩個不重複的數組集合中,求共同的元素。
上一問擴展,海量數據,內存中放不下,怎麼求出。
Java中String的瞭解。
ArrayList與LinkedList區別
堆排序過程,時間複雜度,空間複雜度
快速排序的時間複雜度,空間複雜度
RxJava的做用,與平時使用的異步操做來比,優點
Android消息機制原理
Binder機制介紹
爲何不能在子線程更新UI
JVM內存模型
Android中進程內存的分配,能不能本身分配定額內存
垃圾回收機制與調用System.gc()區別
Android事件分發機制
斷點續傳的實現
RxJava的做用,優缺點