安卓面試的準備:二

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

https://blog.csdn.net/huangqili1314/article/details/79824830

有個大神自己封裝了Fragment,YoKey大佬的文章:

http://www.reibang.com/p/d9143a92ad94

了解自定義view,感謝huachao1001大佬:

http://www.reibang.com/p/c84693096e41



這部分主要內(nèi)容是Fragment和View(+RecycleView)

(2.1)什么是Fragment

Fragment是碎片辛馆,用于嵌套在Activity之中,是更加輕量化的Activity

(2.2)為什么要用Fragment

為了能夠讓UI加載的時間更短溶弟,反應速度快,占用的資源更少秕噪,在一個Activity中嵌套多個不同功能的Fragment比調(diào)用多個Activity更有效率

(2.3)Fragment與Activity的通信方式

Activity可以使用Intent來進行與Fragment的交互厂置,Intent的本質(zhì)是使用Bundle

Fragment與Activity的通信則需要使用接口回調(diào)的方式,通過調(diào)用接口定義的內(nèi)容來實現(xiàn)通信傳遞到踏。當然Activity也能用接口與Fragment進行交互

(2.4)Fragment各種情況下的生命周期

Fragment的生命周期與Activity相似杠袱,因為是嵌套在Activity中的所以Activity的暫停停止等生命周期方法都會影響到Fragement。唯一區(qū)別的是onCreate與onDestory的方法中

Fragment的onCreate:onAttach--onCreate--onViewCreate--onActivityCreated

Fragment的onDestory:onViewDestory--onDestory--onDeatch

(2.5)Fragment之間傳遞數(shù)據(jù)的方式窝稿?

Fragment之前可以用接口的方式進行數(shù)據(jù)傳遞

也可以使用Fragment.Argument楣富,其內(nèi)核是使用Bundle進行數(shù)據(jù)交互

(2.6)Fragment的add與replace的區(qū)別

Fragment的replace是把要跳轉(zhuǎn)的Fragment初始化一遍,當加入到返回棧時返回Fragment會重新加載這個Fragment

Fragment的add則可以通過hide與show解決這個問題伴榔,但是如果是單純的add的話會覆蓋當前Fragment

(2.7)用Fragment有遇過什么坑嗎纹蝴,怎么解決

(2.8)getFragmentManager,getSupportFragmentManager 踪少,getChildFragmentManager三者之間的區(qū)別

getFragmentManager與getSupportFragmentManager是調(diào)用父容器的管理器塘安,區(qū)別在于getSupprotFragmentManager是用于安卓3.0以下的版本

(2.9)FragmentPagerAdapter與FragmentStatePagerAdapter的區(qū)別與使用場景

FragmentPagerAdapter用于頁面少,但是需要重復使用的情況援奢,因為它能保存Fragment的頁面兼犯,每次調(diào)用不需要重新創(chuàng)建,但是一旦頁面變多內(nèi)存消耗就會非常嚴重,可能會導致閃退切黔。

FragmentStatePagerAdapter用于頁面多砸脊,需要多次重新使用的情況,保存了狀態(tài)但是需要重新的加載內(nèi)容绕娘。

3.自定義組件脓规、動畫

(3.1)描述一下View的繪制流程

View有三個生命周期,onMeasure用于測量元件险领,onLayout用于排列位置,onDraw用于渲染元件

(3.2)說說自定義view的幾個構造函數(shù)

view有四個構造函數(shù)秒紧,分別有不同的用途:

Context绢陌,Attributset,Int DefaultStyleAttr和DefaultStyleResource

(3.3)View 里面的 onSavedInstanceState和onRestoreInstanceState的作用

onSavedInstancedState與onRestoreInstanceState是用于保存頁面狀態(tài)并重新讀取記載熔恢,比如說橫屏豎屏切換就可以用這個保存當前頁面狀態(tài)以至于不用重新加載而丟失進度脐湾。

(3.4)onLayout() 和Layout()的區(qū)別

onLayout是view的一個繪制流程,用于排列元件的位置叙淌,Layout是onLayout的一個子方法秤掌,用于實現(xiàn)子view排列的位置。

(3.5)描述一下getX鹰霍、getRawX闻鉴、getTranslationX

getX是獲取view的x軸位置,getRawX是獲取view到屏幕左邊距的距離茂洒,getTranslationX是獲取view與X軸的偏移量孟岛。

X=getX+getTranslationX

(3.6)Android中的動畫有哪幾類,它們的特點和區(qū)別是什么

安卓中的動畫分為視圖動畫和屬性動畫督勺,視圖動畫又分為補間動畫和幀動畫渠羞。

