android开发面试题
2016-02-29 14:51
441 查看
找了将近两个星期的工作,面试了5家公司,罗列一下笔试或者面试时的问题,祝大家好运
1,handler机制
答:handler运行机制:1),在主线程中创建handler
2),子线程中借助主线程的handler传递一条message
3),将message放入messagequeue即消息队列中
4),主线程的looper检测到消息队列中有消息时进行更新UI
一个线程有唯一一个looper,唯一一个消息队列messagequeue,可以有多个handler。主线程有默认的looper,其他线程没有,需要创建
2,开启广播方式,各自优缺点,以及android中广播存在的机制原理
答:xml中注册:常驻型广播,在activity创建之前就已经注册,在activity结束之后依旧存在
代码中注册:非常驻型广播,与activity的声明周期相关,便于控制何时开始何时结束
3,如何屏蔽掉force close弹窗
答:参考博客:
5,mvc模式
答:mvc框架是一种框架而不是设计模式,很多人会混淆,框架是指代码可以重用,可以用代码表示出来,而设计模式是说设计可以重用,比较抽象的概念。
m(model)业务模型-v(view)视图-c(controller)控制器:该设计模式将业务逻辑和实现view分离开来,model管理数据,view显示视图,controller就负责当model数据发生变化时同步到view视图。
6,文件系统权限和运行时权限区别
答:apk运行在虚拟机上时有运行时权限,只有体现在文件系统上时才有Linux的权限设置
7,如何避免recycleview加载图片乱序以及oom问题
8,三级缓存
9,动画所存在的bug
10,如何在退出时保存activity状态
答:如下:
11,socket通信
12,解释一下android的单线程模型
答:android单线程模型是说android中ui的相关操作只能在主线程即ui线程中进行。如果再非ui线程中更新则会报异常。
13,请说一下图片加载框架的原理
14,说一下网络协议
15,android系统的体系结构
答:android系统分用户空间user space和内核空间kernel space两层,之所以分两层是为了更好的支持硬件。
user space又包括:applications应用程序层,application framework应用程序框架层,external library&android runtime外部库以及运行时库层,HAL(hardware abstract layer)硬件抽象层
kernel space包括:linux device drivers linux设备驱动层,process management进程管理,memory management内存管理。
这是工作四个月后的面试题,因为没有培训过,完全是自学,所以有的简单,有的偏
祝正在找工作的好运!!!
1,handler机制
答:handler运行机制:1),在主线程中创建handler
2),子线程中借助主线程的handler传递一条message
3),将message放入messagequeue即消息队列中
4),主线程的looper检测到消息队列中有消息时进行更新UI
一个线程有唯一一个looper,唯一一个消息队列messagequeue,可以有多个handler。主线程有默认的looper,其他线程没有,需要创建
2,开启广播方式,各自优缺点,以及android中广播存在的机制原理
答:xml中注册:常驻型广播,在activity创建之前就已经注册,在activity结束之后依旧存在
代码中注册:非常驻型广播,与activity的声明周期相关,便于控制何时开始何时结束
3,如何屏蔽掉force close弹窗
答:参考博客:
关于程序forceclose时优雅退出解决方案
4,contentProvider用法5,mvc模式
答:mvc框架是一种框架而不是设计模式,很多人会混淆,框架是指代码可以重用,可以用代码表示出来,而设计模式是说设计可以重用,比较抽象的概念。
m(model)业务模型-v(view)视图-c(controller)控制器:该设计模式将业务逻辑和实现view分离开来,model管理数据,view显示视图,controller就负责当model数据发生变化时同步到view视图。
6,文件系统权限和运行时权限区别
答:apk运行在虚拟机上时有运行时权限,只有体现在文件系统上时才有Linux的权限设置
7,如何避免recycleview加载图片乱序以及oom问题
8,三级缓存
9,动画所存在的bug
10,如何在退出时保存activity状态
答:如下:
@Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub String name = mNameEt.getText().toString().trim(); String age = mAgeEt.getText().toString().trim(); outState.putString("name",name); outState.putString("age", age); super.onSaveInstanceState(outState);}
11,socket通信
12,解释一下android的单线程模型
答:android单线程模型是说android中ui的相关操作只能在主线程即ui线程中进行。如果再非ui线程中更新则会报异常。
13,请说一下图片加载框架的原理
14,说一下网络协议
15,android系统的体系结构
答:android系统分用户空间user space和内核空间kernel space两层,之所以分两层是为了更好的支持硬件。
user space又包括:applications应用程序层,application framework应用程序框架层,external library&android runtime外部库以及运行时库层,HAL(hardware abstract layer)硬件抽象层
kernel space包括:linux device drivers linux设备驱动层,process management进程管理,memory management内存管理。
这是工作四个月后的面试题,因为没有培训过,完全是自学,所以有的简单,有的偏
祝正在找工作的好运!!!
相关文章推荐
- 程序员面试经典阅读笔记
- leetcode之linked List cycle && linked List cycle II
- 面试题目总结1(自己面试时碰到的)
- Android面试题之Activity
- 职业 行业 2 博客
- leetcode之 Kth Largest Element in an Array
- java项目经理面试
- 面试常问 Java基础 冒泡排序
- 面试遇到的智力题编程-啤酒兑换
- 【面试之java容器】数组、字符容器,对象容器
- 如果你恨一个程序员,忽悠他去做iOS开发
- java程序员书单--成长之路--职业发展,你读过几本
- 做程序员的纠结在哪里
- 面试时问aop是什么该怎么回答
- 程序员技术练级攻略
- 2015--变化的一年
- .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引
- OSChina 周一乱弹 ——程序员编年史
- 为什么频繁更改需求会令程序员烦恼?
- 【一些事晚报】新人面试中遇到什么问题?