更多Java培训学习资料,请登录尚硅谷网站下载:www.atguigu.com,学习交流QQ群13群:234782055

  1、描述一下android的系统架构
  android系统架构分从下往上为linux 内核层、运行库、应用程序框架层、和应用程序层。
  Linux kernel:
  负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。
  Libraries和 android Runtime:
  Libraries:即c/c++函数库部分,大多数都是开放源代码的函数库,例如webkit(引擎),该函数库负责 android网页浏览器的运行,例如标准的c函数库libc、openssl、sqlite等,当然也包括支持游戏开发2dsgl和 3dopengles,在多媒体方面有mediaframework框架来支持各种影音和图形文件的播放与显示,例如mpeg4、h.264、mp3、 aac、amr、jpg和png等众多的多媒体文件格式。
  Runtime:负责解释和执行生成的dalvik格式的字节码。
  Application framework(应用软件架构):
  java应用程序开发人员主要是使用该层封装好的api进行快速开发。applications:该层是java的应用程序层,android内置googlemaps、e-mail、即时通信工具、浏览器、mp3播放器等处于该层,java开发人员开发的程序也处于该层,而且和内置的应用程序具有平等的位置,可以调用内置的应用程序,也可以替换内置的应用程序。
  应用程序层:
  android应用程序使用框架的api并在框架下运行,这就带来了程序开发的高度一致性,另一方面也告诉我们,要想写出优质高效的程序就必须对整个 applicationframework进行非常深入的理解。精通applicationframework,你就可以真正的理解android的设计和运行机制,也就更能够驾驭整个应用层的开发。
  总结:
  下层为上层服务,上层需要下层的支持,调用下层的服务,这种严格分层的方式带来的极大的稳定性、灵活性和可扩展性,使得不同层的开发人员可以按照规范专心特定层的开发。

  2、Dalvik和标准Java虚拟机之间的主要差别?
  Dalvik和标准Java虚拟机(JVM)之间的首要差别之一,就是Dalvik基于寄存器,而JVM基于栈。
  Dalvik和Java之间的另外一大区别就是运行环境——Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。
  (1)虚拟机很小,使用的空间也小;
  (2)Dalvik没有JIT编译器;
  (3)常量池已被修改为只使用32位的索引,以简化解释器;
  (4)它使用自己的字节码,而非Java字节码。

  3、Manifest.xml文件中主要包括哪些信息?
  答:manifest:根节点,描述了package中所有的内容。
    User-sdk:指定支持的手机系统的最小版本
    application:包含package中application级别组件声明的根节点。
    activity:Activity是用来与用户交互的主要工具。
    receiver:IntentReceiver能使的application获得数据的改变或者发生的操作,即使它当前不在运行。
    service:Service是能在后台运行任意时间的组件。
    provider:ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件。
    uses-permission:请求你的package正常运作所需赋予的安全许可。
    permission:声明了安全许可来限制哪些程序能你package中的组件和功能。
    instrumentation:声明了用来测试此package或其他package指令组件的代码。

10-29 22:04