目錄

MVC栖秕、MVP和MVVM的原理和區(qū)別

設計的六大基礎原則

使用UML畫一下訪問者設計模式

組件化晓避、字節(jié)碼注入、包體積的極致優(yōu)化

直播的架構設計

設計一個上傳日志的大小暑塑,涉及到锅必,性能、文件大小驹愚、怎樣壓縮劣纲、時機、TopK問題等

OpenGL一些知識蒸甜,頂點著色器余佛、片元著色器的工作原理,什么是VBO(這個沒想起來)恨憎,以及shader的一些簡單問題

View的事件傳遞機制

包體積優(yōu)化

JVM相關知識郊楣,Dalvik和ART的區(qū)別

組件化的實現(xiàn)方案

算法題,ViewGroup的層級深度钥组,轉換為二叉樹的層級深度

RecyclerView防止內(nèi)存OOM的一道題今瀑,充分利用自身的緩存機制,可能我始終沒理解問題所在屿附,雖然給出解決方案挺份,但是面試官不滿意,太繁瑣

討論LRUcache的實現(xiàn)和時間復雜度

查找兩個字符串的交集和字符串1中有字符串2中沒有的問題匀泊。

熱修復探赫,主要說了ClassLoader的方式和Rubost的插裝方式撬呢,重點介紹了Rubost的原理。

實現(xiàn)直播禮物的一些技術選型毛仪,和播放帶有alpha通道MP4的解決方案

怎么實現(xiàn)字節(jié)碼注入

抖音組件的探索芯勘,SPI到字節(jié)碼注入,優(yōu)缺點衡怀。

接下來就是兩道算法題

  1. String字符串的數(shù)字相加

  2. 使用三個線程順序打印有序的數(shù)組

包體積優(yōu)化:靜態(tài) Lint 安疗, Proguard , AndResGuard 和刪除R.java中的所有字段怖现,刪除access方法玉罐,在gradle的transform階段將壓縮png和jpeg吊输,使用google開源的redex方案,每種方案的原理以及優(yōu)缺點

MVVM-livedata的實現(xiàn)原理

屬性動畫的原理讨韭,這里沒看過,不太清楚

Kotlin寫一個let的擴展函數(shù)透硝,大體寫了一下代碼濒生。

算法,可能是我寫的太慢了罪治,所以就只有一道

  1. 給定一個有序的數(shù)組和目標數(shù)觉义,找出與目標數(shù)最近接的index,要求復雜度是log(n)的時間復雜度

二叉樹的深度和廣度霉撵,要求一次遍歷

給定一個二叉樹和一個目標數(shù)洪囤,在二叉樹中是否存在一條路徑的所有節(jié)點的和與目標數(shù)是相同的case,并且打印喇完。

在抖音上顯示自己做的功能剥啤,框架的搭建,實現(xiàn)原理刻诊,所做的優(yōu)化點等富腊。

組件化的實現(xiàn)赘被,為什么做組件化,不同實現(xiàn)的優(yōu)缺點浮入。

hashmap的實現(xiàn)原理

view的優(yōu)化羊异,減少層級彤断,異步加載易迹,x2c框架引入睹欲,優(yōu)缺點,textview的優(yōu)化袋哼。

mp4播放alpha視頻實現(xiàn)的原理

冷啟優(yōu)化的一些方案闸衫。

數(shù)據(jù)驅動業(yè)務的理解,怎么做弟翘,和pm產(chǎn)生分歧怎么解決身冬。

我所有做的優(yōu)化的收益是什么岔乔,有什么數(shù)據(jù)支撐雏门。

事件分發(fā)機制,舉了一個具體的例子來解決宙帝。

http的一些問題募闲,1.1和2.0區(qū)別,心跳機制靴患,https怎么建立鏈接要出,怎么進行數(shù)據(jù)加密等患蹂。

為什么離開抖音砸紊,職業(yè)發(fā)展囱挑,訴求等平挑。

聊了大概一個小時,面試官的思路相對獨特否淤,不是為做技術而做技術棠隐,技術始終要服務于業(yè)務,我非常認可啰扛。

聊了一下項目中做過的東西嗡贺,字節(jié)碼注入相關知識,transform優(yōu)化煞茫,mp4禮物實現(xiàn)等

從桌面點擊icon圖標開始续徽,整個啟動activity的啟動過程

Binder的實現(xiàn)原理

插件化的原理亲澡,以及hook點,大概有兩個客情,可以網(wǎng)上搜索一下

hashmap的實現(xiàn)原理

單例的實現(xiàn)癞己,sychrnized的實現(xiàn)原理末秃,以及雙鎖不加violate,會不會有線程安全問題
代碼設計的基礎原則惰匙,以及用UML畫出工廠模式

