Android(2017-2018)BAT面試題整理(Android篇,含答案)

Android(2017-2018)BAT面試題整理(Android篇,含答案)

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

**個(gè)人面試經(jīng)歷總結(jié)文章:
Android2017-2018最新面試題(3-5年經(jīng)驗(yàn)個(gè)人面試經(jīng)歷)
**BAT面試系列文章:
一、Android(2017-2018)BAT面試題整理(java篇,含答案)
二、Android(2017-2018)BAT面試題整理(Android篇,含答案)
三、Android(2017-2018)BAT面試題整理(深入技術(shù)篇,含答案)未完待續(xù)
四、Android(2017-2018)BAT面試題整理(高層/HR篇,含答案)未完待續(xù)

文章題目素材來(lái)源于:
2017 年初、阿里、騰訊、百度、華為、京東、搜狗和滴滴面試題匯集(更新篇)
2017下半年,一二線互聯(lián)網(wǎng)公司Android面試題匯總


不好意思各位同學(xué),最近工作忙+準(zhǔn)備結(jié)婚,這篇文章應(yīng)該早點(diǎn)出來(lái)的,不過(guò)現(xiàn)在也不遲,金三銀四,需要跳槽的快快復(fù)習(xí)和準(zhǔn)備吧!
上篇文章主要攻克java相關(guān)的知識(shí),請(qǐng)深入的掃一遍!只有好處沒(méi)有壞處??!


資料比較亂,基本都是針對(duì)公司的面試題整理的,我這里就不單獨(dú)以公司為單位整理,我自己進(jìn)行了分類,循序漸進(jìn),由基礎(chǔ)到深入,由易到簡(jiǎn)。
每個(gè)問(wèn)題我都會(huì)附上1-3個(gè)答案,都是我自己摸索消化(真心花了很多時(shí)間),覺得寫的比較好的文章作為答案。這樣就可以節(jié)省大家自己去搜索的時(shí)間,把時(shí)間用在正確的東西上。

其實(shí)我可以直接以簡(jiǎn)易的答案寫出來(lái),但是這并幫助不了同學(xué)們?nèi)ド羁汤斫猓贾逻€是采用別人長(zhǎng)篇or精簡(jiǎn)的答案,希望大家理解。
不明白或者想通俗了解的,可以私信我一起討論,后續(xù)會(huì)建一個(gè)面試群給大家討論面試的東西。


2017-2018 Android-BAT-Android 面試題分類:

  • 1.四大組件
  • 2.Fragment
  • 3.自定義組件、動(dòng)畫
  • 4.存儲(chǔ)
  • 5.網(wǎng)絡(luò)
  • 6.圖片
  • 7.布局
  • 8.性能優(yōu)化
  • 9.JNI
  • 10.進(jìn)程間通信(簡(jiǎn)稱:IPC)
  • 11.WebView
  • 12.進(jìn)程保活
  • 13.雜7雜8

1.四大組件

(1.1)四大組件是什么
看開頭
(1.2)四大組件的生命周期
看開頭文章
(1.3)Activity之間的通信方式
http://www.itdecent.cn/p/f836432396f0
(1.4)橫豎屏切換的時(shí)候,Activity 各種情況下的生命周期
https://blog.csdn.net/hzw19920329/article/details/51345971
(1.5)Activity與Fragment之間生命周期比較
http://www.itdecent.cn/p/b1ff03a7bb1f
(1.6)Activity上有Dialog的時(shí)候按Home鍵時(shí)的生命周期
https://blog.csdn.net/hanhan1016/article/details/47977489
(1.7)兩個(gè)Activity 之間跳轉(zhuǎn)時(shí)必然會(huì)執(zhí)行的是哪幾個(gè)方法?
https://blog.csdn.net/m_xiaoer/article/details/72881082
(1.8)Activity的四種啟動(dòng)模式對(duì)比以及使用場(chǎng)景
https://blog.csdn.net/CodeEmperor/article/details/50481726
(1.9)Activity狀態(tài)保存與恢復(fù)
https://blog.csdn.net/sinat_33921105/article/details/78631823
(1.10)Activity 怎么和Service 綁定
http://www.itdecent.cn/p/5d73389f3ab2
(1.11)Service和Activity怎么進(jìn)行數(shù)據(jù)交互?
http://www.itdecent.cn/p/cd69f208f395
(1.12)Service的開啟方式
http://www.itdecent.cn/p/2fb6eb14fdec
(1.13)請(qǐng)描述一下Service 的生命周期
http://www.itdecent.cn/p/8d0cde35eb10
(1.14)談?wù)勀銓?duì)ContentProvider的理解
http://www.itdecent.cn/p/f5ec75a9cfea
(1.15)ContentProvider、ContentResolver、ContentObserver 之間的關(guān)系
https://blog.csdn.net/heqiangflytosky/article/details/31777363
(1.16)請(qǐng)描述一下廣播BroadcastReceiver的理解(實(shí)現(xiàn)原理)
http://www.itdecent.cn/p/ca3d87a4cdf3
(1.17)廣播的分類
http://www.itdecent.cn/p/ca3d87a4cdf3
(1.18)廣播使用的方式和場(chǎng)景
http://www.itdecent.cn/p/ca3d87a4cdf3
(1.19)本地廣播和全局廣播有什么差別?
http://www.itdecent.cn/p/bfbb6ebc1c04
(1.20)Application 和 Activity 的 Context 對(duì)象的區(qū)別
https://www.cnblogs.com/liyiran/p/5283551.html

