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本地调用

关于android和Linux的一些问题的更多相关文章

  1. Android和Linux应用综合对比分析

    原文地址:http://www.cnblogs.com/beer/p/3325242.html 免责声明: 当时写完这篇调查报告,给同事看了后,他觉得蛮喜欢,然后想把这篇文章修改一下,然后往期刊上发表 ...

  2. Android中Linux suspend/resume流程

    Android中Linux suspend/resume流程首先我们从linux kernel 的suspend说起,不管你是使用echo mem > /sys/power/state 或者使用 ...

  3. android sdk linux 文本 64 位置

    android sdk linux 64 之前获得模.现在补上一,然后,小伙伴们下载 版权声明:本文博主原创文章,博客,未经同意不得转载.

  4. React++ node.js ++SQL Sever ++MySQL++ python ++ php ++ java ++ c++ c#++ java ++ android ++ ios ++Linux+

    "C语言在它诞生的那个年代,是非常不错的语言,可惜没有OOP.当项目臃肿到一定程度,人类就不可控了. 为了弥补这个缺陷,C++诞生了.而为了应对各种情况,C++设计的大而全,太多复杂的特性, ...

  5. 八一八android与Linux的关系

    Linux与Androld的关系 虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序.下面我们就来分析一 ...

  6. Android 运行 Linux 可执行程序

    /**************************************************************************** * Android 运行 Linux 可执行 ...

  7. android与linux之间的关系

    篇一(system/core/init/init.c): 对Android感兴趣的朋友都知道,Android系统是建立在Linux内核之上的.那么Linux内核和Android什么关系?Linux内核 ...

  8. 如何在Android 或Linux 下,做Suspend /Resume 的Debug【转】

    转自:http://blog.csdn.net/jacobywu/article/details/24735521 目录(?)[-] Question Answer 加boot 參數 no_conso ...

  9. Linux下搭建Android NDK , Linux 驱动开发环境

    Eclispe Luna(4.4):http://www.eclipse.org/downloads/ CDT :http://www.eclipse.org/cdt/downloads.php AD ...

随机推荐

  1. rank,dense_rank和row_number函数区别

    我对技术一般抱有够用就好的态度,一般在网上或者书上找了贴合的解决方案,放到实际中发现好用就行了,不再深究,等出了问题再说. 因此,我对Oracle中中形成有效序列的方法集中在rownum,row_nu ...

  2. [oracle/Sql]怎样比较两表的差异?

    比如有这么一个表: create table test02( id number(8,0) primary key, name nvarchar2(20), sal number(5,0) ) 可以这 ...

  3. 20190923-04Linux用户管理命令 000 012

     useradd 添加新用户 1.基本语法 useradd 用户名 (功能描述:添加新用户) useradd -g 组名 用户名 (功能描述:添加新用户到某个组) 2.案例实操 (1)添加一个用户 [ ...

  4. Java使用数据库连接池连接Oracle数据库

    第一步:导入tomcat\lib 下的一个tomcat-dbcp.jar包第二步:在web\META-INF下新建一个context.xml文件,文件内容如下: <?xml version=&q ...

  5. Ajax获取接口数据,url拼接参数跳转页面,js获取上一级页面参数给本页面

    1.Ajax获取接口数据 function demo(){ //假设请求参数 var requestBody = [{ "name":"zhang", &quo ...

  6. 【小白学PyTorch】11 MobileNet详解及PyTorch实现

    文章来自微信公众号[机器学习炼丹术].我是炼丹兄,欢迎加我微信好友交流学习:cyx645016617. @ 目录 1 背景 2 深度可分离卷积 2.2 一般卷积计算量 2.2 深度可分离卷积计算量 2 ...

  7. NSOperation类

    NSOperation 抽象类 NSOperation 是一个"抽象类",不能直接使用 抽象类的用处是定义子类共有的属性和方法 在苹果的头文件中,有些抽象类和子类的定义是在同一个头 ...

  8. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(6)

    前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>,<Git+Gitlab+An ...

  9. PHP基础之面向对象篇

    前言 前面写的都是运算符.流程控制.排序查找等,下面说一说面向对象的一些内容.这是前面写的,有兴趣可以去看一看. PHP入门之类型与运算符 PHP入门之流程控制 PHP入门之函数 PHP入门之数组 P ...

  10. Mybatis接口Mapper内的方法为啥不能重载吗?

    动态代理的功能:通过拦截器方法回调,对目标target方法进行增强. 言外之意就是为了增强目标target方法.上面这句话没错,但也不要认为它就是真理,殊不知,动态代理还有投鞭断流的霸权,连目标tar ...