日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android面試經(jīng)驗總結

Android面試經(jīng)驗總結

來源:程序員人生   發(fā)布時間:2016-07-02 13:00:07 閱讀次數(shù):3620次

摘要

“基礎 Android 知識掌握的不錯,學習能力也不錯。但是基礎知識部份比較薄弱,有些概念和邏輯掌握不清。” 感謝春林的這句話。

  • MVC,MVP 和 MVVM
  • 架構的定義
  • Volley相干
    • Volley的磁盤緩存
    • Volley緩存命中率的優(yōu)化
    • Volley緩存文件名的計算
  • 推送心跳包是TCP包還是UDP包或HTTP包
  • ARGB_8888占用內存大小
  • Activity中類似onCreate、onStart應用了哪一種設計模式,優(yōu)點是甚么
  • HashMap的底層實現(xiàn)
  • Atomic、volatile、synchronized區(qū)分
  • 其他

MVC,MVP 和 MVVM

  • MVC 通訊方式,環(huán)形方式:
    1、View 傳送指令到 Controller
    2、Controller 起到不同層面間的組織作用,用于控制利用程序的流程。它處理事件并作出響應。“事件”包括用戶的行動和數(shù)據(jù) Model 上的改變。
    3、Model 將新的數(shù)據(jù)發(fā)送到 View,用戶得到反饋
    所有通訊都是單向的。
    開源實驗室:圖1
  • MVP 通訊方式:
    1、各部份之間的通訊,都是雙向的。
    2、View 與 Model 不產(chǎn)生聯(lián)系,都通過 Presenter 傳遞。
    3、View 非常薄,不部署任何業(yè)務邏輯,稱為”被動視圖”(Passive View),即沒有任何主動性,而 Presenter非常厚,所有邏輯都部署在那里。
    開源實驗室:圖2
  • MVVM 模式是 MVP 的升級:
    基本上與 MVP 模式完全1致。唯1的區(qū)分是,它采取雙向綁定:View的變動,自動反應在 ViewModel,反之亦然。
    開源實驗室:圖3
    (以上內容取自:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html)

我們針對業(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相干

Volley的磁盤緩存

面試的時候,聊到 Volley 要求到網(wǎng)絡的數(shù)據(jù)緩存。當時說到是 Volley 會將每次通過網(wǎng)絡要求到的數(shù)據(jù),采取FileOutputStream,寫入到本地的文件中。

那末問題來了:這個緩存文件,是聲明在1個SD卡文件夾中的(也能夠是getCacheFile())。如果不停的要求網(wǎng)絡數(shù)據(jù),這個緩存文件夾將無窮制的增大,終究到達SD卡容量時,會產(chǎn)生沒法寫入的異常(由于存儲空間滿了)。

這個問題的確之前沒有想到,當時也沒說出怎樣回事。回家了趕快又看了看代碼才知道,原來 Volley 斟酌過這個問題(汗!想一想也是)
翻看代碼DiskBasedCache#pruneIfNeeded()

Java
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久久久午夜片 | 国产精品久久久久久久久久久新郎 | 国产欧美日韩在线视频 | 国产综合久久久 | 精品国产1区 | 欧美激情黑人 | 99精品国产九九国产精品 | 日韩午夜av| 成人国产精品免费观看 | 欧美在线xxx | 国产精品一区二区三区在线 | 色综合久久88色综合天天 | 涩涩视频免费观看 | 欧美激情综合五月色丁香小说 | 国产网址 | 国产不卡av在线 | 欧美日韩一区二区三区 | 一区二区三区精品视频 | 国产精品久久久久久久免费大片 | 波多野结衣观看 | 欧美三级电影在线观看 | av高清在线观看 | 尤物一区| 精品国产第一页 | 美女网站黄免费 | www.色五月 | 久久国产a| 亚洲av毛片一区二区三区电影 | 91精品国产综合久久福利软件 | 日本午夜视频 | 国产伦精品一区二区三区免费 | www.久久婷婷| 视频一区二区三区中文字幕 | 日本在线看片 | 中文成人在线 | 免费av网站在线观看 | www.色网| 日韩精品视频一区二区三区 | 国产精品天天看 | 黄色免费看网站 | 99久久99 |