Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念?
DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。
sim卡的EF文件是什么?有何作用
EF(Elementary File)基本文件——既有文件头,也有文件体, 文件头存放该文件的位置和控制信息, 文件体存放真正的数据, 整个SIM卡中只有基本文件EF有文件体, 也只有基本文件EF才用来存放数据.也就是EF是用来存数据的!
嵌入式操作系统内存管理有哪几种,各有何特性?
页式,段式,段页,用到了MMU,虚拟空间等技术
1.页式存储管理中的逻辑地址有页号和业内地址两部分组成,但作业仍然使用连续的逻辑地址,可把它看作是一维的(线性的)地址结构。用户没有分页的概念,操作系统把作业信息装入主存时才按照块长进行分页。
2.段式存储管理中的逻辑地址有段号和段内地址两部分组成。他支持用户的分段,每段内的逻辑地址是连续的,而段与段之间的逻辑地址是不连续的。因此段式存储管理中的逻辑地址实际上是采用了二维的地址结构。
注:MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。
其作用:
1、将虚拟地址映射为物理地址;
2、提供硬件机制的内存访问授权。
什么是嵌入式实时操作系统,Android操作系统属于实时操作系统吗?
实时操作系统:当外界事件或数据产生时,能够接受并以足够快的速度予以处理,处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。
而Android系统是基于linux内核的,因此属于软实时。
一条最长的短信息约占多少byte?
140byte
Android中的动画有哪几类,他们的特点和区别是什么?
总共分为三类:
一、Drawable Animation也就是所谓的帧动画,Frame动画。指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果。(可以理解成多张图片播放,图片过大容易OOM。)
二、View Animation视图动画,也就是所谓补间动画,Tween动画。指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图形变换,从而形成动画效果,主要有Alpha、Scale、Translate、Rotate四种效果。注意:只是在视图层实现了动画效果,并没有真正改变View的属性。(影像变化,view的实际位置其实还是移动前的位置。)
三、Property Animation属性动画,通过不断的改变View的属性,不断的重绘而形成动画效果。相比于视图动画,View的属性是真正改变了。注意:Android 3.0(API 11)以上才支持。(动态改变对象的属性从而达到动画效果。)
Handler机制的原理?
简单来说就是Handler 是一个消息分发对象,而消息分发,有赖于消息循环,也就是 Looper,在一个线程中,Looper 阻塞线程,等待消息构成循环,有了消息,分配到对应的 Handler,让他进一步分发处理。
说说Handler、Looper、Message、MessageQueue之间的关系。
在主线程创建之后会创建一个Looper对象,创建Looper对象的时候会去创建一个MessageQueue,而Looper是一个轮询器,会不停的轮询MessageQueue中的消息,在获取到消息之后就会把这个消息交给相应的handler来进行处理,在主线程中创建一个handler对象,这个handler对象把一个Message放到消息队列中,然后获取到消息进行处理。
说说 mvc 模式的原理,它在 android 中的运用。
1、模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。
2、视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个 mvc 中用户唯一可以看到的一层,接收用户的输入,显示处理结果。
3、控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新 model 对象状态的部分。
View:自定义 View 或 ViewGroup,负责将用户的请求通知 Controller,并根据 model 更新界面;
Controller:Activity 或者 Fragment,接收用户请求并更新 model;
Model:数据模型,负责数据处理相关的逻辑,封装应用程序状态,响应状态查询,通知 View改变,对应 Android 中的 datebase、SharePreference 等。
请描述一下Activity的生命周期。
1. 创建 onCreate - 启动onStart – 开始 onResume – 暂停 onPause – 结束 onStop – 销毁onDestroy
2. 在一个Activity正常启动的过程中,他们被调用的顺序是 onCreate -> onStart -> onResume, 在Activity被干掉的时候顺序是onPause -> onStop -> onDestroy ,这样就是一个完整的生命周期。
3.如果当前Activity被其他Activity全屏遮挡,责会依次调用onPause->onStop,当重新出现的时候调用->onStart->onResume;如果当前Activity被一个dialog所覆盖,责只调用onPause-,当重新出现的时候调用->onResume即可。
简述Android系统层次结构是哪些?
应用程序层(Applications)、应用程序框架层(Application Framework)、系统运行库层(Libraries和androidRuntime)和Linux内核层(linuxKernel)。
请介绍下Android的数据存储方式。
Android提供了5种方式存储数据:
--使用SharedPreferences存储数据;
--文件存储数据;
--SQLite数据库存储数据;
--使用ContentProvider存储数据;
--网络存储数据。