Android开发工程师笔试题–001

2015-08-07 20:11 阅读 6,367 次 评论 0 条

1、Android DVM的进程和Linux下的进程、应用程序的进程是否同一个概念?

答:Android中的每一个应用程序都在自己的进程中运行,拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是Linux中的一个进程,所以说这三者是同一个概念。

2、SIM卡的EF文件有何用?

答:SIM卡有自己的操作系统,EF文件作存储并和手机通信用的。

3、嵌入式操作系统的内存管理有哪几种?有何特性?

答:页式,段式,段页;用到了MMU、虚拟空间等技术

4、什么是嵌入式实时操作系统?Android操作系统属于实时操作系统嘛?

答:根据字面,不难理解,实时操作系统是指当事件发生或数据产生后,能在最短的时间内做出处理,其处理结果又能在规定的时间内控制生产过程,并控制所有协调一致运行任务的嵌入式操作系统。又分为软实时和硬实时,Android操作系统基于Linux内核,属于软实时。

5、一条最长的短信包含多少个字节?

答:中文70个字节,英文160个字节。

6、Android中的动画有哪几类?它们有何特点和区别?

有Tween动画和Frame动画;Tween动画,这种动画方式可以使视图组件移动、放大、缩小以及透明度的变化;Frame动画,又称为传统动画,按顺序播放排列好的图片来实现。

7、Handler消息传递机制的原理?

答:子线程通过Handler、Looper实现与UI线程之间的通信。子线程借助主线程中的Handler发送消息,每次发送一条消息到主线程,就会被主线程放置到Message Queue(消息队列)里面,主线程中的轮询器Looper发现Message Queue里面有一条消息,就会调用Handler消息处理者,去执行handleMessage()这个方法,我们就可以在这个方法里面更新UI界面等操作。

8、MVC模式的原理?它在Android中的应用?

MVC(Model View Controller),即模型,视图,控制器。Event事件导致Controller改变Model或View,只要Controller改变了Model的数据或属性,View就会自动更新视图显示。类似的,主要Controller改变了View,View就会从Model中获取数据来更新视图显示。

9、谈谈你对内存溢出和内存泄漏的理解?

答:当应用程序消耗完了所有的可用堆空间后,再试图在堆上分配新对象的时就会发生OOM(Out Of  Memory Error)异常,导致应用程序崩溃退出,即称为内存溢出;当Activity、View或Drawable等类的对象长期持有无用的引用,造成被引用对象无法在GC时回收,而长期占用堆空间,称为内存泄漏;内存溢出是应用程序占用了过多的内存空间,超过了其可以承受的范围,内存泄漏是回收不及时或没有回收,而在堆栈中产生许多的无用的引用,过多的内存泄漏会导致内存溢出,从而迫使应用程序崩溃退出。

你可能感兴趣的文章

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/271.html ,谢谢支持!

资源分享

Android学习笔记九:Java线程、多线程和线程池 Android学习笔记九:Java线程、
Head First Of Design Pattern Head First Of Design Patt
一张图看懂日志收集模块 一张图看懂日志收集模块
Android事件分发流程分析测试(2) Android事件分发流程分析测试(