传智播客武汉校区就业部出品 务实、创新、质量、分享、专注、责任
1
Android 程序员
面试题精编第四版
传智播客武汉校区就业部出品 务实、创新、质量、分享、专注、责任
2
面试题精编版.................................................................................................................................................... 9
Android 基础(2016.01.20 更新)(★★)............................................................................................................................... 9
一、 Activity..................................................................................................................................................................................... 9
1、 什么是 Activity?......................................................................................................................................................................9
2、 请描述一下 Activity 生命周期............................................................................................................................................. 9
3、 常见的 Activity 类型.............................................................................................................................................................. 9
4、 如何保存 Activity 的状态?................................................................................................................................................ 10
5、 两个 Activity 之间跳转时必然会执行的是哪几个方法?.................................................................................................11
6、 横竖屏切换时 Activity 的生命周期.....................................................................................................................................11
7、 如何将一个 Activity 设置成窗口的样式.............................................................................................................................11
8、 如何退出 Activity?如何安全退出已调用多个 Activity 的 Application?...................................................................12
9、 Activity 的四种启动模式..................................................................................................................................................... 13
10、 Android 中的 Context, Activity,Appliction 有什么区别?..................................................................................... 13
11、 两个 Activity 之间传递数据,除了 intent,广播接收者,content provider 还有啥?......................................... 14
12、 Context 是什么?...............................................................................................................................................................14
二、 Service.................................................................................................................................................................................... 15
1、 Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?.............................................................. 15
2、 Activity 怎么和 Service 绑定,怎么在 Activity 中启动自己对应的 Service?...........................................................15
3、 请描述一下 Service 的生命周期.........................................................................................................................................16
4、 什么是 IntentService?有何优点?...................................................................................................................................17
5、 说说 Activity、Intent、Service 是什么关系................................................................................................................... 20
传智播客武汉校区就业部出品 务实、创新、质量、分享、专注、责任
3
6、 Service 和 Activity 在同一个线程吗..................................................................................................................................20
7、 Service 里面可以弹吐司么.................................................................................................................................................. 20
8、 什么是 Service 以及描述下它的生命周期。Service 有哪些启动方法,有什么区别,怎样停用 Service?........... 21
9、 在 service 的生命周期方法 onstartConmand()可不可以执行网络操作?如何在 service 中执行网络操作?...... 22
三、 Broadcast Receiver............................................................................................................................................................. 22
1、 请描述一下 BroadcastReceiver.........................................................................................................................................22
2、 在 manifest 和代码中如何注册和使用 BroadcastReceiver.......................................................................................... 22
3、 BroadCastReceiver 的生命周期........................................................................................................................................ 23
四、 ContentProvider..................................................................................................................................................................24
1、 请介绍下 ContentProvider 是如何实现数据共享的....................................................................................................... 24
2、 请介绍下 Android 的数据存储方式................................................................................................................................... 25
3、 为什么要用 ContentProvider?它和 sql 的实现上有什么差别?.................................................................................25
4、 说说 ContentProvider、ContentResolver、ContentObserver 之间的关系...........................................................25
五、 ListView.................................................................................................................................................................................. 26
1、 ListView 如何提高其效率?................................................................................................................................................ 26
2、 当 ListView 数据集改变后,如何更新 ListView.............................................................................................................. 26
3、 ListView 如何实现分页加载................................................................................................................................................ 26
4、 ListView 可以显示多种类型的条目吗................................................................................................................................ 27
5、 ListView 如何定位到指定位置............................................................................................................................................ 27
6、 如何在 ScrollView 中如何嵌入 ListView.......................................................................................................................... 27
7、 ListView 中如何优化图片.................................................................................................................................................... 29
传智播客武汉校区就业部出品 务实、创新、质量、分享、专注、责任
4
8、 ListView 中图片错位的问题是如何产生的........................................................................................................................ 31
9、 如何刷新 ListView 中单个 item 的数据,不刷新整个 ListView 的数据?...................................................................31
六、 Intent.......................................................................................................................................................................................31
1、 Intent 传递数据时,可以传递哪些类型数据?................................................................................................................ 31
2、 Serializable 和 Parcelable 的区别.....................................................................................................................................31
3、 请描述一下 Intent 和 IntentFilter................................................................................................................................... 33
七、 Fragment............................................................................................................................................................................... 35
1、 Fragment 跟 Activity 之间是如何传值的......................................................................................................................... 35
2、 描述一下 Fragment 的生命周期........................................................................................................................................ 36
3、 Fragment 的 replace 和 add 方法的区别........................................................................................................................ 36
4、 Fragment 如何实现类似 Activity 栈的压栈和出栈效果的?......................................................................................... 38
5、 Fragment 在你们项目中的使用......................................................................................................................................... 39
6、 如何切换 fragement,不重新实例化...................................................................................................................................40
Android 高级(★★★).................................................................................................................................................................42
一、 Android 性能优化(11.9 更新)........................................................................................................................................ 42
1、 如何对 Android 应用进行性能分析................................................................................................................................... 42
2、 什么情况下会导致内存泄露.................................................................................................................................................48
3、 如何避免 OOM 异常............................................................................................................................................................ 52
4、 Android 中如何捕获未捕获的异常.................................................................................................................................... 54
5、 ANR 是什么?怎样避免和解决 ANR(重要)................................................................................................................. 57
6、 Android 线程间通信有哪几种方式(重要).................................................................................................................... 58
传智播客武汉校区就业部出品 务实、创新、质量、分享、专注、责任
5
7、 Devik 进程,linux 进程,线程的区别...............................................................................................................................59
8、 描述一下 android 的系统架构?........................................................................................................................................60
9、 android 应用对内存是如何限制的?我们应该如何合理使用内存?(2016.01.24).................................................. 60
10、 简述 android 应用程序结构是哪些?(2016.01.24)................................................................................................. 62
11、 请解释下 Android 程序运行时权限与文件系统权限的区别?(2016.01.24)........................................................ 64
12、 Framework 工作方式及原理,Activity 是如何生成一个 view 的,机制是什么?(2016.01.24)...................... 65
13、 多线程间通信和多进程之间通信有什么不同,分别怎么实现?(2016.01.24)......................................................66
二、 Android 屏幕适配................................................................................................................................................................. 67
1、 屏幕适配方式都有哪些.........................................................................................................................................................67
2、 屏幕适配的处理技巧都有哪些.............................................................................................................................................73
3、 dp 和 px 之间的关系............................................................................................................................................................ 76
三、 AIDL......................................................................................................................................................................................... 77
1、 什么是 AIDL 以及如何使用..................................................................................................................................................77
2、 AIDL 的全称是什么?如何工作?能处理哪些类型的数据?...............................................................................................78
四、 Android 中的事件处理......................................................................................................................................................... 78
1、 Handler 机制........................................................................................................................................................................ 78
2、 事件分发机制.........................................................................................................................................................................79
3、 子线程发消息到主线程进行更新 UI,除了 handler 和 AsyncTask,还有什么?.......................................................81
4、 子线程中能不能 new handler?为什么?........................................................................................................................ 82
五、 Android 中的动画................................................................................................................................................................. 83
1、 Android 中的动画有哪几类,它们的特点和区别是什么................................................................................................ 83