2.Fragment
有個(gè)大神自己封裝了Fragment,基本覆蓋了大部分你能遇到的坑,看看他的文章:
http://www.itdecent.cn/p/d9143a92ad94
(2.1)什么是Fragment
http://www.itdecent.cn/p/2bf21cefb763
(2.2)為什么要用Fragment
https://www.cnblogs.com/shaweng/p/3918985.html
(2.3)Fragment與Activity的通信方式
http://www.itdecent.cn/p/825eb1f98c19
(2.4)Fragment各種情況下的生命周期
http://www.itdecent.cn/p/b1ff03a7bb1f
(2.5)Fragment之間傳遞數(shù)據(jù)的方式?
http://www.itdecent.cn/p/f87baad32662
(2.6)Fragment的add與replace的區(qū)別
https://blog.csdn.net/gsw333/article/details/51858524
(2.7)用Fragment有遇過(guò)什么坑嗎,怎么解決
http://www.itdecent.cn/p/d9143a92ad94
(2.8)getFragmentManager,getSupportFragmentManager ,getChildFragmentManager三者之間的區(qū)別
https://blog.csdn.net/allan_bst/article/details/64920076
(2.9)FragmentPagerAdapter與FragmentStatePagerAdapter的區(qū)別與使用場(chǎng)景
https://blog.csdn.net/lamp_zy/article/details/52446842

3.自定義組件、動(dòng)畫
了解自定義view,這里:
http://www.itdecent.cn/p/c84693096e41
(3.1)描述一下View的繪制流程
http://www.itdecent.cn/p/060b5f68da79
(3.2)說(shuō)說(shuō)自定義view的幾個(gè)構(gòu)造函數(shù)
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0806/4575.html
(3.3)View 里面的 onSavedInstanceState和onRestoreInstanceState的作用
https://blog.csdn.net/shouniezhe/article/details/47705001
(3.4)onLayout() 和Layout()的區(qū)別
https://blog.csdn.net/h183288132/article/details/50184423
(3.5)描述一下getX、getRawX、getTranslationX
https://blog.csdn.net/dmk877/article/details/51550031
(3.6)Android中的動(dòng)畫有哪幾類,它們的特點(diǎn)和區(qū)別是什么
http://www.itdecent.cn/p/420629118c10
(3.7)Interpolator和TypeEvaluator的作用
https://www.cnblogs.com/wondertwo/p/5327586.html
(3.8)請(qǐng)描述一下View事件傳遞分發(fā)機(jī)制
http://www.itdecent.cn/p/e99b5e8bd67b
(3.9)事件分發(fā)中的onTouch 和onTouchEvent 有什么區(qū)別,又該如何使用?
https://blog.csdn.net/huiguixian/article/details/22193977
(3.10)View和ViewGroup分別有哪些事件分發(fā)相關(guān)的回調(diào)方法
http://www.itdecent.cn/p/e99b5e8bd67b
(3.11)View刷新機(jī)制
https://blog.csdn.net/chenzhiqin20/article/details/8628952