將兩個有序的鏈表合并成一個有序的鏈表,遞歸和循環(huán)兩中方式

時間分發(fā)機制哑梳,并且需要從Android的sensor開始到應用層绘盟,我只知道從Activity開始的流程。

聊操作系統(tǒng)Unix吠卷,汗顏沦零,我知之甚少路操。
線程安全的問題,sychronized和viloated的使用

實現(xiàn)一個CAS(樂觀鎖)的方法

HashMap的實現(xiàn)原理搞坝,怎么優(yōu)化內(nèi)存占用魁袜,優(yōu)化resize的過程慌核,這個是開放的問題
對新技術的看法(flutter)申尼,瓜子二手車也已經(jīng)開始在項目中使用fultter相關技術
二叉樹,讀取每一層最右邊的節(jié)點

雙鎖單例粟按,為什么要價violate

內(nèi)部類訪問外部類

函數(shù)值傳遞的一些題

子類繼承父類霹粥,個字都有靜態(tài)變量后控、靜態(tài)代碼塊、構造函數(shù)捌朴,執(zhí)行的順序
圖片壓縮原理,以及在transform階段進行的必要性洼怔,討論的還挺激烈

內(nèi)部類引用外部函數(shù)的參數(shù)左驾,為什么要final定義诡右,值傳遞

判斷一個應用是否切到后臺

組件化的探討,假設場景嗜闻,怎么處理
一個疑難雜癥桅锄,也是自定義插件,討論是否有更好的方式翠肘,最后結果是辫秧,他想了一個比較巧妙的方式盟戏,沒有實踐過,但是告訴我可以邮旷,保留自己的意見蝇摸。

字節(jié)碼相關知識貌夕,ASM以及MD5的實現(xiàn)原理,png的壓縮原理险毁,這里比較亂,就是說到哪問道哪离唐,比較發(fā)散问窃。
mp4實現(xiàn)alpha通道的原理域庇,優(yōu)缺點,收益是什么

m*n的二維數(shù)組熟呛,做(0,0)出發(fā)尉姨,可以上下左右走又厉,0為暢通,1為阻塞侄旬,目標位置(k,j)煌妈,問是否能到達這個位置璧诵,類似迷宮的算法
對成為架構師的幾點看法
插件化的實現(xiàn)方式,以及對相應的場景進行討論
int數(shù)組族操,除了一個數(shù)字外澈缺,其他數(shù)字都出現(xiàn)兩次姐赡,找出這個只出現(xiàn)一次的數(shù)字

Android中的引用關系

自定義view步驟
常用的播放器柠掂,以及優(yōu)缺點

opengl的繪制流程
性能優(yōu)化涯贞,包體積優(yōu)化危喉,冷啟優(yōu)化辜限,卡頓優(yōu)化的一些實現(xiàn)方案

mvc mvp mvvm的區(qū)別严蓖,以及自己實現(xiàn)的輕量級mvvm的原理

編解碼的相關知識

ijkplayer的優(yōu)缺點颗胡,以及是否看過相關源碼
多線程怎么保證線程安全,violated哑蔫、sychronized弧呐、reenterLock俘枫,這三個鎖的原理以及區(qū)別,JVM是怎樣實現(xiàn)sychronized線程安全的巡球。

HashMap的實現(xiàn)原理酣栈,put()原理汹押。hash沖突,resize窖维,1.8的改動铸史,什么是紅黑樹怯伊,優(yōu)點。

ui優(yōu)化崭篡,主要從檢測和優(yōu)化兩個部分說明琉闪,優(yōu)化又分為通用的優(yōu)化颠毙,和改變繪制流程的優(yōu)化。

jvm的介紹咱扣,內(nèi)存介紹,gc等
hashmap是否線程安全涵防,concurenthashmap實現(xiàn)原理闹伪,1.8之后有什么改變

播放透明的mp4的原理

冷啟優(yōu)化和ui卡頓的監(jiān)測和優(yōu)化

thinker實現(xiàn)插件化的原理,我們使用什么什么實現(xiàn)熱更新壮池,熱更新的通用方案偏瓤,以及優(yōu)缺點
binder機制
flutter的探討
音視頻編解碼的流程
activity生命周期
實現(xiàn)mp4播放alpha視頻的原理

是否使用過kotlin,kotlin的一些特性

內(nèi)存泄漏和oom怎么產(chǎn)生的椰憋,內(nèi)存泄漏的監(jiān)控厅克,leakcanery的實現(xiàn)原理
activity生命周期 以及各個函數(shù)的含義

activity task的四種類型

fragment的生命周期

啟動server的兩種方式

intent傳輸數(shù)據(jù)的大小限制

