安卓面試的準(zhǔn)備:三

書接上文,感謝感謝大佬啟立豆的整理:

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

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

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