4.存儲(chǔ)
(4.1)描述一下你知道的數(shù)據(jù)存儲(chǔ)方式
http://www.itdecent.cn/p/540e44f00d3e
(4.2)SharedPreferences的應(yīng)用場(chǎng)景,核心原理是什么
http://www.itdecent.cn/p/ae2c7004179d
https://blog.csdn.net/dbs1215/article/details/78531258
(4.3)SharedPreferences是線程安全的嗎?
去源碼看看有沒(méi)有同步鎖就知道了,答案是線程安全的。
(4.4)描述一下圖片存儲(chǔ)在本地的方式
http://www.itdecent.cn/p/8cede074ba5b
https://blog.csdn.net/ccpat/article/details/45314175
(4.5)sqlite升級(jí),增加字段的語(yǔ)句
https://blog.csdn.net/xu_song/article/details/49658195
(4.6)數(shù)據(jù)庫(kù)框架對(duì)比和源碼分析
https://blog.csdn.net/u012702547/article/details/52226163
http://www.itdecent.cn/p/c4e9288d2ce6
(4.7)數(shù)據(jù)庫(kù)的優(yōu)化
http://www.itdecent.cn/p/3b4452fc1bbd
(4.8)數(shù)據(jù)庫(kù)數(shù)據(jù)遷移問(wèn)題
https://www.cnblogs.com/awkflf11/p/6033074.html

5.網(wǎng)絡(luò)
(5.1)描述一次網(wǎng)絡(luò)請(qǐng)求的流程
https://blog.csdn.net/seu_calvin/article/details/53304406
(5.2)HTTP報(bào)文結(jié)構(gòu)
http://www.itdecent.cn/p/e544b7a76dac
(5.3)HttpClient和HttpURLConnection的區(qū)別
https://www.cnblogs.com/zhousysu/p/5483896.html
(5.4)Volley,okhttp,retrofit之間的區(qū)別和核心原理和使用場(chǎng)景
http://www.itdecent.cn/p/050c6db5af5a
(5.5)描述一下https
https://showme.codes/2017-02-20/understand-https/
(5.6)https中哪里用了對(duì)稱加密,哪里用了非對(duì)稱加密,對(duì)加密算法(如RSA)等是否有了解?
https://showme.codes/2017-02-20/understand-https/
(5.7)說(shuō)一下三次握手,四次揮手的具體細(xì)節(jié)
我經(jīng)常用面試問(wèn)別人這道題,哈哈,為什么不能兩次握手呢?要三次?
https://www.cnblogs.com/Andya/p/7272462.html
(5.8)描述一下socket是什么東西
http://www.itdecent.cn/p/089fb79e308b
(5.9)從網(wǎng)絡(luò)加載一個(gè)10M的圖片,說(shuō)下注意事項(xiàng)
http://www.itdecent.cn/p/7c81d3742c38
http://www.itdecent.cn/p/f850a23ab99c
(5.10)TCP與UDP的區(qū)別
https://blog.csdn.net/li_ning_/article/details/52117463
(5.11)client如何確定自己發(fā)送的消息被server收到?
HTTP協(xié)議里,有請(qǐng)求就有響應(yīng),根據(jù)響應(yīng)的狀態(tài)嗎就能知道拉。
(5.12)WebSocket與socket的區(qū)別
https://blog.csdn.net/wwd0501/article/details/54582912
(5.13)網(wǎng)絡(luò)請(qǐng)求緩存處理,okhttp如何處理網(wǎng)絡(luò)緩存的
看源碼,看緩存策略
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0326/2643.html
(5.14)自己去設(shè)計(jì)網(wǎng)絡(luò)請(qǐng)求框架,怎么做?(隨便套個(gè)開源框架的原理)
就套o(hù)khttp的,被google承認(rèn)并使用的框架,準(zhǔn)沒(méi)錯(cuò)。
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0326/2643.html

6.圖片
(6.1)說(shuō)一下OOM的原因,如何避免
https://blog.csdn.net/boyupeng/article/details/47726765
(6.2)說(shuō)一下三級(jí)緩存的原理
http://www.itdecent.cn/p/97455f080065
(6.3)描述一下內(nèi)存緩存的容器
LruCache其實(shí)是一個(gè)Hash表,內(nèi)部使用的是LinkedHashMap存儲(chǔ)數(shù)據(jù)
https://blog.csdn.net/justloveyou_/article/details/71713781
(6.4)圖片庫(kù)對(duì)比
http://www.itdecent.cn/p/fc72001dc18d
(6.5)圖片庫(kù)的源碼分析
https://blog.csdn.net/guolin_blog/article/details/53759439
(6.6)圖片框架緩存實(shí)現(xiàn)
郭霖大神寫了幾篇文章介紹Glide,都有詳細(xì)介紹
https://blog.csdn.net/guolin_blog/article/details/53759439
(6.7)LRUCache原理
https://www.cnblogs.com/tianzhijiexian/p/4248677.html
(6.9)自己去實(shí)現(xiàn)圖片庫(kù),怎么做?(隨便套個(gè)開源框架的原理)
套Glide的就OK拉,從設(shè)計(jì)思想,然后到實(shí)現(xiàn)方式
(6.12)說(shuō)說(shuō)Glide內(nèi)存緩存的具體實(shí)現(xiàn)?
https://blog.csdn.net/guolin_blog/article/details/54895665

