关于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 ...
随机推荐
- vue3.0 加载json的“另类”方法(非ajax)
问题 加载json一定要用ajax的方式吗? 最近学习vue3.0,在实现一个功能的时候发现一个问题-- 写代码的时候,需要的json太长.太多,和代码放在一起太混乱.看代码总有翻来翻去,又没有&qu ...
- C# 压缩源文件(导出源文件word文件)
说明 1 : 在webUI 公共类,存放 ZipHelper 类 说明 2 :判断文件路径是否存在,不存在则创建文件夹 说明 3 : 引用类方法,判断压缩文件,返回的,是true/false 引用 ...
- 营销经验总结:如何才能提升h5游戏代入感?
HTML5游戏拥有即点即玩,无需下载,并具备传播性广的特点,这就使得商家看到了无限商机,如何让产品更加深入人心,是游戏推广最为重要的环节.优秀的代入感才是游戏产品宣传的关键,那么有哪些要素的支撑才能确 ...
- [Java并发编程之美]第2章 synchroized关键字
###synchronized关键字 synchronized块是Java提供的一种原子性内置锁,每个对象都可以把它当同步锁来用.线程在进入synchronized块钱会自动获取内部锁,这时候其他线程 ...
- spring cloud微服务快速教程之(十二) 分布式ID解决方案(mybatis-plus篇)
0-前言 分布式系统中,分布式ID是个必须解决的问题点: 雪花算法是个好方式,不过不能直接使用,因为如果直接使用的话,需要配置每个实例workerId和datacenterId,在微服务中,实例一般动 ...
- Node.js 从零开发 web server博客项目[接口]
web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...
- JVM参数总结
官方文档 堆参数: -Xms: 堆的初始值,例如 -Xmx2048,初始堆大小为 2G -Xmx: 堆的最大值,例如 -Xmx2048M,允许最大堆内存 2G -Xmn: 新生代大小 -XX:Surv ...
- SpringBoot框架:使用mybatis连接mysql数据库完成数据访问(二)
一.导入依赖包 1.在创建项目时勾选: 勾选SQL中的JDBC API.MyBatis Framework.MySQL Driver,创建项目后就会自动配置和引入这些包. 2.在pom.xml文件中添 ...
- Flex、Grid、媒体查询实现响应式布局
本篇文章主要讲述使用Flex布局.Grid布局以及媒体查询三种方式来实现响应式布局. 文章涉及代码在线coding地址 效果图: 文字描述: 屏幕大小不同,展示列数不同,1-5号按照屏幕大小可展示2到 ...
- Centos-获取远程主机对应端口信息-telnet
telnet 通过 telnet协议与远程主机通信或者获取远程主机对应端口信息 格式 telnet URL/IP port