关于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本地调用
关于android和Linux的一些问题的更多相关文章
- Android和Linux应用综合对比分析
原文地址:http://www.cnblogs.com/beer/p/3325242.html 免责声明: 当时写完这篇调查报告,给同事看了后,他觉得蛮喜欢,然后想把这篇文章修改一下,然后往期刊上发表 ...
- Android中Linux suspend/resume流程
Android中Linux suspend/resume流程首先我们从linux kernel 的suspend说起,不管你是使用echo mem > /sys/power/state 或者使用 ...
- android sdk linux 文本 64 位置
android sdk linux 64 之前获得模.现在补上一,然后,小伙伴们下载 版权声明:本文博主原创文章,博客,未经同意不得转载.
- React++ node.js ++SQL Sever ++MySQL++ python ++ php ++ java ++ c++ c#++ java ++ android ++ ios ++Linux+
"C语言在它诞生的那个年代,是非常不错的语言,可惜没有OOP.当项目臃肿到一定程度,人类就不可控了. 为了弥补这个缺陷,C++诞生了.而为了应对各种情况,C++设计的大而全,太多复杂的特性, ...
- 八一八android与Linux的关系
Linux与Androld的关系 虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序.下面我们就来分析一 ...
- Android 运行 Linux 可执行程序
/**************************************************************************** * Android 运行 Linux 可执行 ...
- android与linux之间的关系
篇一(system/core/init/init.c): 对Android感兴趣的朋友都知道,Android系统是建立在Linux内核之上的.那么Linux内核和Android什么关系?Linux内核 ...
- 如何在Android 或Linux 下,做Suspend /Resume 的Debug【转】
转自:http://blog.csdn.net/jacobywu/article/details/24735521 目录(?)[-] Question Answer 加boot 參數 no_conso ...
- Linux下搭建Android NDK , Linux 驱动开发环境
Eclispe Luna(4.4):http://www.eclipse.org/downloads/ CDT :http://www.eclipse.org/cdt/downloads.php AD ...
随机推荐
- vue 图片路径问题
图片路径问题 module.exports = { // 根据环境区分 生产服务器production比如php服务器的地址 和 开发服务器dev的地址 // npm run serve是开发环境de ...
- java 多线程-1
一.程序.进程.线程简介 程序(program)是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象 进程(process)是程序的一次执行过程,或是正在运行的一个程序.是一 ...
- Django 页面之间传递MySql数据表(Django八)
之前实现了页面传递多个参数,但没有实现页面间传递一整个数据表 session传递几个参数:https://blog.csdn.net/qq_38175040/article/details/10496 ...
- oracle之三目录库和辅助库
目录库和辅助库 10.1 创建目录库(Catalog database)的必要性 如果没有catalog,RMAN的存储库(元数据)保存在目标库的控制文件里,这样可能存在如下隐患 1)目标库上的控制文 ...
- MySQL页分裂和页合并
预备知识了解,索引页,数据页,b+tree 页是innoDB中管理储存空间的基本单位,页有很多中,存放数据的叫做索引页.
- jekins使用的坑
1.日志打满 一个周末回来,服务器的磁盘就写满了 现象如下,最后是修改catalina脚本 添加了如下配置 ###jekins log problem#########export JAVA_OPTS ...
- IdentityServer4与API单项目整合(net core 3.X)
一.创建一个空的api项目 添加identityserver4的nuget包 配置config文件 public static IEnumerable<IdentityResource> ...
- android.support.v7.app.AppCompatActivity不能使用的解决办法
最近Android Studio 更新到4.0版本后,在构建项目时使用 android.support.v7.XX android.support.v4.XX 发现在xml文件中,原先我最常使用的Dr ...
- 轻轻松松学CSS:overflow
一.overflow的定义 overflow,音[əʊvəˈfləʊ],义[溢出],就像2.2米的人躺在1.8米的床上,腿得耷拉到床外一样.overflow 属性用于控制内容溢出容器时显示的方式 二. ...
- xshell评估过期(已解决)
登录英文版官网 https://www.netsarang.com/ 点击download 选择xshell 5 . 直接在页面中有红色*号的地方输入个人信息,licensetype 必须选 Hom ...