7.布局
(7.1)說(shuō)一下布局性能的排序,誰(shuí)的效率最高
https://blog.csdn.net/seu_calvin/article/details/53047682
(7.2)描述一下約束布局
https://blog.csdn.net/zhaoyanjun6/article/details/62896784
(7.3)關(guān)于布局優(yōu)化的方案
學(xué)會(huì)用約束布局,基本優(yōu)化很多了,但是老方法還是要會(huì),面試官多數(shù)比較守舊。因?yàn)橘Y深,年紀(jì)也可能稍微大一點(diǎn),哈哈。
https://www.cnblogs.com/hoolay/p/6248514.html
(7.4)怎么檢測(cè)布局深度
https://blog.csdn.net/hp910315/article/details/52684039
(7.5)LinearLayout、RelativeLayout、FrameLayout的特性及對(duì)比,并介紹使用場(chǎng)景。
https://blog.csdn.net/seu_calvin/article/details/53047682

8.性能優(yōu)化
PS:性能優(yōu)化包括內(nèi)存,處理效率,視覺流暢度,CPU,電量,流量等方面,針對(duì)手機(jī)的性能去做相應(yīng)的方案。個(gè)人認(rèn)為更應(yīng)該把握好內(nèi)存優(yōu)化、處理效率(代碼質(zhì)量)、視覺流暢度(布局優(yōu)化)。
(8.1)ANR產(chǎn)生的原因是什么?
http://www.itdecent.cn/p/7fd95bc2a55c
(8.3)oom是什么?
https://blog.csdn.net/hudfang/article/details/51781997
(8.4)什么情況導(dǎo)致oom?
https://blog.csdn.net/hudfang/article/details/51781997
(8.5)有什么解決方法可以避免OOM?
https://blog.csdn.net/hudfang/article/details/51781997
(8.6)Oom 是否可以try catch?為什么?
有一種情況可以:在try語(yǔ)句中聲明了很大的對(duì)象,導(dǎo)致OOM,并且可以確認(rèn)OOM是由try語(yǔ)句中的對(duì)象聲明導(dǎo)致的,但是這通常不是合適的做法。
(8.7)內(nèi)存泄漏是什么?
http://www.itdecent.cn/p/bf159a9c391a
(8.8)什么情況導(dǎo)致內(nèi)存泄漏?
http://www.itdecent.cn/p/90caf813682d
(8.9)如何防止線程的內(nèi)存泄漏?
http://www.itdecent.cn/p/90caf813682d
https://www.cnblogs.com/ywq-come/p/5926422.html
(8.10)內(nèi)存泄露的解決方法
https://blog.csdn.net/carson_ho/article/details/79407707
(8.11)內(nèi)存泄漏和內(nèi)存溢出區(qū)別?
https://blog.csdn.net/sinat_29255093/article/details/52556760
(8.12)如何對(duì)Android 應(yīng)用進(jìn)行性能分析以及優(yōu)化?
這個(gè)作者做了很多片性能優(yōu)化的文章,建議看完
http://www.itdecent.cn/p/da2a4bfcba68
(8.13)怎么去除無(wú)用代碼?
https://blog.csdn.net/it_flower/article/details/52305558
(8.14)性能優(yōu)化如何分析systrace?
http://www.itdecent.cn/p/6f528e862d31
(8.15)用IDE如何分析內(nèi)存泄漏?
跑一段你覺得有問(wèn)題的代碼段,gc,再跑,再gc,看看內(nèi)存會(huì)不會(huì)一直上升
https://blog.csdn.net/u010944680/article/details/51721532
(8.16)Java多線程引發(fā)的性能問(wèn)題,怎么解決?
https://zhuanlan.zhihu.com/p/23389156
(8.17)啟動(dòng)頁(yè)白屏及黑屏解決?
https://blog.csdn.net/zivensonice/article/details/51691136
(8.18)啟動(dòng)太慢怎么解決?
應(yīng)用啟動(dòng)速度,取決于你在application里面時(shí)候做了什么事情,比如你集成了很多sdk,并且sdk的init操作都需要在主線程里實(shí)現(xiàn),那自然就慢咯。在非必要的情況下可以把加載延后?;蛘邅G子線程里。
http://www.itdecent.cn/p/4f10c9a10ac9
(8.19)怎么保證應(yīng)用啟動(dòng)不卡頓?
同上面一個(gè)道理,也可以做個(gè)閃屏頁(yè)當(dāng)緩沖時(shí)間。
http://www.itdecent.cn/p/4f10c9a10ac9
(8.20)App啟動(dòng)崩潰異常捕捉
http://www.itdecent.cn/p/fb28a5322d8a
(8.21)自定義View注意事項(xiàng)
減少不必要的調(diào)用invalidate()方法
https://blog.csdn.net/whb20081815/article/details/74474736
(8.22)現(xiàn)在下載速度很慢,試從網(wǎng)絡(luò)協(xié)議的角度分析原因,并優(yōu)化(提示:網(wǎng)絡(luò)的5層都可以涉及)。
這個(gè)問(wèn)題讓我去請(qǐng)教一下再來(lái)回答
(8.23)Https請(qǐng)求慢的解決辦法(提示:DNS,攜帶數(shù)據(jù),直接訪問(wèn)IP)
https://www.cnblogs.com/mylanguage/p/5635524.html
(8.24)如何保持應(yīng)用的穩(wěn)定性
內(nèi)存,布局優(yōu)化,代碼質(zhì)量,數(shù)據(jù)結(jié)構(gòu)效率,針對(duì)業(yè)務(wù)合理的設(shè)計(jì)框架
(8.25)RecyclerView和ListView的性能對(duì)比
https://blog.csdn.net/fanenqian/article/details/61191532
(8.26)ListView的優(yōu)化
可以說(shuō)上分頁(yè)加載哦
https://www.cnblogs.com/yuhanghzsd/p/5595532.html
(8.27)RecycleView優(yōu)化
https://blog.csdn.net/axi295309066/article/details/52741810
http://www.itdecent.cn/p/411ab861034f
(8.28)View渲染
https://www.cnblogs.com/ldq2016/p/6668148.html
(8.29)Bitmap如何處理大圖,如一張30M的大圖,如何預(yù)防OOM
重點(diǎn)是在對(duì)于對(duì)內(nèi)存的了解以及內(nèi)存使用率的掌握
https://blog.csdn.net/guolin_blog/article/details/9316683
(8.30)java中的四種引用的區(qū)別以及使用場(chǎng)景
https://blog.csdn.net/qq_23547831/article/details/46505287
(8.31)強(qiáng)引用置為null,會(huì)不會(huì)被回收?
會(huì),GC執(zhí)行時(shí),就被回收掉,前提是沒(méi)有被引用的對(duì)象
一定要了解垃圾回收原理
https://blog.csdn.net/qq_33048603/article/details/52727991