binder的原理

activity的啟動流程

hashmap實現(xiàn)原理,1.8的改動橙依,紅黑樹概念
組件化實現(xiàn)方案 spi的缺點,怎么使用字節(jié)碼注入

Dex的組成窗骑,為什么每個dex會有65536的限制

還有好多女责,時間太長記不太清楚了
合并兩個有序的鏈表
看過哪些第三方框架的源碼,具體的實現(xiàn)原理创译。retrofit抵知、okhttp和eventbus等

Activity的生命周期、fragment的生命周期软族,onRestart()什么時候調(diào)用

service的兩種啟動方式刷喜,service的生命周期

binder機制

進程保活:1.防止進程被殺 2.殺死后再拉起立砸,詳細的答案網(wǎng)上搜一下掖疮,這里就不列舉出來了

app的包體積優(yōu)化,lint仰禽、proguard氮墨、andresguard原理纺蛆,字節(jié)碼注入吐葵,刪除R.java的變量,刪除access001方法规揪,壓縮圖片資源和使用redex等。

對JNI和C++了解嗎温峭?基本不了解猛铅,就略過了

Activity的launchMode,每個Mode的含義凤藏,Activity的啟動流程

怎么樣實現(xiàn)MP4播放alpha的視頻奸忽,編解碼的一些流程,NV20揖庄、YUV栗菜、RGB一些概念,SurfaceView和TextureSurfaceView的區(qū)別

組件化的實現(xiàn)蹄梢,都有什么技術方案疙筹,優(yōu)缺點

使用數(shù)組實現(xiàn)一個隊列,有void add(int val)和void pop()兩個函數(shù)禁炒,而且需要考慮擴容

哪兩件事情做得最有成就感

怎樣重構代碼而咆,基本的6大原則,詳細討論每個原則的含義幕袱,使用過的設計模式

假定場景暴备,接口定義的有缺陷,第二版需要修改们豌,是增加還是直接修改涯捻,以及還有沒有其他的方案,怎么去做望迎,為什么障癌,這個是開放的題,結合設計原則擂煞,以及真實的情況和自己的一些例子說明即可

組件化混弥,依賴版本號不同的解決辦法
包體積優(yōu)化,Lint对省、proguard蝗拿、andResGuard的原理,以及抖音做的一些包體積優(yōu)化的方案

線程和線程池的討論蒿涎,為什么要用線程池哀托,線程池各個參數(shù)的含義,如果隊列滿了會發(fā)生什么劳秋,為什么線程池的數(shù)量是cpu核數(shù)+1
插件化仓手,一些實際問題的胖齐,具體是什么記不太清楚了

線程安全的方式,sychronized和violated的區(qū)別

怎么自定義Transform嗽冒、自定義Task呀伙,Task之間怎么依賴,大致順序是什么添坊,增量編譯的概念剿另,異步加快文件的讀取,ASM接口的使用

cookie贬蛙、session雨女、token的含義和區(qū)別,這里我確實不熟悉阳准,就直接說我不太清楚了氛堕。

音視頻的相關知識,NV20野蝇,YUV讼稚,RGB的關系,為什么mp4的壓縮率比webp的動畫要高浪耘,編解碼的流程乱灵,通用的編碼格式,軟硬解的區(qū)別七冲。

View的繪制流程痛倚,硬件加速的原理和軟件繪制的區(qū)別,以及相關的view的優(yōu)化

動畫實現(xiàn)的方式澜躺,幀動畫和屬性動畫的實現(xiàn)原理

一張圖片加載到手機內(nèi)存中真正的大小是怎么計算的

OOM產(chǎn)生的原理蝉稳,內(nèi)存泄漏是由于什么引起的,GCRoot有哪幾種類型掘鄙,JVM等

一個二分查找的變形題耘戚,具體的題目記不清楚了

為什么要做組件化,組件化的實現(xiàn)方案都有什么操漠,優(yōu)缺點

Activity的啟動流程

View的繪制流程收津,從VSYNC信號開始

性能優(yōu)化,包體積優(yōu)化浊伙,R.java優(yōu)化撞秋,access$xx方法優(yōu)化,資源優(yōu)化原理

MVVM是什么嚣鄙,我自己做的輕量級的MVVM的實現(xiàn)方式吻贿,優(yōu)點是什么

看過什么第三方的源碼,retrofit原理哑子,動態(tài)代理和靜態(tài)代理的區(qū)別舅列,是否使用反射肌割,okhttp的原理,Http和Https的區(qū)別帐要,Https的socket security layer的握手把敞,EventBus的原理,3.0的區(qū)別宠叼,APT的使用以及怎樣處理字節(jié)碼(ASM先巴、javaassit其爵、BECEL等)

