![](https://img-blog.csdnimg.cn/20210517232529230.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android面试重要知识点
文章平均质量分 85
主要总结了安卓面试过程中比较重要的知识点
来源:《Android开发艺术探索》
网上博客以及B站视频
Rose J
有些事情本来很遥远,你争取,他就会离你越来越近
展开
-
【Android面试】Listview和Recyclerview的区别
请你谈谈Listview和Recyclerview的区别Listview和Recyclerview的区别(阿里一面,滴滴一面,被问到)简单比较布局上局部刷新item view的重用ViewHolder嵌套滑动机制空数据处理Listview的二级缓存ActiveViewsScrapViewsRecyclerview的四级缓存RecyclerRecycledViewPoolViewCacheExtensionListview和Recyclerview的区别(阿里一面,滴滴一面,被问到)简单比较listvi原创 2021-05-26 16:28:55 · 5156 阅读 · 4 评论 -
【Android面试】Android中的性能优化
Android面试16-性能优化布局优化布局优化首先我们在层级比较少的时候,可以优先使用constraintlayout,或者relativeLaout,减少布局的绘制。页面比较简单的时候,可以使用LinearLayout或者FrameLayout,因为他们相对上述来说,布局的功能简单一些,所以花费的cpu时间会短一些<include 标签<include 标签可以将一个指定的布局加载到当前布局文件中,例如有一下重复的界面,就可以用include来实现<merge 标签<原创 2021-05-24 23:28:50 · 217 阅读 · 0 评论 -
【Android面试】View的事件分发
Android面试13-View的事件分发分发的事件View继承关系事件分发处理流程事件分发顶级View对点击事件的分发过程事件处理事件处理总结分发的事件首先事件分发主要分为事件分发发生在ViewGroup中的dispatchTouchEvent中action_move会触发多次View继承关系view中dispatchTouchEvent用来处理事件viewgroup中dispatchTouchEvent用来分发事件,不处理事件,viewgroup直接交给view去处理事件事件分发处理原创 2021-05-17 23:10:40 · 889 阅读 · 9 评论 -
【Android面试】自定义View
Android面试12-自定义View1.继承ViewGourp派生特殊的Layout构造函数重写方法onMeasure1.测量子元素宽高MeasureSpec是什么2.确定自己大小onLayoutonDraw全部代码2.继承View重写onDraw方法绘制padding和wrap_content自定义View和自定义ViewGroup的区别在于自定义View主要是实现onMeasure + onDraw(注重绘制)自定义ViewGroup主要是实现onMeasure + onLayout(注重布原创 2021-05-15 01:23:32 · 1221 阅读 · 2 评论 -
【Android面试】View的绘制流程
Android面试11-View的绘制流程View的绘制流程简介Activity和window和view 的关系Activity和Window是什么时候建立联系的呢?ViewRootImplView的绘制流程总结View的绘制流程简介view的绘制流程主要为measure,layout,draw三个阶段View与window的逻辑结构对应于ViewRootImpl(替代ViewRoot)类,它是连接WindowMannager和DecorView的纽带,View的三大流程均是通过ViewRoot完原创 2021-05-15 01:15:24 · 4168 阅读 · 1 评论 -
【Android面试】带你了解Fragment
Android面试10-FragmentFragments生命周期Fragment加载方式静态加载动态加载Fragment懒加载Fragment内存泄漏Fragments生命周期Create:onAttch–>onCreate–>onCreateView–>onActivityCreateStarted:onStartResumed:onResumePaused:onPausedStopedonStopDestory:onDestoryView–>onDe原创 2021-05-07 18:26:24 · 291 阅读 · 2 评论 -
【Android面试】Android异步任务AsyncTask
Android面试08-异步任务AsyncTaskAsyncTask是啥?AsyncTask怎么用?AsyncTask原理AsyncTask在使用中的一个特殊情况AsyncTask和Handler的比较AsyncTask是啥?在介绍AsyncTask之前,得先再回顾一下Handler。众所周知,我们的ui操作需要在主线程,所以一般会先创建一个子线程,然后把耗时操作放到子线程,然后通过handler发送消息到主线程,通知主线程进行ui操作。所以handler的步骤是:1.主线程创建handler(接原创 2021-05-07 09:08:59 · 485 阅读 · 4 评论 -
【Android面试】Android中的ThreadLocal应用
Android面试08-ThreadLocalThreadLocal是啥?在多线程中,因为变量是可以共享的,所以就存在了线程安全问题,我们可以通过同步的方式来解决,如果我们对于单个线程的变量,为了避免线程安全,担又不想用同步的方式,我们就可以用到ThreadLocal。ThreadLocal可以提供我们一个局部变量,而且这个变量与一般变量还不同,他是每个线程独有的,与其他线程互不干扰的。ThreadLocal怎么用?ThreadLocal local = new ThreadLocal();in原创 2021-05-06 22:25:01 · 703 阅读 · 3 评论 -
【Android面试】Android线程间通信Handler消息机制
Android面试07-消息机制HandlerHandler的工作流程一个线程有几个Handler?一个线程有几个Looper?怎么保证?Handler内存泄漏原因?为什么其他内部类没有出现这个问题?怎么解决handler的内存泄漏?为什么主线程可以new Handler子线程中维护的Looper,消息队列无消息的时候的处理方案是什么?有什么用?既然可以存在多个Handler往messageQueue中添加数据(发消息时各个Handler可能处于不同线程) ,那它内部是怎么保证线程安全呢?怎么创建Messa原创 2021-05-06 11:11:20 · 814 阅读 · 0 评论 -
【Android面试】Android跨进程通信之Binder
睡前Android第一天-跨进程通信之BinderBinder是啥?Binder基础概念Binder优势Binder是如何做到一次拷贝的?MMAP的原理Binder机制是如何进行跨进程的?Android中怎么使用Binder?Binder是啥?1.binder是一种进程间通信机制2.binder是一种基于C/S架构,运行在内核控件的binder驱动程序,进程间通过dev/binder这个文件来建立通信通道:在linux中因为进程间是隔离的,而用户空间,需要通过系统调用才能访问到内核空间,(内存被操原创 2021-05-06 11:11:06 · 492 阅读 · 0 评论 -
【Android面试】Android跨进程通信IPC
Android面试05-跨进程通信IPC他是谁?哪里需要用到多进程?1.序列化1.serializable和parcelable区别2.Binder1.定义1.从IPC角度来说2.从Android Framework角度来说3.从Android应用层来说2.架构3.优点3.Android 中的IPC方式他是谁?IPC是Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信windows IPC机制剪贴板,管道,邮槽Linux IPC机制命名管道,共享内容,信原创 2021-05-06 11:10:48 · 529 阅读 · 0 评论 -
【Android面试】四大组件之内容提供者ContentProvider
Android面试04-四大组件之ContentProvider1.作用1.进程内通信2.进程间通信进程间 进行数据交互 & 共享,即跨进程通信1.作用1.进程内通信步骤说明:创建 SQLite 数据库类自定义 ContentProvider 类注册 创建的 ContentProvider类进程内访问 ContentProvider的数据2.进程间通信进程1使用步骤如下:创建 SQLite 数据库类自定义 ContentProvider 类注册 创建的原创 2021-05-06 11:10:30 · 166 阅读 · 0 评论 -
【Android面试】四大组件之广播BroadcastReceiver
Android面试03-四大组件之BroadCast1.按发送方式分类1. 标准广播2. 有序广播2.按注册方式 分类1. 静态注册广播2.动态注册广播3. 按定义方式分类1.系统广播2.自定义广播4.EventBus1.按发送方式分类1. 标准广播一种完全异步执行的广播,广播发出去之后,所有的广播接收者几乎是同一时间收到消息的。他们之间没有先后顺序可言,而且这种广播是没法被截断的。2. 有序广播是一种同步执行的广播,在广播发出去之后,同一时刻只有一个广播接收器可以收到消息。当广播中的逻辑执行完原创 2021-05-06 11:10:06 · 297 阅读 · 1 评论 -
【Android面试】四大组件之服务Service
Android面试02-四大组件之Service1.service的启动方式第一种第二种两者区别2.service的生命周期第一种第二种3.service怎么使用第一种第二种4.service怎么进行耗时操作方法一:service中开子线程方法二: 使用IntentService5.service怎么保活1. onStartCommand方法,返回START_STICKY2. 提升Service优先级3.提升Service进程优先级4.在onDestory中重启Service5.监听系统广播判断Servic原创 2021-05-06 11:09:51 · 237 阅读 · 0 评论 -
【Android面试】四大组件之Activity
Android面试01-四大组件之Activity1. activity的生命周期2. activity的启动模式3. activity的启动方法1.显式启动2.隐式启动4. activity A 打开 activity B 的生命周期5. activity B 按下back,返回activity A的生命周期6. activity A 按下home键的生命周期7. 屏幕横屏,activity的生命周期1. activity的生命周期activity的生命周期依次是onCreate ,onStart原创 2021-05-06 11:09:24 · 315 阅读 · 2 评论