From this essay, we go to a new discussion "Android Hardware Abstraction Layer".

  

  In this essay, we fisrt talk about the architecture of linux and android.

  1、linux

  If you have got some brief reading about  《Linux Kernel Development》 or 《Linux Device Driver》, you would know the Linux Kernel working to change device to files and managering them in schedules.

  In this picture, you can see how linux kernel contribute to the operating system.

  2、Android

  TIPS : more ditals check the following website

http://elinux.org/Android_Architecture

  This picture shows how the android working.

  In an original linux operating system, C is the basic language to the kernel space and user space.

  But it's different in android, android is working on the dalvik vitural machine and JAVA framework.

  Here is another picture to show android's architeture :

  TIPS : more ditals check the following website

https://source.android.com/devices/index.html

  We can get more messanges about how android communicate with linux kernel from this picture.

  Acturely, the "Linux Kernel" in the picture means "Linux Device driver".

  In this architeture, linux device drivers do not working like what they do in a linux operating system.

  Because google want to hide the platform and device codes from kernel space againsting "GPL".

  So they provide the business-related codes in "Hardware Abstraction layer (HAL)" to replace kernel device driver, and the remaining device drivers just use data offer by HAL to communicate with I/O memory.

  It seems good that android works in this architeture, but it hurts the principle in linux "GPL" and that's why android trees were delete from linux kernel codes.

ok6410 android driver(10)的更多相关文章

  1. ok6410 android driver(7)

    This article talk about how to test device driver on JNI. There are two ways to test the device driv ...

  2. ok6410 android driver(5)

    Test the android driver by JNI (Java Native Interface), In the third article, we know how to compile ...

  3. ok6410 android driver(11)

    This essay, I go to a deeply studying to android HAL device driver program. According to the android ...

  4. ok6410 android driver(9)

    In this essay, I will write the JNI to test our leds device. If you don't know how to create a jni p ...

  5. ok6410 android driver(8)

    In the past, we know how to create and run a simple character device driver on pc, goldfish and ok64 ...

  6. ok6410 android driver(3)

    This article discusses the Makefile and how to port the module to different platform (localhost and ...

  7. ok6410 android driver(12)

    In this essay, I will talk about how to write the service libraries. TIPS : I won't discuss the name ...

  8. ok6410 android driver(6)

    This is a short essay about the mistakes in compiling ok6410 android-2.3 source codes. If there is n ...

  9. ok6410 android driver(1)

    target system : Android (OK6410) host system : Debian Wheezy AMD64 1.Set up android system in ok6410 ...

随机推荐

  1. 【Vegas原创】vlookup的使用方法

    情景: 1,当月移动话单,没有姓名,只有手机号码:(用户费用sheet) 2,IT部自己整理的手机号历史记录,有姓名,有手机号码:(历史信息sheet) 3,要求:需要从历史记录中,透视出当月所有手机 ...

  2. Form 表单中的Input元素回车时不保存表单

    在Form表单中如果直接在Input元素里敲回车键,那么默认将提交表单,可以通过keydown事件取消默认此操作 $("form").live('keydown',function ...

  3. iphone/ipad/ipod设置VPN(pptp连接方式)

    一.点击桌面上的-设置-图标进入设置(如图) 二.点击-通用-进入通用设置 三.点击-VPN-进入VPN设置(如图) 四.点击添加VPN设置进行设置 五.选择并连接

  4. Scala 深入浅出实战经典 第44讲: scala中view bounds代码实例

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  5. HTTP - GET和POST的区别

    网上有很多文章介绍这两种HTTP请求的区别,我也不懂,主要还是看了一些文章,在这里写下一些笔记. 语义不同 在HTTP协议中,最初规定GET是用来查询或者获取资料,只读,POST用于修改数据,可写.因 ...

  6. 画六边形-mat

    %% theta = linspace(0,2*pi,7); D=2; %边长 X=1; %中心横坐标 Y=2; %中心纵坐标 plot(D*cos(theta)+X,D*sin(theta) + Y ...

  7. 高吞吐量的分布式发布订阅消息系统Kafka--spring-integration-kafka的应用

    一.概述 Spring Integration Kafka 是基于 Apache Kafka 和Spring Integration来集成Kafka,对开发配置提供了方便. 二.配置 1.spring ...

  8. 调用CXF工具 生成 WSDL【转】

    在做WebService的时候,生成WSDL是必不可少的一步.我们通常使用的工具就是Axis和CXF. CXF提供了一个命令行工具,可以通过命令来生成Java to WSDL,也可以由WSDL生成Ja ...

  9. ARM Linux启动代码分析

    前言 在学习.分析之前首先要弄明白一个问题:为什么要分析启动代码? 因为启动代码绝大部分都是用汇编语言写的,对于没学过或者不熟悉汇编语言的同学确实有一定难度,但是如果你想真正深入地学习Linux,那么 ...

  10. python load mat 并按变量名赋值

    import numpy as np import scipy.io as io creat = locals() tmp = io.loadmat("all.mat") for ...