9.JNI
(9.1)請(qǐng)介紹一下NDK
http://www.itdecent.cn/p/fa613762f516
https://blog.csdn.net/carson_ho/article/details/73250163
(9.2)什么是NDK庫(kù)?
https://blog.csdn.net/carson_ho/article/details/73250163
(9.3)如何在JNI中注冊(cè)native函數(shù),有幾種注冊(cè)方式?
https://blog.csdn.net/wwj_748/article/details/52347341
(9.4)Java如何調(diào)用c、c++語(yǔ)言?
http://www.itdecent.cn/p/27404a899d88
(9.5)JNI如何調(diào)用java層代碼?
http://www.itdecent.cn/p/4893848a3249
(9.6)你用JNI來(lái)實(shí)現(xiàn)過(guò)什么功能嗎?怎么實(shí)現(xiàn)的?
加密處理、影音方面、圖形圖像處理
https://blog.csdn.net/summer0527/article/details/1827186

10.進(jìn)程間通信(簡(jiǎn)稱:IPC)
(10.1)進(jìn)程間通信的方式?
http://www.itdecent.cn/p/ce1e35c84134
(10.2)Binder機(jī)制的作用和原理
http://www.cnblogs.com/innost/archive/2011/01/09/1931456.html
https://blog.csdn.net/luoshengyang/article/details/6618363/
(10.3)簡(jiǎn)述IPC?
https://blog.csdn.net/luoshengyang/article/details/6618363/
(10.4)什么是AIDL?
http://www.itdecent.cn/p/d1fac6ccee98
http://www.itdecent.cn/p/a5c73da2e9be
(10.5)AIDL解決了什么問(wèn)題?
官方文檔:
Note: Using AIDL is necessary only if you allow clients from different applications to access your service for IPC and want to handle multithreading in your service. If you do not need to perform concurrent IPC across different applications, you should create your interface by implementing a Binder or, if you want to perform IPC, but do not need to handle multithreading, implement your interface using a Messenger. Regardless, be sure that you understand Bound Services before implementing an AIDL.
“只有當(dāng)你允許來(lái)自不同的客戶端訪問(wèn)你的服務(wù)并且需要處理多線程問(wèn)題時(shí)你才必須使用AIDL”
(10.6)AIDL如何使用?
http://www.itdecent.cn/p/d1fac6ccee98
http://www.itdecent.cn/p/a5c73da2e9be
(10.8)Android進(jìn)程分類?
https://blog.csdn.net/zhongshujunqia/article/details/72458271
(10.9)進(jìn)程和 Application 的生命周期?
(10.10)進(jìn)程調(diào)度
https://blog.csdn.net/innost/article/details/6940136
(10.11)談?wù)剬?duì)進(jìn)程共享和線程安全的認(rèn)識(shí)
https://blog.csdn.net/coding_glacier/article/details/8230159
https://blog.csdn.net/oweixiao123/article/details/9057445
問(wèn)你線程安全的時(shí)候,不止要回答主線程跟子線程之間的切換,還有數(shù)據(jù)結(jié)構(gòu)處理的線程安全問(wèn)題,多線程操作同一個(gè)數(shù)據(jù)的一致性問(wèn)題,等等。

