安卓面试题及参考答案.docx
安卓面试题及参考答案安卓面试题及参考答案 导读:我依据大家的须要整理了一份关于安卓面试题及参考答案的内容,详细内容:面试题是安卓面试的时候常常出现的形式,是安卓面试过程中必不行少的组成部分。下面是我为大家带来的安卓面试题及答案,信任对你会有帮助的。安卓面试题及答案(一)1.简要说明一.面试题是安卓面试的时候常常出现的形式,是安卓面试过程中必不行少的组成部分。下面是我为大家带来的安卓面试题及答案,信任对你会有帮助的。安卓面试题及答案(一)1.简要说明一下 activity、 intent 、intent filter、service、Broadcase、BroadcaseReceiver答案:一个 activity 呈现了一个用户可以操作的可视化用户界面一个 service 不包含可见的用户界面,而是在后台无限地运行可以连接到一个正在运行的服务中,连接后,可以通过服务中暴露出来的借口与其进行通信一个 broadcast receiver 是一个接收广播消息并作出回应的component,broadcastreceiver 没有界面provider 在接收到 ContentResolver 的恳求时被激活。activity, service 和 broadcast receiver 是被称为 intents 的异步消息激活的。一个 intent 是一个 Intent 对象,它保存了消息的内容。对于 activity和 service 来说,它指定了恳求的操作名称和待操作数据的 URIIntent 对象可以显式的指定一个目标 component。假如这样的话,android 会找到这个 component(基于 manifest 文件中的声明)并激活它。但假如一个目标不是显式指定的,android 必需找到响应 intent 的最佳component。它是通过将 Intent 对象和目标的 intent filter 相比较来完成这一工作的。一个 component 的 intent filter 告知 android 该 component 能处理的 intent。intent filter 也是在 manifest 文件中声明的。2.IntentService 有何优点?答案:IntentService 的好处* Acitivity 的进程,当处理 Intent 的时候,会产生一个对应的 Service* Android 的进程处理器现在会尽可能的不 kill 掉你* 特别简单运用3.横竖屏切换时候 activity 的生命周期?答案:1、不设置 Activity 的2、设置 Activity 的3、设置 Activity 的4.如何将 SQLite 数据库(dictionary.db 文件)与 apk 文件一起发布?答案:可以将 dictionary.db 文件复制到 Eclipse Android 工程中的 res aw 书目中。全部在 res aw 书目中的文件不会被压缩,这样可以干脆提取该书目中的文件。可以将 dictionary.db 文件复制到 res aw 书目中5.如何将打开 res aw 书目中的数据库文件?答案:在 Android 中不能干脆打开 res aw 书目中的数据库文件,而须要在程序第一次启动时将该文件复制到手机内存或 SD 卡的某个书目中,然后再打开该数据库文件。复制的基本方法是运用getResources().openRawResource 方法获得 res aw 书目中资源的 InputStream 对象,然后将该 InputStream 对象中的数据写入其他的书目中相应文件中。在 Android SDK 中可以运用SQLiteDatabase.openOrCreateDatabase 方法来打开随意书目中的 SQLite数据库文件。6.Android 引入广播机制的用意?答案:a:从 MVC 的角度考虑(应用程序内),其实回答这个问题的时候还可以这样问,android 为什么要有那 4 大组件,现在的移动开发模型基本上也是照搬的 web 那一套 MVC 架构,只不过是改了点嫁妆而已。android的四大组件本质上就是为了实现移动或者说嵌入式设备上的 MVC 架构,它们之间有时候是一种相互依存的关系,有时候又是一种补充关系,引入广播机制可以便利几大组件的信息和数据交互。b:程序间互通消息(例如在自己的应用程序内监听系统来电)c:效率上(参考 UDP 的广播协议在局域网的便利性)d:设计模式上(反转限制的一种应用,类似监听者模式)7.Android dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个概念答案:DVM 指 dalivk 的虚拟机。每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例。而每一个 DVM 都是在 Linux 中的一个进程,所以说可以认为是同一个概念。8.sim 卡的 EF 文件有何作用答案:sim 卡的文件系统有自己规范,主要是为了和手机通讯,sim 本 身可以有自己的操作系统,EF 就是作存储并和手机通讯用的9.嵌入式操作系统内存管理有哪几种,各有何特性答案:页式,段式,段页,用到了 MMU,虚拟空间等技术10.什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?答案:嵌入式实时操作系统是指当外界事务或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来限制生产过程或对处理系统作出快速响应,并限制全部实时任务协调一样运行的嵌入式操作系统。主要用于工业限制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就须要运用实时系统。又可分为软实时和硬实时两种,而 android 是基于 linux 内核的,因此属于软实时。11.一条最长的短信息约占多少 byte?答案:中文 70(包括标点),英文 160,160 个字节。12.android 中的动画有哪几类,它们的特点和区分是什么?答案:两种,一种是 Tween 动画、还有一种是 Frame 动画。Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透亮度的改变;另一种 Frame 动画,传统的动画方法,通过依次的播放排列好的图片来实现,类似电影。13.handler 机制的原理答案:andriod 供应了 Handler 和 Looper 来满意线程间的通信。Handler 先进先出原则。Looper 类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的 MessageQueue(消息队列)。2)Handler: 你可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 MessageQueue 里;或者接收 Looper 从 Message Queue 取出)所送来的消息。3) Message Queue(消息队列):用来存放线程放入的消息。4)线程:UIthread 通常就是 main thread,而 Android 启动程序时会替它建立一个 MessageQueue。14.说说 mvc 模式的原理,它在 android 中的运用答案:MVC(Model_view_contraller)模型_视图_限制器。MVC 应用程序总是由这三个部分组成。Event(事务)导致 Controller 变更 Model 或View,或者同时变更两者。只要 Controller 变更了 Models 的数据或者属性,全部依靠的 View 都会自动更新。15.DDMS 和 TraceView 的区分?答案:DDMS 是一个程序执行查看器,在里面可以望见线程和堆栈等信息,TraceView 是程序性能分析器。16.java 中如何引用本地语言答案:可以用 JNI(java nativeinterface java 本地接口)接口。17.谈谈 Android 的 IPC(进程间通信)机制答案:IPC 是内部进程通信的简称, 是共享命名管道的资源。Android中的 IPC 机制是为了让 Activity 和 Service 之间可以随时的进行交互,故在 Android 中该机制,只适用于 Activity 和 Service 之间的通信,类似于远程方法调用,类似于 C/S 模式的访问。通过定义 AIDL 接口文件来定义 IPC 接口。Servier 端实现 IPC 接口,Client 端调用 IPC 接口本地代理。18.NDK 是什么答案:NDK 是一些列工具的集合,NDK 供应了一系列的工具,帮助开发者快速的开发 C/C+的动态库,并能自动将 so 和 java 应用打成 apk 包。NDK 集成了交叉编译器,并供应了相应的 mk 文件和隔离 cpu、平台等的差异,开发人员只需简洁的修改 mk 文件就可以创建出 so>>>点击下页还有更多