書接上文,感謝感謝大佬啟立豆的整理:
https://blog.csdn.net/huangqili1314/article/details/79824830
(內(nèi)容好多好難過....流下了無知的淚水...)
這篇是存儲(chǔ)與網(wǎng)絡(luò):
存儲(chǔ)
(4.1)描述一下你知道的數(shù)據(jù)存儲(chǔ)方式
有五種數(shù)據(jù)存儲(chǔ)方式,F(xiàn)ile,IO,SQLite,SharedPreferences和網(wǎng)絡(luò)存儲(chǔ)。
(4.2)SharedPreferences的應(yīng)用場景,核心原理是什么
SharedPreferences是一種輕量化的存儲(chǔ)方式,通過創(chuàng)建一個(gè)xml文件并保存需要數(shù)據(jù)的鍵值對(duì)來進(jìn)行存儲(chǔ)。內(nèi)容少,重復(fù)使用次數(shù)多的時(shí)候使用ShraedPreferences會(huì)更有效率
(4.3)SharedPreferences是線程安全的嗎?
去源碼看看有沒有同步鎖就知道了,答案是線程安全的。
(4.4)描述一下圖片存儲(chǔ)在本地的方式
圖片保存在本地通過使用IO流來保存到本地,但是為了讓相冊能夠及時(shí)的刷新需要在保存成功的同時(shí)發(fā)送廣播讓相冊進(jìn)行刷新。
(4.5)sqlite升級(jí),增加字段的語句
sqlite升級(jí)的本質(zhì)是把舊的表重命名,然后創(chuàng)建一個(gè)新的同名的表,并把舊的表的內(nèi)容插入到新表當(dāng)中去。完成后把舊表刪除即可。
所以所使用的語句就是重命名的語句,創(chuàng)建的語句,和插入的語句insert
(4.6)數(shù)據(jù)庫框架對(duì)比和源碼分析
https://blog.csdn.net/u012702547/article/details/52226163
http://www.itdecent.cn/p/c4e9288d2ce6
(4.7)數(shù)據(jù)庫的優(yōu)化
http://www.itdecent.cn/p/3b4452fc1bbd
(4.8)數(shù)據(jù)庫數(shù)據(jù)遷移問題
https://www.cnblogs.com/awkflf11/p/6033074.html
網(wǎng)絡(luò)
(5.1)描述一次網(wǎng)絡(luò)請求的流程
從客戶端發(fā)起需要與服務(wù)端進(jìn)行網(wǎng)絡(luò)請求的請求,通過3次握手后與服務(wù)端成功連接后,即可進(jìn)行網(wǎng)絡(luò)通訊。網(wǎng)絡(luò)通信結(jié)束時(shí),從客戶端發(fā)起網(wǎng)絡(luò)結(jié)束的請求,通過四次揮手之后,結(jié)束網(wǎng)絡(luò)連接。從而結(jié)束網(wǎng)絡(luò)請求。
(5.2)HTTP報(bào)文結(jié)構(gòu)
請求的HTTP報(bào)文結(jié)構(gòu)是,請求行,請求頭,空行,請求主體。
回調(diào)的HTTP報(bào)文結(jié)構(gòu)是,狀態(tài)行,響應(yīng)行,空行,主體內(nèi)容組成。
(5.3)HttpClient和HttpURLConnection的形式,雙方的功能很相似,主要的區(qū)分點(diǎn)在于HttpClient與URLConnection都是安卓的網(wǎng)絡(luò)請求內(nèi)容。HttpURLConnection更加輕量化,使用更加便捷。且HttpClient會(huì)有版本限制,安卓系統(tǒng)過多的迭代使得HttpClient的性能不能很好的保證,從而使用HttpURLConnection進(jìn)行代替
(5.4)Volley,okhttp,retrofit之間的區(qū)別和核心原理和使用場景
(5.5)描述一下https
https是擁有安全協(xié)議通訊的http, 因?yàn)閔ttp之間的通信容易造成泄漏,https是為了讓網(wǎng)絡(luò)通信更加的安全而使用的一種協(xié)議,其本身主體與HTTP相同。只不過在交互時(shí)加入SSL證書以保證通信安全。
(5.6)https中哪里用了對(duì)稱加密,哪里用了非對(duì)稱加密,對(duì)加密算法(如RSA)等是否有了解?
https中,客戶端和服務(wù)端的交互使用了對(duì)稱加密,為的是使得雙方的交互內(nèi)容不會(huì)那么容易泄漏。而加密這個(gè)加密過程就使用了非對(duì)稱加密,為的是保證加密雙方之間的加密不會(huì)被泄漏而產(chǎn)生的。
(5.7)說一下三次握手,四次揮手的具體細(xì)節(jié)
從客戶端發(fā)起與服務(wù)端的聯(lián)系,這是第一次握手,服務(wù)端確認(rèn)并發(fā)起是否確認(rèn)發(fā)起聯(lián)系,這是第二次握手,客戶端確認(rèn)發(fā)起聯(lián)系,這是第三次握手。
從客戶端發(fā)起中斷與服務(wù)端的聯(lián)系,這是第一次揮手;服務(wù)器確認(rèn)之后發(fā)出收到的指令,這是第二次揮手;服務(wù)器發(fā)出詢問時(shí)候確認(rèn)中斷的詢問,這是第三次揮手;服務(wù)端發(fā)出確認(rèn)關(guān)閉連接,這是第四次揮手。隨后服務(wù)端關(guān)閉,而服務(wù)端在等待了2MLS后沒有回調(diào),也會(huì)關(guān)閉
(5.8)描述一下socket是什么東西
socket是一個(gè)基于TCP或UDP的抽象層,與接口相似,提供調(diào)用TCP或UDP的接口。服務(wù)端通過socket連接TCP或UDP連接服務(wù)端,服務(wù)端通過TCP或UDP連接到socket獲取服務(wù)端的信息。
(5.9)從網(wǎng)絡(luò)加載一個(gè)10M的圖片,說下注意事項(xiàng)
一次性加載10M的圖片在設(shè)備上很容易造成OOM的出錯(cuò),所以需要壓縮整個(gè)圖片用于預(yù)覽,而剩余 的內(nèi)容要存在緩存中。需要的部分進(jìn)行展示,不需要的部分保存到緩存中。
(5.10)TCP與UDP的區(qū)別
TCP與UDP最大的區(qū)別就是,UDP只會(huì)管發(fā)送,不管對(duì)方接不接收得到。而TCP則會(huì)根據(jù)接收方的反饋進(jìn)行更修正或者重發(fā),比如說包順序不對(duì),或者包丟失等情況。
(5.11)client如何確定自己發(fā)送的消息被server收到?
service會(huì)有回調(diào),可以通過回調(diào)確認(rèn)信息是否成功發(fā)送并被對(duì)方接受到。
(5.12)WebSocket與socket的區(qū)別
https://blog.csdn.net/wwd0501/article/details/54582912
(5.13)網(wǎng)絡(luò)請求緩存處理,okhttp如何處理網(wǎng)絡(luò)緩存的
看源碼,看緩存策略
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0326/2643.html
(5.14)自己去設(shè)計(jì)網(wǎng)絡(luò)請求框架,怎么做?(隨便套個(gè)開源框架的原理)
就套o(hù)khttp的,被google承認(rèn)并使用的框架,準(zhǔn)沒錯(cuò)。
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0326/2643.html
更多的資料全在原地址中,請多查看原文大佬的總結(jié)及前人的經(jīng)驗(yàn)
另外如果我說的地方有什么不對(duì)的請大家留言,本人非常的菜,大家的指點(diǎn)能夠讓我更加理解開發(fā)的知識(shí)點(diǎn)。請不要含蓄,謝謝
安卓面試的準(zhǔn)備一:http://www.itdecent.cn/p/0a12b61a8f6d
安卓面試的準(zhǔn)備二:http://www.itdecent.cn/p/4459a9b6bba3
安卓面試的準(zhǔn)備三:http://www.itdecent.cn/p/2b6d7fcb2bd5
安卓面試的準(zhǔn)備四:http://www.itdecent.cn/p/728b43773930