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