11.WebView
http://www.itdecent.cn/p/3c94ae673e2a
http://www.itdecent.cn/p/52ec85259ccc
過(guò)一遍這個(gè)
(11.1)描述一下Webview的作用
WebView控件功能強(qiáng)大,除了具有一般View的屬性和設(shè)置外,還可以對(duì)url請(qǐng)求、頁(yè)面加載、渲染、頁(yè)面交互進(jìn)行強(qiáng)大的處理。
(11.2)WebView的內(nèi)核是什么
Android的Webview在低版本和高版本采用了不同的webkit版本內(nèi)核,4.4后直接使用了Chrome。
(11.3)描述一下WebView與js的交互方式
https://blog.csdn.net/carson_ho/article/details/64904691
(11.4)描述一下WebView的緩存機(jī)制
http://www.itdecent.cn/p/5e7075f4875f
(11.5)關(guān)于WebView的優(yōu)化你知道哪些
http://www.itdecent.cn/p/95d4d73be3d1
(11.6)有沒(méi)有用過(guò)第三方WebView組件?講一講優(yōu)勢(shì)
http://www.itdecent.cn/p/d3ef9c62b6c8

12.進(jìn)程?;?/strong>
關(guān)于守護(hù)進(jìn)程、不死進(jìn)程、進(jìn)程?;钸@些話題,有幾句話想說(shuō)一下:
這個(gè)近期是面的越來(lái)越少。在google的控制下,高版本基本上是扼殺了這種無(wú)賴行為,市面上現(xiàn)在做進(jìn)程?;罨径际亲邚S商白名單和系統(tǒng)簽名進(jìn)程等方式,又或者應(yīng)用之間互相拉起,各大應(yīng)用相互合作。
但并不是說(shuō)不能做,只能用各種方式混搭,去提高?;畹某晒β?。

熟悉進(jìn)程?;畹母韶洠?br> http://www.itdecent.cn/p/63aafe3c12af
https://blog.csdn.net/tencent_bugly/article/details/52192423
https://www.cnblogs.com/Doing-what-I-love/p/5530291.html

還有一個(gè)大神深入研究這個(gè)話題,并開源出自己的代碼,在github上挺受歡迎的,大家可以去拿來(lái)試一下:
blog:https://blog.csdn.net/marswin89/article/details/48015453
github:https://github.com/Marswin/MarsDaemon

看完以上文章,so以下的問(wèn)題大家心里都有數(shù)了吧?
(12.1)做過(guò)進(jìn)程?;顔??
(12.2)5.0下和5.0上的?;罘绞搅私鈫??
(12.3)描述一下進(jìn)程回收的過(guò)程
(12.4)如何降低進(jìn)程的oom_adj

