摘要
“基礎 Android 知識掌握的不錯,學習能力也不錯。但是基礎知識部份比較薄弱,有些概念和邏輯掌握不清。” 感謝春林的這句話。
我們針對業(yè)務模型,建立的數(shù)據(jù)結構和相干的類,就能夠理解為AndroidApp 的 Model,Model 是與 View 無關,而與業(yè)務相干的,例如數(shù)據(jù)庫讀取數(shù)據(jù),應當是屬于model層的事情。(感謝@Xander的講授)
我的料想:
至于為何我們通常直接去在 Activity 中去寫數(shù)據(jù)庫數(shù)據(jù)讀取,我的料想是由于簡單。試想,如果是為了規(guī)范,首先定義1個getDataFromDB()的接口,再寫個類實現(xiàn)getDataFromDB()方法,以后如果改了要求數(shù)據(jù)所用的方法,直接改寫實現(xiàn)類,聽起來確切不錯,可是僅僅是為了從數(shù)據(jù)庫讀點數(shù)據(jù),額外添加了最少兩個類文件真的成心義嗎。
固然網(wǎng)絡要求,是屬于業(yè)務邏輯層C層。
MVP中 Presenter 真正需要處理的并不是業(yè)務邏輯,而應當是視圖邏輯。業(yè)務邏輯應當是視圖無關的,可以是單獨的1個類中,也能夠是在P中。
P與V是1對多關系
EventBus應當作用于P層,在P層發(fā)送,在P層接收。
MVVM中,M層改變其實不是直接改變V層,而是通過VM層去改變V層。M與V照舊是不直接操作的。
相干介紹:http://www.tianmaying.com/tutorial/AndroidMVC
有關軟件整體結構與組件的抽象描寫,用于指點大型軟件系統(tǒng)各個方面的設計。
總結1下,就是1全部軟件工程項目中的骨架,是1種宏觀的計劃。
在面試的時候,聊到 Volley 要求到網(wǎng)絡的數(shù)據(jù)緩存。當時說到是 Volley 會將每次通過網(wǎng)絡要求到的數(shù)據(jù),采取FileOutputStream,寫入到本地的文件中。
那末問題來了:這個緩存文件,是聲明在1個SD卡文件夾中的(也能夠是getCacheFile())。如果不停的要求網(wǎng)絡數(shù)據(jù),這個緩存文件夾將無窮制的增大,終究到達SD卡容量時,會產(chǎn)生沒法寫入的異常(由于存儲空間滿了)。
這個問題的確之前沒有想到,當時也沒說出怎樣回事。回家了趕快又看了看代碼才知道,原來 Volley 斟酌過這個問題(汗!想一想也是)
翻看代碼DiskBasedCache#pruneIfNeeded()
上一篇 alsa 驅動介紹