二十六、什么情况会导致Force Close ?如何避免?能否捕获导致其的异常?

抛出运行时异常时就会导致Force Close,比如空指针、数组越界、类型转换异常等等。

捕获:可以通过logcat查看抛出异常的代码出现的位置,然后到程序对应代码中进行修改。

避免:编写程序时,要思维缜密,在可能出现异常的地方都作相应的处理,增强程序的健壮性。

二十七、Android本身的api并未声明会抛出异常,则其在运行时有无可能抛出runtime异常,你遇到过吗?诺有的话会导致什么问题?如何解决?

会。比如nullpointerException。我遇到过。比如空指针异常是最常见的异常,只要对null调用方法就会出现nullpointerException。会导致程序无法正常运行出现forceclose。可以打开控制台查看logcat信息,然后找到抛出异常信息的代码段并进行修改。

二十八、Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念

DVM指Dalvik虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。

每一个Dalvik 应用作为一个独立的Linux 进程执行可以防止在虚拟机崩溃的时候所有程序都被关闭。

至于DVM和JVM的区别上文已介绍过。

二十九、什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

概念:嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,linux在用户空间可抢占,内核空间在2.4以后可局部抢占,严格来讲 Android属于软实时系统。

特点:

●实时性。由于对嵌人式实时操作系统的共同要求是系统能快速响应事件,具有较强的实时性,所以嵌入式实时操作系统的内核都是可抢占的。
●可裁剪性。嵌入式操作系统运行的硬件平台多种多样,其宿主对象更是五花八门,所以要求嵌入式操作系统中提供的各个功能模块可以让用户根据需要选择使用,即要求它具有良好的可裁剪性。
●高可靠性。嵌入式系统广泛应用于军事武器、航空航天、交通运输、重要的生产设各领域,所以要求嵌人式操作系统必须有极高的可靠性,对关键、要害的应用还要提供必要的容错和防错措施,以进一步提高系统的可靠性。
●易移植性。为了适应多种多样的硬件平台,嵌人式操作系统应可在不做大量修改的情况下能稳定地运行于不同的平台。

三十、嵌入式操作系统内存管理有哪几种,各有何特性

)嵌入式操作系统内存管理机制:

、非虚拟内存管理机制
    在实时性要求比较高的情况下,很多嵌入式系统并不需要虚拟内存机制:因为虚拟内存机制会导致不确定性的 I/O阻塞时间,使得程序运行时间不可预期,这是实时嵌入式系统的致命缺陷;另外,从嵌入式处理器的成本考虑,大多采用不装配MMU 的嵌入式微处理器。所以大多嵌入式系统采用的是实存储器管理策略。因而对于内存的访问是直接的,它对地址的访问不需要经过MMU,而是直接送到地址线上输出,所有程序中访问的地址都是实际的物理地址;而且,大多数嵌入式操作系统对内存空间没有保护,各个进程实际上共享一个运行空间。一个进程在执行前,系统必须为它分配足够的连续地址空间,然后全部载入主存储器的连续空间。
    由此可见,嵌入式系统的开发人员不得不参与系统的内存管理。从编译内核开始,开发人员必须告诉系统这块开发板到底拥有多少内存;在开发应用程序时,必须考虑内存的分配情况并关注应用程序需要运行空间的大小。另外,由于采用实存储器管理策略,用户程序同内核以及其它用户程序在一个地址空间,程序开发时要保证不侵犯其它程序的地址空间,以使得程序不至于破坏系统的正常工作,或导致其它程序的运行异常;因而,嵌入式系统的开发人员对软件中的一些内存操作要格外小心。
UCOS就是使用非虚拟内存管理的一个例子,在UCOS中,所有的任务共享所有的物理内存,任务之间没有内存保护机制,这样能够提高系统的相应时间,但是任务内存操作不当,会引起系统崩溃。

)嵌入式操作系统内存管理有页式,段式,段页,用到了MMU,虚拟空间等技术。

)段式存储管理和页式存储管理的本质区别:

