android 组件化和插件化,android 开发入门与实战网盘
面试我们一般这样问
(一)Android 基础知识点
四大组件是什么
四大组件的生命周期和简单用法
Activity 之间的通信方式
Activity 各种情况下的生命周期
横竖屏切换的时候,Activity 各种情况下的生命周期
Activity 与 Fragment 之间生命周期比较
Activity 上有 Dialog 的时候按 Home 键时的生命周期
两个 Activity 之间跳转时必然会执行的是哪几个方法?
前台切换到后台,然后再回到前台,Activity 生命周期回调方法。弹出 Dialog,生命值周期回调方法。
Activity 的四种启动模式对比
Activity 状态保存于恢复
fragment 各种情况下的生命周期
Fragment 状态保存 startActivityForResult 是哪个类的方法,在什么情况下使用?
如何实现 Fragment 的滑动?
fragment 之间传递数据的方式?
Activity 怎么和 Service 绑定?
怎么在 Activity 中启动自己对应的 Service?
service 和 activity 怎么进行数据交互?
Service 的开启方式
请描述一下 Service 的生命周期
谈谈你对 ContentProvider 的理解
说说 ContentProvider、ContentResolver、ContentObserver 之间的关系
请描述一下广播 BroadcastReceiver 的理解
广播的分类
广播使用的方式和场景
在 manifest 和代码中如何注册和使用 BroadcastReceiver?
本地广播和全局广播有什么差别?
BroadcastReceiver,LocalBroadcastReceiver 区别
AlertDialog,popupWindow,Activity 区别
Application 和 Activity 的 Context 对象的区别
Android 属性动画特性
如何导入外部数据库?
LinearLayout、RelativeLayout、FrameLayout 的特性及对比,并介绍使用场景。
谈谈对接口与回调的理解
回调的原理
写一个回调 demo
介绍下 SurfView
RecycleView 的使用
序列化的作用,以及 Android 两种序列化的区别
差值器
估值器
Android 中数据存储方式
(二)Android 源码相关分析Android 动画框架实现原理
Android 各个版本 API 的区别
Requestlayout,onlayout,onDraw,DrawChild 区别与联系
invalidate 和 postInvalidate 的区别及使用
Activity-Window-View 三者的差别
谈谈对 Volley 的理解
如何优化自定义 View
低版本 SDK 如何实现高版本 api?
描述一次网络请求的流程
HttpUrlConnection 和 okhttp 关系
Bitmap 对象的理解
looper 架构
ActivityThread,AMS,WMS 的工作原理
自定义 View 如何考虑机型适配
自定义 View 的事件
AstncTask+HttpClient 与 AsyncHttpClient 有什么区别?
LaunchMode 应用场景
AsyncTask 如何使用?
SpareArray 原理
请介绍下 ContentProvider 是如何实现数据共享的?
AndroidService 与 Activity 之间通信的几种方式
IntentService 原理及作用是什么?
说说 Activity、Intent、Service 是什么关系
ApplicationContext 和 ActivityContext 的区别
SP 是进程同步的吗?有什么方法做到同步?
谈谈多线程在 Android 中的使用
进程和 Application 的生命周期
封装 View 的时候怎么知道 view 的大小
RecycleView 原理
AndroidManifest 的作用与理解
(三)常见的一些原理性问题
Handler 机制和底层实现
Handler、Thread 和 HandlerThread 的差别
handler 发消息给子线程,looper 怎么启动?
关于 Handler,在任何地方 new Handler 都是什么线程下?
ThreadLocal 原理,实现及如何保证 Local 属性?
请解释下在单线程模型中 Message、Handler、Message Queue、Looper 之间的关系
请描述一下 View 事件传递分发机制
Touch 事件传递流程
事件分发中的 onTouch 和 onTouchEvent 有什么区别,又该如何使用?
View 和 ViewGroup 分别有哪些事件分发相关的回调方法
View 刷新机制
View 绘制流程
自定义控件原理
自定义 View 如何提供获取 View 属性的接口?
Android 代码中实现 WAP 方式联网
AsyncTask 机制
AsyncTask 原理及不足
如何取消 AsyncTask?
为什么不能在子线程更新 UI?
ANR 产生的原因是什么?
ANR 定位和修正
oom 是什么?
什么情况导致 oom?
有什么解决方法可以避免 OOM?
Oom 是否可以 try catch?为什么?
内存泄漏是什么?
什么情况导致内存泄漏?
如何防止线程的内存泄漏?
内存泄露场的解决方法
内存泄漏和内存溢出区别?
LruCache 默认缓存大小
ContentProvider 的权限管理(解答:读写分离,权限控制-精确到表级,URL 控制)
如何通过广播拦截和 abort 一条短信?
广播是否可以请求网络?
广播引起 anr 的时间限制是多少?
计算一个 view 的嵌套层级
Activity 栈
Android 线程有没有上限?
线程池有没有上限?
Android 为什么引入 Parcelable?
有没有尝试简化 Parcelable 的使用?
最后
下面是有几位 Android 行业大佬对应上方技术点整理的一些进阶资料。希望能够帮助到大家提升技术
高级 UI,自定义 View
UI 这块知识是现今使用者最多的。当年火爆一时的 Android 入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的 CV,亲自去项目实战,读源码,研究原理吧!
评论