安卓面试的准备:二

书接上文,感谢感谢大佬启立豆的整理:

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

有个大神自己封装了Fragment,YoKey大佬的文章:

https://www.jianshu.com/p/d9143a92ad94

了解自定义view,感谢huachao1001大佬:

https://www.jianshu.com/p/c84693096e41



这部分主要内容是Fragment和View(+RecycleView)

(2.1)什么是Fragment

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

(2.2)为什么要用Fragment

为了能够让UI加载的时间更短,反应速度快,占用的资源更少,在一个Activity中嵌套多个不同功能的Fragment比调用多个Activity更有效率

(2.3)Fragment与Activity的通信方式

Activity可以使用Intent来进行与Fragment的交互,Intent的本质是使用Bundle

Fragment与Activity的通信则需要使用接口回调的方式,通过调用接口定义的内容来实现通信传递。当然Activity也能用接口与Fragment进行交互

(2.4)Fragment各种情况下的生命周期

Fragment的生命周期与Activity相似,因为是嵌套在Activity中的所以Activity的暂停停止等生命周期方法都会影响到Fragement。唯一区别的是onCreate与onDestory的方法中

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

Fragment的onDestory:onViewDestory--onDestory--onDeatch

(2.5)Fragment之间传递数据的方式?

Fragment之前可以用接口的方式进行数据传递

也可以使用Fragment.Argument,其内核是使用Bundle进行数据交互

(2.6)Fragment的add与replace的区别

Fragment的replace是把要跳转的Fragment初始化一遍,当加入到返回栈时返回Fragment会重新加载这个Fragment

Fragment的add则可以通过hide与show解决这个问题,但是如果是单纯的add的话会覆盖当前Fragment

(2.7)用Fragment有遇过什么坑吗,怎么解决

(2.8)getFragmentManager,getSupportFragmentManager ,getChildFragmentManager三者之间的区别

getFragmentManager与getSupportFragmentManager是调用父容器的管理器,区别在于getSupprotFragmentManager是用于安卓3.0以下的版本

(2.9)FragmentPagerAdapter与FragmentStatePagerAdapter的区别与使用场景

FragmentPagerAdapter用于页面少,但是需要重复使用的情况,因为它能保存Fragment的页面,每次调用不需要重新创建,但是一旦页面变多内存消耗就会非常严重,可能会导致闪退。

FragmentStatePagerAdapter用于页面多,需要多次重新使用的情况,保存了状态但是需要重新的加载内容。

3.自定义组件、动画

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

View有三个生命周期,onMeasure用于测量元件,onLayout用于排列位置,onDraw用于渲染元件

(3.2)说说自定义view的几个构造函数

view有四个构造函数,分别有不同的用途:

Context,Attributset,Int DefaultStyleAttr和DefaultStyleResource

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

onSavedInstancedState与onRestoreInstanceState是用于保存页面状态并重新读取记载,比如说横屏竖屏切换就可以用这个保存当前页面状态以至于不用重新加载而丢失进度。

(3.4)onLayout() 和Layout()的区别

onLayout是view的一个绘制流程,用于排列元件的位置,Layout是onLayout的一个子方法,用于实现子view排列的位置。

(3.5)描述一下getX、getRawX、getTranslationX

getX是获取view的x轴位置,getRawX是获取view到屏幕左边距的距离,getTranslationX是获取view与X轴的偏移量。

X=getX+getTranslationX

(3.6)Android中的动画有哪几类,它们的特点和区别是什么

安卓中的动画分为视图动画和属性动画,视图动画又分为补间动画和帧动画。

视图动画与属性动画最大的区别就是同样的动画,视图动画只改变视图展示给人的内容,而实际上属性不会发生变化;属性动画是通过改变view的属性而发生视图的变化。

(3.7)Interpolator和TypeEvaluator的作用

Interpolator是插值器,用于决定动画开始到结束时一段时间的运动形式,比如是先快后慢,还是圆周运动等,有9中模式,且可以根据需求自定义。LinearInterpolator就是其中一个模式

TypeEvaluator是估值器,用于运动之间具体的数值内容,比如说这个时间点的数值是怎么样的,那个时间点的数值是怎么样的,通过估值器来自定义复杂的运动

TypeEvaluator是属性动画才有的内容。

(3.8)请描述一下View事件传递分发机制

dispatchTouchEvent是事件分发机制入口,从dispatchTouchEvent到onTouchEvent.

dispatchTouchEvent是从activity发到viewgroup再发到view,而onTouchEvent则相反。

当一个事件return ture时,不会向下分发,属于已消费状态。处于false时才会向下分发。

(3.9)事件分发中的onTouch 和onTouchEvent 有什么区别,又该如何使用?

onTouch是监听器的子方法,onTouchEvent是callback的方法,在事件分发中会从监听器分发事件到onTouchEvent。如果在onTouch中return ture,则onTouchEvent则不会收到分发的事件

(3.10)View和ViewGroup分别有哪些事件分发相关的回调方法

View与ViewGroup的分发回调方法都很相似,都有depatchTouchEvent和onTouchEvent。

区别的是viewgroup有一个拦截器方法InterceptTouchEvent,用于拦截事件然后发给view。

(3.11)View刷新机制

view的父控件来刷新,显示子控件,当子控件需要刷新时,由父控件进行刷新

建立父子关系则是用view继承viewgroup或者通过DecorView来建立关系。

(3.12)RecycleView

参考下面的xhu_ww大佬写的内容:

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

还有鸿洋_大佬写的内容:

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

更多的资料全在原地址中,请多查看原文大佬的总结及前人的经验

另外如果我说的地方有什么不对的请大家留言,本人非常的菜,大家的指点能够让我更加理解开发的知识点。请不要含蓄,谢谢

安卓面试的准备一:https://www.jianshu.com/p/0a12b61a8f6d

安卓面试的准备二:https://www.jianshu.com/p/4459a9b6bba3

安卓面试的准备三:https://www.jianshu.com/p/2b6d7fcb2bd5

安卓面试的准备四:https://www.jianshu.com/p/728b43773930

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343