1.页式存储管理中的逻辑地址有页号和业内地址两部分组成,但作业仍然使用连续的逻辑地址,可把它看作是一维的(线性的)地址结构。用户没有分页的概念,操作系统把作业信息装入主存时才按照块长进行分页。
  2.段式存储管理中的逻辑地址有段号和段内地址两部分组成。他支持用户的分段,每段内的逻辑地址是连续的,而段与段之间的逻辑地址是不连续的。因此段式存储管理中的逻辑地址实际上是采用了二维的地址结构。

android面试题之五的更多相关文章

  1. Android多线程分析之五:使用AsyncTask异步下载图像

    Android多线程分析之五:使用AsyncTask异步下载图像 罗朝辉 (http://www.cnblogs.com/kesalin) CC 许可,转载请注明出处 在本系列文章的第一篇<An ...

  2. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...

  3. 安卓Android面试题大全

    56个问题都是经常用到的,可以深入研究下,也是必须掌握的开发必备知识. 安卓Android面试题汇总 搜集了一些Android面试题目,供将要面试或者正在面试的朋友参考. 1, 谈谈你对Activit ...

  4. Android 面试题总结

    Android 面试题总结(不断更新) 1.INETNT几种有关Activit的启动方式FLAG_ACTIVITY_BROUGHT_TO_FRONT 将ACTIVITY带到最前面FLAG_ACTIVI ...

  5. Android面试题整理【转载】

      面试宝典(5)  http://www.apkbus.com/android-115989-1-1.html 面试的几个回答技巧 http://blog.sina.com.cn/s/blog_ad ...

  6. 19、android面试题整理(自己给自己充充电吧)

    (转载,出处丢失,请原作者原谅,如有意见,私信我我会尽快删除本文) JAVA 1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问 ...

  7. Android面试题基础(转)

    71道经典Android面试题和答案 1.下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释 ...

  8. Android面试题(文章内容来自他人博客)

    腾讯面试题 1.int a = 1; int result = a+++3<<2; 2.int a = 2; int result = (a++ > 2)?(++a):(a+=3); ...

  9. android面试题集1

    Android 面试题(有详细答案) 附带答案,共100分 一.选择题(30题,每题1.5分,共45分) 1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功 ...

随机推荐

  1. Swift——(一)为Swift内置类型加入属性

    在看苹果官方的Swift Language的时候,遇到实验:Write an extension for the Double type that add an absoluteValue prope ...

  2. 传输中文乱码js解决方法

    encodeURI要编码两次 var a="我的"; //编译两次 //window.location.href = "http://127.0.0.1:8080/kab ...

  3. Tomcat 内存与优化篇

    Tomcat 内存与优化一.Tomcat 运行环境介绍 1.Tomcat 本身无法直接在计算机上运行,需要依赖硬件基础上的操作系统和Java虚拟机: 2.Java 程序启动时JVM都会分配一个初始内存 ...

  4. jquery 底部导航透明度变化

    如果滚动条到达底部,footer-nav 的透明度为1,否则为0.8: html <div class="footer-nav" id="footer"& ...

  5. html进阶css(1)

    <!doctype html> <html> <head> <meta http-equiv="content-type" content ...

  6. mysql的join

    SELECT * FROM a LEFT JOIN b ON a.aID = b.bID;  a为主,a的数据全显示,连不上b的对应字段为空   SELECT * FROM a RIGHT JOIN ...

  7. iOS-设计模式之通知

    通知设计模式简单好用,就是一个项目中如果用的太多,不利于代码维护,可读性太差. 实现过程: [[NSNotificationCenter defaultCenter]postNotificationN ...

  8. 类似QQ侧滑菜单功能实现

    之前的那文章简单实现了菜单侧拉功能,但是做不到像QQ那样导航条和tabBar一起移动...之后在网上找资料,有了思路,就自个写了个demo试试水. 先创建QHLMainController控制器,并把 ...

  9. Visual Studio .NET、.NET Framework和C#之间的联系

    Visual Studio .NET是一种集成开发环境(IDE),它包含3种高级程序设计语言,C#就是其中的一种:Visual Studio .NET之所以能把这三种语言有机结合起来并具有与平台无关的 ...

  10. linux设置虚拟内存(swap)解决mysql因内存不足挂掉的故障

    mysql错误日志显示: InnoDB: mmap(137363456 bytes) failed; errno 122016-03-01 01:38:42 13064 [ERROR] InnoDB: ...