BAT 的牛人多, 普通人也多, 虽然他们不是每个人都能达到令人仰望的技术水平, 但毕竟平台高, 所以眼光会变得宽阔; 代码要求更为严格, 所以普通的程序员也会被逼变得更优秀; 身边的牛人多, 普通的程序员也会受到影响, 提升的更快.
正好, 小编今天看到一篇文章, 是讲去阿里的面试经历, 也分享给大家, 看看自己离着 [进] 阿里还有多大的差距.
Activity
说下 Activity 生命周期 ?
Activity A 启动另一个 Activity B 会调用哪些方法? 如果 B 是透明主题的又或则是个 DialogActivity 呢 ?
说下 onSaveInstanceState() 方法的作用 ? 何时会被调用?
说下 Activity 的四种启动模式, 应用场景 ?
了解哪些 Activity 常用的标记位 Flags?
说下 Activity 跟 Windows,view 之间的关系?
横竖屏切换的 Activity 生命周期变化?
如何启动其他应用的 Activity?
Activity 的启动过程?
Fragment
谈一谈 Fragment 的生命周期 ? 与 Activity 生命周期的不同 ?
谈谈 Activity 和 Fragment 的区别?
Fragment 中 add 与 replace 的区别 (Fragment 重叠)
getFragmentManager,getSupportFragmentManager ,getChildFragmentManager 之间的区别?
FragmentPagerAdapter 与 FragmentStatePagerAdapter 的区别与使用场景
Service
谈一谈 Service 的生命周期?
Service 的两种启动方式? 区别在哪?
如何保证 Service 不被杀死 ?
能否在 Service 开启耗时操作 ? 怎么做 ?
用过哪些系统 Service ?
了解 ActivityManagerService 吗? 发挥什么作用
Broadcast Receiver
广播有几种形式 ? 都有什么特点 ?
广播的两种注册方式 ?
广播发送和接收的原理了解吗 ?(Binder 机制, AMS)
ContentProvider
ContentProvider 了解多少?
ContentProvider 的权限管理?
数据存储
描述一下 Android 数据持久存储方式?
SharedPreferences 的应用场景? 注意事项?
了解 SQLite 中的事务操作吗? 是如何做的
使用 SQLite 做批量操作有什么好的方法吗?
如何删除 SQLite 中表的个别字段?
使用 SQLite 时会有哪些优化操作?
IPC(重点)
Android 中进程和线程的关系? 区别?
如何开启多进程 ? 应用是否可以开启 N 个进程 ?
为何需要 IPC? 多进程通信可能会出现的问题?
Android 中 IPC 方式, 各种方式优缺点, 为什么选择 Binder?
Binder 机制的作用和原理?
Binder 框架中 ServiceManager 的作用?
Bunder 传递对象为什么需要序列化? Serialzable 和 Parcelable 的区别?
讲讲 AIDL? 原理是什么? 如何优化多模块都使用 AIDL 的情况?
View
讲下 View 的绘制流程?
MotionEvent 是什么? 包含几种事件? 什么条件下会产生?
描述一下 View 事件传递分发机制?
如何解决 View 的事件冲突 ? 举个开发中遇到的例子 ?
scrollTo() 和 scollBy() 的区别?
Scroller 是怎么实现 View 的弹性滑动?
invalidate() 和 postInvalidate() 的区别 ?
SurfaceView 和 View 的区别?
自定义 View 如何考虑机型适配 ?
Handler
谈谈消息机制 Handler ? 作用 ? 有哪些要素 ? 流程是怎样的 ?
一个线程能否创建多个 Handler,Handler 跟 Looper 之间的对应关系 ?
软引用跟弱引用的区别
为什么系统不建议在子线程访问 UI
Looper 死循环为什么不会导致应用卡死
使用 Handler 的 postDealy 后消息队列会有什么变化 ?
可以在子线程直接 new 一个 Handler 吗 ? 怎么做 ?
Message 可以如何创建 ? 哪种效果更好 ? 为什么 ?
线程 (重点)
用过线程池吗 ? 讲讲 AsyncTask 的原理
线程池的几个参数的理解, 四种线程池的使用场景
直接在 Activity 中创建一个 thread 跟在 service 中创建一个 thread 之间的区别
IntentService 有什么用 ?
线程池核心线程数一般定义多少 , 为什么 ?
Thread,Looper,MessageQueue,Handler,Message 每个类的功能以及这些类之间的关系
线程池的好处, 原理, 类型 ? 多线程是否一定会高效 (优缺点)
ThreadPoolExecutor 的工作策略 ?
什么是 ANR ? 什么情况会出现 ANR ? 如何避免 ? 在不看代码的情况下如何快速定位出现 ANR 问题所在 ?
NR 在四大组件的时间, 场景
多线程中, 让你做一个单例, 你会怎么做
除了 notify 还有什么方式可以唤醒线程
Bitmap
Bitmap 在 decode 的时候申请的内存如何复用, 释放时机
Bitmap 使用需要注意哪些问题 ?Bitmap.recycle() 会立即回收么 ? 什么时候会回收 ? 如果没有地方使用这个 Bitmap, 为什么垃圾回收不会直接回收它 ?
一张 Bitmap 所占内存以及内存占用的计算
Android 中缓存更新策略 ?
LRU 的原理 ?
性能优化 (重点)
图片的三级缓存中, 图片加载到内存中, 如果内存快爆了, 会发生什么? 怎么处理?
内存中如果加载一张 500*500 的 PNG 高清图片. 应该是占用多少的内存?
webView 的性能优化 ?
Bitmap 如何处理大图, 如一张 30M 的大图, 如何预防 OOM
内存回收机制与 GC 算法 (各种算法的优缺点以及应用场景);GC 原理时机以及 GC 对象
内存泄露和内存溢出的区别 ?AS 有什么工具可以检测内存泄露
性能优化, 怎么保证应用启动不卡顿? 黑白屏怎么处理?
性能优化如何分析 systrace?
强引用置为 null, 会不会被回收?
ListView 跟 RecyclerView 的区别 (动画, 刷新, 缓存, 数据绑定层, 优化, 各自的使用场景)
ListView 的 adapter 是什么 adapter, 如何复用 ?
Java 多线程引发的性能问题, 怎么解决?
性能优化如何分析 systrace?
JNI
对 JNI 是否了解
如何加载 NDK 库 ? 如何在 JNI 中注册 Native 函数, 有几种注册方法 ?
java 如何调用 c,c++ 语言 ?
JNI 如何调用 java 代码 ?
你用 JNI 来实现过什么功能 ? 怎么实现的 ?(加密处理, 影音方面, 图形图像处理)
设计模式
你所知道的设计模式有哪些?
谈谈 MVC,MVP 和 MVVM, 好在哪里, 不好在哪里 ?
如何理解生产者消费者模型 ?
是否能从 Android 中举几个例子说说用到了什么设计模式 ?
装饰模式和代理模式有哪些区别 ?
实现单例模式有几种方法 ? 懒汉式中双层锁的目的是什么 ? 两次判空的目的又是什么 ?
用到的一些开源框架, 介绍一个看过源码的, 内部实现过程.
谈谈对 RxJava 的理解
RxJava 的作用, 与平时使用的异步操作来比的优缺点
说说 EventBus 作用, 实现方式, 代替 EventBus 的方式
Fragment 如果在 Adapter 中使用应该如何解耦?
Android 进阶延伸点
如何进行单元测试, 如何保证 App 稳定
Android 中如何查看一个对象的回收情况
TabLayout 如何设置指示器的宽度包裹内容?
APK 的大小如何压缩 ? 多渠道包 ?
插件化原理分析
组建化原理, 组件化中路由, 埋点的实现
Hook 以及插桩技术
Android 的签名机制, APK 包含哪些东西 ?
v3 签名 key 和 v2 还有 v1 有什么区别
热修复流派, 原理, 如何进行 dex 替换的 ?
Android4.0~9.0 之间大的变化, 如何处理 ?
说下 Measurepec 这个类
WebView 相关 (内存泄露, JS 交互)
请例举 Android 中常用布局类型, 并简述其用法以及排版效率
区别 Animation 和 Animator 的用法, 概述其原理
如何实现一个推送, 极光推送原理
是否使用过 DataBinding ? ButterKnife 是怎么做到布局绑定的 ?
使用过什么图片加载库 ?Glide 的源码设计哪里很微妙 ?
做过屏幕适配吗 ? 你的处理方案有哪些 ?
做过主题切换吗? 你的处理方案有哪些?
做过权限适配吗 ? 动态权限适配方案, 权限组的概念
用过哪些网络加载库 ?OkHttp,Retrofit 实现原理 ?
对于应用更新这块是如何做的 ? (灰度, 强制更新, 分区域更新)
了解 GPS,GIS 吗 ?
会用 Kotlin,Fultter 吗 ? 谈谈你的理解
看完了有什么感想, 自己和 BAT 的要求有差距么?
这也是根据面试题目整理的一份面试资料还有学习的视频, 今天免费分享给你们.
领取方式
以上资源, 进群无套路免费获取, 每天还会更新最新资料
加 QQ 群: 818520403, 免费领取资料 点击免费领取
来源: http://www.jianshu.com/p/3a23ccda52a8