传智播客武汉校区就业部出品
务实、创新、质量、分享、专注、责任
Android 程序员
面试题精编第一版
1
传智播客武汉校区就业部出品
务实、创新、质量、分享、专注、责任
PS:因为是第一版,后期更新版本小舞老师还是会第一时间发布在这个链接上
http://bbs.itcast.cn/thread-84748-1-1.html
想了解关于传智播客武汉校区更多内容,想获取更多学习资料吗?
Android/Java 零基础学习群:348985839
网页 UI 零基础学习群:397140747
或添加小舞老师 QQ:1641907557
关于传智播客武汉校区最新薪资请戳这里:
http://bbs.itcast.cn/thread-84490-1-1.html
更多详细情况请咨询:
http://crm2.qq.com/page/portalpage/wpa.php?uin=800087759&at
y=0&a=0&curl=&ty=1
2
传智播客武汉校区就业部出品
务实、创新、质量、分享、专注、责任
面试题精编版................................................................................................................7
Android 基础(★★) ..........................................................................................................................7
一、 Activity. ......................................................................................................................................... 7
1. 什么是 Activity?. .............................................................................................................................7
2. 请描述一下 Activity 生命周期. .................................................................................................... 7
3. 常见的 Activity 类型有 FragmentActivitiy,ListActivity,TabAcitivty 等。请描述一下
Activity 生命周期. .............................................................................................................................. 8
4. 如何保存 Activity 的状态?. ......................................................................................................... 8
5. 两个 Activity 之间跳转时必然会执行的是哪几个方法?.......................................................... 9
6. 横竖屏切换时 Activity 的生命周期. ............................................................................................. 9
7. 如何将一个 Activity 设置成窗口的样式.................................................................................... 10
8. 如何退出 Activity?如何安全退出已调用多个 Activity 的 Application?.......................... 10
二、 Service. ........................................................................................................................................ 11
1、 Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?................... 11
2、 Activity 怎么和 Service 绑定,怎么在 Activity 中启动自己对应的 Service?................12
3、 请描述一下 Service 的生命周期. .............................................................................................12
4、 什么是 IntentService?有何优点?....................................................................................... 14
5、 说说 Activity、Intent、Service 是什么关系........................................................................ 17
6、 Service 和 Activity 在同一个线程吗.......................................................................................17
7、 Service 里面可以弹吐司么. ......................................................................................................18
3
该文档是极速PDF编辑器生成,如果想去掉该提示,请访问并下载:http://www.jisupdfeditor.com/
传智播客武汉校区就业部出品
务实、创新、质量、分享、专注、责任
8、 什么是 Service 以及描述下它的生命周期。Service 有哪些启动方法,有什么区别,怎样
停用 Service?...................................................................................................................................18
三、 Broadcast Receiver..................................................................................................................19
1、 请描述一下 BroadcastReceiver..............................................................................................19
2、 在 manifest 和代码中如何注册和使用 BroadcastReceiver............................................... 20
3、 BroadCastReceiver 的生命周期.............................................................................................20
四、 ContentProvider...................................................................................................................... 21
1、 请介绍下 ContentProvider 是如何实现数据共享的............................................................ 21
2、 请介绍下 Android 的数据存储方式........................................................................................22
3、 为什么要用 ContentProvider?它和 sql 的实现上有什么差别?......................................23
4、 说说 ContentProvider、ContentResolver、ContentObserver 之间的关系................23
五、 ListView........................................................................................................................................ 23
1、 ListView 如何提高其效率?.....................................................................................................23
2、 当 ListView 数据集改变后,如何更新 ListView................................................................... 24
3、 ListView 如何实现分页加载.....................................................................................................24
4、 ListView 可以显示多种类型的条目吗.....................................................................................25
5、 ListView 如何定位到指定位置.................................................................................................25
6、 如何在 ScrollView 中如何嵌入 ListView............................................................................... 25
现阶段最好的处理的方式是: 自定义 ListView,重载 onMeasure()方法,设置全部显示。26
7、 ListView 中如何优化图片.........................................................................................................27
8、 ListView 中图片错位的问题是如何产生的.............................................................................29
4
传智播客武汉校区就业部出品
务实、创新、质量、分享、专注、责任
9、 Java 中引用类型都有哪些........................................................................................................ 29
六、 Intent........................................................................................................................................... 30
1、 Intent 传递数据时,可以传递哪些类型数据?..................................................................... 30
2、 Serializable 和 Parcelable 的区别......................................................................................... 30
3、 请描述一下 Intent 和 IntentFilter........................................................................................ 31
七、 Fragment.................................................................................................................................... 34
1、 Fragment 跟 Activity 之间是如何传值的..............................................................................34
2、 描述一下 Fragment 的生命周期.............................................................................................35
3、 Fragment 的 replace 和 add 方法的区别.............................................................................35
4、 Fragment 如何实现类似 Activity 栈的压栈和出栈效果的?..............................................37
5. Fragment 在你们项目中的使用..............................................................................................38
6. 如何切换 fragement,不重新实例化........................................................................................39
Android 高级(★★★)..................................................................................................................... 40
一、 Android 性能优化...................................................................................................................... 40
1、 如何对 Android 应用进行性能分析........................................................................................40
2、 什么情况下会导致内存泄露..................................................................................................... 47
3、 如何避免 OOM 异常.................................................................................................................51
4、 Android 中如何捕获未捕获的异常........................................................................................... 54
二、 Android 屏幕适配...................................................................................................................... 57
1、 屏幕适配方式都有哪些............................................................................................................. 57
2、 屏幕适配的处理技巧都有哪些................................................................................................. 64
5
传智播客武汉校区就业部出品
务实、创新、质量、分享、专注、责任
3、 dp 和 px 之间的关系.................................................................................................................68
三、 AIDL..............................................................................................................................................68
1、 什么是 AIDL 以及如何使用......................................................................................................68
四、 Android 中的事件处理.............................................................................................................. 69
1、Handler 机制..................................................................................................................................69
2、 事件分发机制............................................................................................................................. 70
五、 Android 中的动画...................................................................................................................... 73
1、 Android 中的动画有哪几类,它们的特点和区别是什么.....................................................73
2、 如何修改 Activity 进入和退出动画......................................................................................... 73
项目框架的使用(★★★)................................................................................................................. 74
一、 自我介绍................................................................................................................................... 74
二、 开发中都使用过哪些框架、平台........................................................................................... 75
三、 都使用过哪些自定义控件....................................................................................................... 80
四、 项目的流程............................................................................................................................... 81
五、 项目中常见的问题................................................................................................................... 81
六、 即时通讯是是怎么做的?..........................................................................................................90
七、 设计模式六大原则................................................................................................................... 92
6
传智播客武汉校区就业部出品
务实、创新、质量、分享、专注、责任
面试题精编版
Android 基础(★★)
一、Activity
1. 什么是 Activity?
四大组件之一,一般的,一个用户交互界面对应一个 activity
setContentView() ,// 要显示的布局
button.setOnclickLinstener{
}, activity 是 Context 的子类,同时实现了 window.callback 和
keyevent.callback, 可以处理与窗体用户交互的事件.
我开发常用的的有
FragmentActivitiyListActivity ,PreferenceActivity ,TabAcitivty 等…
2. 请描述一下 Activity 生命周期
Activity 从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应
的回调方法,这些回调方法包括:onCreate onStart onResume onPause
onStop onDestroy
其实这些方法都是两两对应的,onCreate 创建与 onDestroy 销毁;
onStart 可见与 onStop 不可见;onResume 可编辑(即焦点)与 onPause;
如果界面有共同的特点或者功能的时候,还会自己定义一个 BaseActivity.
进度对话框的显示与销毁
7
传智播客武汉校区就业部出品
务实、创新、质量、分享、专注、责任
3. 常见的 Activity 类型有 FragmentActivitiy,ListActivity,
TabAcitivty 等。请描述一下 Activity 生命周期
Activity 从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应
的回调方法,这些回调方法包括:onCreate onStart onResume onPause
onStop onDestroy
其实这些方法都是两两对应的,onCreate 创建与 onDestroy 销毁;
onStart 可见与 onStop 不可见;onResume 可编辑(即焦点)与 onPause。
4. 如何保存 Activity 的状态?
Activity 的状态通常情况下系统会自动保存的,只有当我们需要保存额外的
数据时才需要使用到这样的功能。
一般来说, 调用 onPause()和 onStop()方法后的 activity 实例仍然存在于内
存中, activity 的所有信息和状态数据不会消失, 当 activity 重新回到前台之后,
所有的改变都会得到保留。
但是当系统内存不足时, 调用 onPause()和 onStop()方法后的 activity 可能
会被系统摧毁, 此时内存中就不会存有该 activity 的实例对象了。如果之后这个
activity 重新回到前台, 之前所作的改变就会消失。为了避免此种情况的发生, 我
们可以覆写 onSaveInstanceState()方法。onSaveInstanceState()方法接受一
个 Bundle 类型的参数, 开发者可以将状态数据存储到这个 Bundle 对象中, 这
样 即 使 activity 被 系 统 摧 毁 , 当 用 户 重 新 启 动 这 个 activity 而 调 用 它 的
onCreate()方法时, 上述的 Bundle 对象会作为实参传递给 onCreate()方法, 开
8