日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

这些年Android面试的那些套路,社招面试心得

發布時間:2023/11/30 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 这些年Android面试的那些套路,社招面试心得 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

說不焦慮其實是假的,因為無論是現在還是最近幾年,很早就有人察覺Android開發的野蠻生長時代已經過去。過去的優勢是市場需要,這個技術少有人有,所以在搶占市場的時候,基本上滿足需要就已經可以了。但是現在,各式各樣的APP層出不窮,APP的質量成為新的競爭標準。這也意味著不管是系統設計還是性能優化等方面,市場都給Android開發者提出了更高的要求。那么,Android是不是真的不吃香了呢?其實不是的,高級及以上還有很大的需求缺口,非常稀缺人才。但是初級開發者真的已經不吃香了。喪氣的說一句,初級學者在市場中的競爭優勢其實是很少的。

我們一樣也可以從Android開發的需求崗位來了解目前的市場情況。

一.view渲染機制分為:

  • onLaout與onMeasure
  • onDraw映射機制

二.常用view有:

1.RecycleView

  • 解讀源碼
  • 布局管理器LayoutManager
  • 條目裝飾ItemDecoration
  • ViewHolder與回收復用機制

2.CardView

  • 源碼的解答
  • 圓角陰影實現原理
  • 5.0以下陰影與邊距的適配

3.viewpager

  • 加載機制和如何優化
  • 如何與Fragment結合

4.Webview

  • 原理分析
  • JS與java交互
  • 多線程WebView使用
  • WebView和native的通信框架

三.布局ViewGroup

  • ConstaintLayout
  • LinearLayout
  • RelativeLayout
  • FrameLayout
  • GridLayout

四.View的繪制流程

4.1自定義控件:

1、組合控件。這種自定義控件不需要我們自己繪制,而是使用原生控件組合成的新控件。如標題欄。
2、繼承原有的控件。這種自定義控件在原生控件提供的方法外,可以自己添加一些方法。如制作圓角,圓形圖片。
3、完全自定義控件:這個View上所展現的內容全部都是我們自己繪制出來的。比如說制作水波紋進度條。

View的繪制流程:OnMeasure()——>OnLayout()——>OnDraw()

  • 第一步:OnMeasure():測量視圖大小。從頂層父View到子View遞歸調用measure方法,measure方法又回調OnMeasure。
  • 第二步:OnLayout():確定View位置,進行頁面布局。從頂層父View向子View的遞歸調用view.layout方法的過程,即父View根據上一步measure子View所得到的布局大小和布局參數,將子View放在合適的位置上。
  • 第三步:OnDraw():繪制視圖。
    ViewRoot創建一個Canvas對象,然后調用OnDraw()。

六個步驟:

  • 繪制視圖的背景;
  • 保存畫布的圖層(Layer);
  • 繪制View的內容;
  • 繪制View子視圖,如果沒有就不用;
  • 還原圖層(Layer);
  • 繪制滾動條。
4.2View,ViewGroup事件分發

1.Touch事件分發中只有兩個主角:ViewGroup和View。

ViewGroup
包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三個相關事件。

View
包含dispatchTouchEvent、onTouchEvent兩個相關事件。
其中ViewGroup又繼承于View。

2.ViewGroup和View組成了一個樹狀結構,根節點為Activity內部包含的一個ViewGroup。

3.觸摸事件由Action_Down、Action_Move、Aciton_UP組成,其中一次完整的觸摸事件中,Down和Up都只有一個,Move有若干個,可以為0個。

4.當Acitivty接收到Touch事件時,將遍歷子View進行Down事件的分發。ViewGroup的遍歷可以看成是遞歸的。分發的目的是為了找到真正要處理本次完整觸摸事件的View,這個View會在onTouchuEvent結果返回true。

5.當某個子View返回true時,會中止Down事件的分發,同時在ViewGroup中記錄該子View。接下去的Move和Up事件將由該子View直接進行處理。由于子View是保存在ViewGroup中的,多層ViewGroup的節點結構時,上級ViewGroup保存的會是真實處理事件的View所在的ViewGroup對象:如ViewGroup0-ViewGroup1-TextView的結構中,TextView返回了true,它將被保存在ViewGroup1中,而ViewGroup1也會返回true,被保存在ViewGroup0中。當Move和UP事件來時,會先從ViewGroup0傳遞至ViewGroup1,再由ViewGroup1傳遞至TextView。

6.當ViewGroup中所有子View都不捕獲Down事件時,將觸發ViewGroup自身的onTouch事件。觸發的方式是調用super.dispatchTouchEvent函數,即父類View的dispatchTouchEvent方法。在所有子View都不處理的情況下,觸發Acitivity的onTouchEvent方法。

7.onInterceptTouchEvent有兩個作用:

  • 攔截Down事件的分發。
  • 中止Up和Move事件向目標View傳遞,使得目標View所在的ViewGroup捕獲Up和Move事件。

實戰系列

話不多說,Android實戰系列集合都已經系統分類好,由于文章篇幅問題沒法過多展示,獲取學習筆記鏈接:點擊我的騰訊文檔免費獲取


:點擊我的騰訊文檔免費獲取**

[外鏈圖片轉存中…(img-QF9kcHda-1620830908178)]

總結

以上是生活随笔為你收集整理的这些年Android面试的那些套路,社招面试心得的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。