13.雜7雜8
(13.1)Handler機(jī)制和底層實(shí)現(xiàn)
https://www.cnblogs.com/ryanleee/p/8204450.html
http://www.itdecent.cn/p/b03d46809c4d
(13.2)Handler、Thread和HandlerThread的差別
https://blog.csdn.net/lmj623565791/article/details/47079737/
(13.3)handler發(fā)消息給子線程,looper怎么啟動(dòng)?
什么問(wèn)題呢。。發(fā)消息就是把消息塞進(jìn)去消息隊(duì)列,looper在應(yīng)用起來(lái)的時(shí)候已經(jīng)就啟動(dòng)了,一直在輪詢?nèi)∠㈥?duì)列的消息。
(13.4)關(guān)于Handler,在任何地方new Handler 都是什么線程下?
我自己看不太懂這個(gè)問(wèn)題
(13.5)ThreadLocal原理,實(shí)現(xiàn)及如何保證Local屬性?
https://blog.csdn.net/singwhatiwanna/article/details/48350919
(13.6)請(qǐng)解釋下在單線程模型中Message、Handler、Message Queue、Looper之間的關(guān)系
https://blog.csdn.net/lovedren/article/details/51701477
(13.7)AsyncTask機(jī)制
https://blog.csdn.net/yanbober/article/details/46117397
(13.8)AsyncTask原理及不足
https://www.cnblogs.com/absfree/p/5357678.html
(13.9)如何取消AsyncTask?
調(diào)用cancel()
但是:
http://www.itdecent.cn/p/0c6f4b6ed558
(13.10)為什么不能在子線程更新UI?
https://blog.csdn.net/cewei711/article/details/53028358?locationNum=2&fps=1
(13.11)LruCache默認(rèn)內(nèi)存緩存大小
基本上設(shè)置為手機(jī)內(nèi)存的1/8
(13.12)ContentProvider的權(quán)限管理(解答:讀寫分離,權(quán)限控制-精確到表級(jí),URL控制)
(13.13)如何通過(guò)廣播攔截和abort一條短信?
https://blog.csdn.net/ljw124213/article/details/50492449
(13.14)廣播是否可以請(qǐng)求網(wǎng)絡(luò)?
子線程可以,主線程超過(guò)10s引起anr
(13.15)廣播引起anr的時(shí)間限制是多少?
onReceive的生命周期為10秒
https://blog.csdn.net/me_dong/article/details/53582115
(13.16)描述一下Activity棧
http://www.itdecent.cn/p/c1386015856a
(13.17)Android線程有沒(méi)有上限?
跟內(nèi)存掛鉤,我也不太清楚,自己查哈
(13.18)線程池有沒(méi)有上限?
跟內(nèi)存掛鉤,我也不太清楚,自己查哈
http://www.trinea.cn/android/java-android-thread-pool/
https://blog.csdn.net/cfy137000/article/details/51422316
(13.19)ListView重用的是什么?
https://blog.csdn.net/u011692041/article/details/53099584
(13.20)Android為什么引入Parcelable?
https://blog.csdn.net/jaycee110905/article/details/21517853
(13.21)有沒(méi)有嘗試簡(jiǎn)化Parcelable的使用?
as的插件
(13.22)ListView 中圖片錯(cuò)位的問(wèn)題是如何產(chǎn)生的?
https://blog.csdn.net/a394268045/article/details/50726560
(13.23)混合開發(fā)有了解嗎?
https://blog.csdn.net/sinat_33195772/article/details/72961814
(13.24)知道哪些混合開發(fā)的方式?說(shuō)出它們的優(yōu)缺點(diǎn)和各自使用場(chǎng)景?(解答:比如:RN,weex,H5,小程序,WPA等)
http://www.itdecent.cn/p/22aa14664cf9
http://www.itdecent.cn/p/52071a3d07b4
(13.25)屏幕適配的處理技巧都有哪些?
https://blog.csdn.net/wangwangli6/article/details/63258270
(13.26)服務(wù)器只提供數(shù)據(jù)接收接口,在多線程或多進(jìn)程條件下,如何保證數(shù)據(jù)的有序到達(dá)?
(13.27)動(dòng)態(tài)布局的理解
https://blog.csdn.net/ustory/article/details/42424313
(13.28)畫出 Android 的大體架構(gòu)圖
https://blog.csdn.net/wang5318330/article/details/51917092
(13.29)Recycleview和ListView的區(qū)別
https://blog.csdn.net/sanjay_f/article/details/48830311
(13.30)ListView圖片加載錯(cuò)亂的原理和解決方案
https://blog.csdn.net/a394268045/article/details/50726560
(13.31)動(dòng)態(tài)權(quán)限適配方案,權(quán)限組的概念
https://blog.csdn.net/xc765926174/article/details/49103483
(13.32)Android系統(tǒng)為什么會(huì)設(shè)計(jì)ContentProvider?
重點(diǎn),跨進(jìn)程
https://www.cnblogs.com/zhainanJohnny/articles/3275908.html
(13.33)下拉狀態(tài)欄是不是影響activity的生命周期
不會(huì)
(13.36)Bitmap 使用時(shí)候注意什么?
https://blog.csdn.net/newbie_coder/article/details/9842995
(13.37)Bitmap的recycler()
https://blog.csdn.net/lonelyroamer/article/details/7569248
(13.38)Android中開啟攝像頭的主要步驟
https://www.yiibai.com/android/android_camera.html
(13.39)ViewPager使用細(xì)節(jié),如何設(shè)置成每次只初始化當(dāng)前的
懶加載
http://www.itdecent.cn/p/e324e8378948
https://blog.csdn.net/linglongxin24/article/details/53205878
(13.41)點(diǎn)擊事件被攔截,但是想傳到下面的View,如何操作?
問(wèn)題就是viewgroup被攔截,要傳到子view那里,好好看這篇分發(fā)機(jī)制的文章,你就知道了
http://www.itdecent.cn/p/e99b5e8bd67b
(13.42)描述一下微信主頁(yè)面的實(shí)現(xiàn)方式
自己去研究下吧這個(gè),無(wú)非fragment嵌套
(13.43)invalidate和postInvalidate的區(qū)別及使用
https://blog.csdn.net/mars2639/article/details/6650876
(13.44)Activity-Window-View三者的差別
http://www.itdecent.cn/p/a533467f5af5
(13.45)談?wù)剬?duì)Volley的理解
https://blog.csdn.net/ysh06201418/article/details/46443235
(13.46)ActivityThread,AMS,WMS的工作原理
http://www.itdecent.cn/p/47eca41428d6
(13.47)LaunchMode應(yīng)用場(chǎng)景
https://blog.csdn.net/CodeEmperor/article/details/50481726
(13.48)SpareArray原理
https://blog.csdn.net/easyer2012/article/details/37871031
(13.49)請(qǐng)介紹下ContentProvider 是如何實(shí)現(xiàn)數(shù)據(jù)共享的?
https://blog.csdn.net/yhaolpz/article/details/51304345
(13.50)IntentService原理及作用是什么?
http://www.itdecent.cn/p/4dd46616564d
(13.51)ApplicationContext和ActivityContext的區(qū)別
http://www.itdecent.cn/p/94e0f9ab3f1d
(13.53)封裝View的時(shí)候怎么知道view的大小
https://blog.csdn.net/fwt336/article/details/52979876
(13.55)AndroidManifest的作用與理解
http://www.itdecent.cn/p/6ed30112d4a4


刪除一些看不懂題意的題目,諒解。

結(jié)尾:
去好公司面試,能答出來(lái)只是第一步,延伸問(wèn)答、靈活運(yùn)用才是面試官的目的,你越能答,他們?cè)侥軉?wèn)。我希望讀者們能知道深入了解的含義,這真的是一個(gè)過(guò)程。

復(fù)習(xí)的差不多的同學(xué),請(qǐng)花一兩個(gè)小時(shí)認(rèn)真準(zhǔn)備這些東西:
1.你工作中最牛逼or最成功or最有貢獻(xiàn)的一件事是什么?
2.項(xiàng)目中的亮點(diǎn)是哪些?怎么實(shí)現(xiàn)的?(實(shí)在沒(méi)有的自己去找,只能用別人的案例了)
3.做項(xiàng)目的過(guò)程中有沒(méi)有遇到過(guò)困難?怎么克服的?

Last Thing:
面試不過(guò)不要灰心,life always sucks,一切會(huì)好起來(lái)的!
幫你們整理很辛苦哦,給個(gè)贊哈!敬請(qǐng)期待下一篇文章,BAT面試題整理(深入技術(shù)篇)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容