• 关于android和Linux的一些问题


    1.Android为什么选择java?

      由于java虚拟机,实现软件层的编程与硬件无关性(无需进行特定编译或平台配置)。

    2.Android和Linux内核区别?

      Android上的应用软件运行在dalvik虚拟机上的java软件,dalvik依赖Linux内核。可见Android运行在Linux之上的操作系统。主要差别如下:

      - Android Binder:提供Android平台的进程间通信;Linux系统上层进程间通信主要是Desktop BUS,用消息总线的方式进行IPC。

      - Android电源管理

      - 低内存管理器(low Memory Killer)

      - 匿名共享内存

      - Android PMEM:用于向用户空间提供连续的物理内存区域

      - Android logger:轻量级日志设备

      - Android Alarm:定时器,用于把设备从睡眠状态唤醒。

      - USB Gadget:USB设备驱动

      - Android RAM Console:为了提供调试功能,Android允许将调试日志信息写入RAM Console设备中,是一个基于RAM的Buffer

      - Android timed device:提供对设备进行定时控制功能,目前仅支持振动器和LED设备

      - Yaffs2文件系统

    3.Android系统移植的任务:

      Android移植开发的工作由:核心库,Dalvik虚拟机,硬件抽象层,Linux内核层,硬件系统协同完成

      - Linux中的相关设备驱动程序

      - Android本地框架中的硬件抽象层

    4.系统和硬件之间的交互方式:

      - 系统调用

      - 驱动程序

      - 使用proc文件系统

      - 使用虚拟文件系统

      - 使用内存映像

    5.HAL硬件抽象层目的:

      把Android Framework与Linux kernel隔离,让Android不至于过度依赖Linux kernel,从而可以在不考虑驱动程序前提下进行Android Framework开发。

    6.Goldfish基础:

      Goldfish是一种虚拟的ARM处理器,在Android的仿真环境中使用,运行arm926t指令集

    7.Ashmem驱动介绍

      Ashmem是Android的内存分配/共享机制,基于mmap系统调用,和传统内存分配机制相比是提供了辅助内核内存回收算法的机制

    8.Pmem:与Ashmem都是通过mmap实现共享,区别是Pmem的共享区域是一段连续的物理内存,而Ashmem在虚拟空间地址连续,物理空间不一定连续

    9.MSM内核:MSM是美国高通公司的应用处理器,是Android系统最常用的处理器产品之一。

    10.OMAP基础:OMAP是德州仪器公司的应用处理器

    11.JNI:java Native Interface,java本地调用

  • 相关阅读:
    warmup_csaw_2016
    pwn-简单栈溢出
    吃土
    编程中的进制转换
    linux系统安全及应用——账号安全(基本安全措施)
    vmware vSphere虚拟网络之标准交换机(二)
    vmware vSphere虚拟网络(一)
    服务器虚拟化技术概述
    用shell脚本安装apache
    The server of Apache (二)——apache服务客户端验证
  • 原文地址:https://www.cnblogs.com/Mr-ox/p/6442941.html
Copyright © 2020-2023  润新知