從Activity A跳到Activity B的生命周期的調(diào)用過程冒冬,如果是異步進程呢

冷起優(yōu)化,systrace怎么使用摩渺,實現(xiàn)原理

ANR是什么简烤,怎么上報ANR,有些手機拿不出摇幻,有些手機拿不出anr/traces.txt横侦,怎么查找ANR問題

插件化的原理,Activity的啟動流程绰姻,hook點

一個類枉侧,內(nèi)部有一個鏈表的數(shù)據(jù)結構,實現(xiàn)void add(Node n)和void remove(int index)的函數(shù)

HashMap的實現(xiàn)原理

在抖音做的工作狂芋,主要說了ui優(yōu)化和冷起優(yōu)化兩個部分榨馁,擴展開來,討論了很多相關的知識點

手寫消費者生產(chǎn)者模型的代碼

handler介紹帜矾,為什么阻塞不會造成anr翼虫,屏障消息,產(chǎn)生內(nèi)存泄露原因屡萤,handler內(nèi)存泄露的引用鏈

事件攔截機制珍剑,view的繪制流程

android的系統(tǒng)渲染原理,renderthread的解釋死陆,三緩沖機制播放透明mp4的原理招拙,surfaceview和textureview的區(qū)別

opengl的繪制流程,texturesurface是什么措译,頂點著色器和片元著色器各自作用,VOB是什么

一個無序的int數(shù)組别凤,給一個target數(shù)字,找出數(shù)組中兩個數(shù)字相加為target瞳遍,并輸出坐標

hashmap的實現(xiàn)原理闻妓,怎樣找到index,size為什么是2的倍數(shù)掠械,怎樣resize由缆,resize過后注祖,之前的hash沖突還存在嗎?currenthashmap的實現(xiàn)原理

怎樣保證多線程的安全均唉,什么是樂觀鎖是晨,怎么使用

設計一個發(fā)送語音模塊的架構,需要寫出所有接口函數(shù)舔箭,并且需要詳細說明罩缴,可能面試官更加在意設計能力,這里討論的時間非常長层扶。

view的繪制流程箫章,onMeasure、onLayout镜会、onDraw檬寂,各個參數(shù)是什么含義,尤其是widthMeasureSpec戳表、heightMeasureSpec以及對應的AT_MOST桶至、EXACTLY和UNSPECIFIED

數(shù)組中存有1-3的三種數(shù)字,例如[1,2,3,1,2,2,1,3,3],將其排序為[1,1,1,2,2,2,3,3,3]匾旭,要求時間復雜度镣屹,后續(xù)將內(nèi)容變?yōu)橐粋€對象,繼續(xù)排序

mp4播放alpha視頻的原理价涝,與其他方案的對比女蜈,收益點是什么

"之"字形打印二叉樹

1~100盞燈,都是亮的飒泻,第一次將能被1整除的數(shù)的燈按下鞭光,變暗,第二次將能被2整除的數(shù)的等按下泞遗,變亮惰许,第三次將能被3整除的數(shù)的等按下,變暗…第100次將能被100整除的數(shù)的燈按下史辙,問汹买,最后有多少盞燈是亮的。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末聊倔,一起剝皮案震驚了整個濱河市晦毙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌耙蔑,老刑警劉巖见妒,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異甸陌,居然都是意外死亡须揣,警方通過查閱死者的電腦和手機盐股,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耻卡,“玉大人疯汁,你說我怎么就攤上這事÷牙遥” “怎么了幌蚊?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長溃卡。 經(jīng)常有香客問我溢豆,道長,這世上最難降的妖魔是什么塑煎? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任沫换,我火速辦了婚禮,結果婚禮上最铁,老公的妹妹穿的比我還像新娘。我一直安慰自己垮兑,他們只是感情好冷尉,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著系枪,像睡著了一般雀哨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上私爷,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天雾棺,我揣著相機與錄音,去河邊找鬼衬浑。 笑死捌浩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的工秩。 我是一名探鬼主播尸饺,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼助币!你這毒婦竟也來了浪听?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤眉菱,失蹤者是張志新(化名)和其女友劉穎迹栓,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俭缓,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡克伊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年叉抡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片答毫。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡褥民,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出洗搂,到底是詐尸還是另有隱情消返,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布耘拇,位于F島的核電站撵颊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惫叛。R本人自食惡果不足惜倡勇,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘉涌。 院中可真熱鬧妻熊,春花似錦、人聲如沸仑最。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽警医。三九已至亿胸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間预皇,已是汗流浹背侈玄。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吟温,地道東北人赁酝。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓殖属,卻偏偏與公主長得像榴捡,于是被迫代替她去往敵國和親帘瞭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容