視圖動畫與屬性動畫最大的區(qū)別就是同樣的動畫,視圖動畫只改變視圖展示給人的內(nèi)容智哀,而實際上屬性不會發(fā)生變化次询;屬性動畫是通過改變view的屬性而發(fā)生視圖的變化。

(3.7)Interpolator和TypeEvaluator的作用

Interpolator是插值器瓷叫,用于決定動畫開始到結(jié)束時一段時間的運動形式屯吊,比如是先快后慢,還是圓周運動等赞辩,有9中模式雌芽,且可以根據(jù)需求自定義。LinearInterpolator就是其中一個模式

TypeEvaluator是估值器辨嗽,用于運動之間具體的數(shù)值內(nèi)容世落,比如說這個時間點的數(shù)值是怎么樣的,那個時間點的數(shù)值是怎么樣的,通過估值器來自定義復雜的運動

TypeEvaluator是屬性動畫才有的內(nèi)容屉佳。

(3.8)請描述一下View事件傳遞分發(fā)機制

dispatchTouchEvent是事件分發(fā)機制入口谷朝,從dispatchTouchEvent到onTouchEvent.

dispatchTouchEvent是從activity發(fā)到viewgroup再發(fā)到view,而onTouchEvent則相反武花。

當一個事件return ture時圆凰,不會向下分發(fā),屬于已消費狀態(tài)体箕。處于false時才會向下分發(fā)专钉。

(3.9)事件分發(fā)中的onTouch 和onTouchEvent 有什么區(qū)別,又該如何使用累铅?

onTouch是監(jiān)聽器的子方法跃须,onTouchEvent是callback的方法,在事件分發(fā)中會從監(jiān)聽器分發(fā)事件到onTouchEvent娃兽。如果在onTouch中return ture菇民,則onTouchEvent則不會收到分發(fā)的事件

(3.10)View和ViewGroup分別有哪些事件分發(fā)相關的回調(diào)方法

View與ViewGroup的分發(fā)回調(diào)方法都很相似,都有depatchTouchEvent和onTouchEvent投储。

區(qū)別的是viewgroup有一個攔截器方法InterceptTouchEvent第练,用于攔截事件然后發(fā)給view。

(3.11)View刷新機制

view的父控件來刷新玛荞,顯示子控件娇掏,當子控件需要刷新時,由父控件進行刷新

建立父子關系則是用view繼承viewgroup或者通過DecorView來建立關系冲泥。

(3.12)RecycleView

參考下面的xhu_ww大佬寫的內(nèi)容:

https://blog.csdn.net/ww897532167/article/details/85868622

還有鴻洋_大佬寫的內(nèi)容:

https://blog.csdn.net/lmj623565791/article/details/45059587

更多的資料全在原地址中驹碍,請多查看原文大佬的總結(jié)及前人的經(jīng)驗

另外如果我說的地方有什么不對的請大家留言,本人非常的菜凡恍,大家的指點能夠讓我更加理解開發(fā)的知識點志秃。請不要含蓄,謝謝

安卓面試的準備一:http://www.reibang.com/p/0a12b61a8f6d

安卓面試的準備二:http://www.reibang.com/p/4459a9b6bba3

安卓面試的準備三:http://www.reibang.com/p/2b6d7fcb2bd5

安卓面試的準備四:http://www.reibang.com/p/728b43773930

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嚼酝,一起剝皮案震驚了整個濱河市浮还,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闽巩,老刑警劉巖钧舌,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涎跨,居然都是意外死亡洼冻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門隅很,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撞牢,“玉大人,你說我怎么就攤上這事∥荼耄” “怎么了所宰?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長畜挥。 經(jīng)常有香客問我仔粥,道長,這世上最難降的妖魔是什么蟹但? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任躯泰,我火速辦了婚禮,結(jié)果婚禮上矮湘,老公的妹妹穿的比我還像新娘斟冕。我一直安慰自己,他們只是感情好缅阳,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著景描,像睡著了一般十办。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上超棺,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天向族,我揣著相機與錄音,去河邊找鬼棠绘。 笑死件相,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的氧苍。 我是一名探鬼主播夜矗,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼让虐!你這毒婦竟也來了紊撕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤赡突,失蹤者是張志新(化名)和其女友劉穎对扶,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惭缰,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡浪南,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了漱受。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片络凿。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喷众,到底是詐尸還是另有隱情各谚,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布到千,位于F島的核電站昌渤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏憔四。R本人自食惡果不足惜膀息,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望了赵。 院中可真熱鬧潜支,春花似錦、人聲如沸柿汛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽络断。三九已至裁替,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間貌笨,已是汗流浹背弱判。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锥惋,地道東北人昌腰。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像膀跌,于是被迫代替她去往敵國和親遭商。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344