Google 手机 Android操作系统面试题
1﹑Android 手机操作系统的四层架构?
架构框架以此从上到下:
1.Applications (应用程序(应用层));
Android 会同一系列核心应用程序包一起发布,该应用程序包包括 email 客户端,SMS
短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用 JAVA 语
言编写的。
2.Application FrameWork (应用程序扩展层(框架));
由于 Android 的手机操作系统是,基于 Liunx 2.6 系统之上封装而成。所以开发人员可也
以直接访问核心程序所使用的API框架,该核心应用程序的API框架设计简化了组件的重用,
任何一个核心应用程序(模块)都暴露出它的功能作用,并且其他应用程序也都可以使用该核
心应用程序(模块)的功能(不过的遵守该核心应用程序框架的安全性限制)。同样,该应用
程序的重用机制也使用户方便使用应程序的相关组件。
API 框架隐藏的核心应用程序是一系列的应用程序的服务和系统应用,其中包括如下:
(Android 手机中的 View 是最基本的一个 UI 类)
丰富而又可扩展的视图(手机界面所显示的组件(Activity上所显示的))组件,可以用
来构建应用程序 如:(视图)Views, 网格(grids), 文本框(text boxes), 按钮(button), 放
置图片区(imageview),文本编辑区 (edittext), 文本显示区(textview),
3.Android RunTime Libraries (Android 系统运行库);
4.Liunx Kernel (Android 系统最底层核心系统 Liunx)
Android 的核心系统服务依赖于 Liunx 2.6 内核,如系统安全,内存管理,进程管理,网
络协议栈和驱动模型。Liunx 内核也同时作为硬件和软件栈之间的抽象层。
2、 Android dvm的进程和 Linux 的进程, 应用程序的进程是否为同一个概念
DVM 指 dalivk 的虚拟机。每一个 Android 应用程序都在它自己的进程中运行,都拥有
一个独立的 Dalvik 虚拟机实例。而每一个 DVM 都是在 Linux 中的一个进程,所以说可以
认为是同一个概念。
3、sim卡的 EF 文件有何作用
sim 卡的文件系统有自己规范,主要是为了和手机通讯,sim 本 身可以有自己的操作
系统,EF就是作存储并和手机通讯用的
4、嵌入式操作系统内存管理有哪几种, 各有何特性
页式,段式,段页,用到了 MMU,虚拟空间等技术
5、 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?
嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以
处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并
控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、 军事设备、 航空
航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬
实时两种,而 android 是基于 linux 内核的,因此属于软实时。
6、一条最长的短信息约占多少 byte?
中文 70(包括标点),英文 160,160 个字节
7、 android 中的动画有哪几类,它们的特点和区别是什么?
两种,一种是 Tween 动画、还有一种是 Frame 动画。Tween 动画,这种实现方式可以
使视图组件移动、放大、缩小以及产生透明度的变化;另一种 Frame 动画,传统的动画方
法,通过顺序的播放排列好的图片来实现,类似电影。
8、handler机制的原理
andriod 提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则。
Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。
1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的 Message
Queue(消息队列)。
2)Handler: 你可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 Message
Queue 里;或者接收 Looper从 Message Queue 取出)所送来的消息。
3) Message Queue(消息队列):用来存放线程放入的消息。
4)线程:UI thread 通常就是 main thread,而 Android 启动程序时会替它建立一个
Message Queue。
9、说说mvc 模式的原理,它在 android 中的运用
MVC(Model_view_contraller)”模型_视图_控制器”。 MVC 应用程序总是由这三个部
分组成。 Event(事件)导致 Controller改变 Model 或View,或者同时改变两者。只要 Controller
改变了 Models 的数据或者属性,所有依赖的 View 都会自动更新。类似的,只要 Controller
改变了 View,View会 从潜在的 Model 中获取数据来刷新自己。