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

  

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

  1、linux

ok6410 android driver(10)

  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

ok6410 android driver(10)

  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 :

ok6410 android driver(10)

  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-relatedcodes in "Hardware Abstractionlayer (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.

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 用虚拟机装的linux与宿主机的IP能互ping
  2. 计算所有字符,包括linux中的空格
  3. Linux服务列表(CentOS)
  4. 【Linux】CentOS7上解压zip需要安装uzip
  5. libpcap丢包原理分析及Fedora 9 内核2.6.
  6. linux下启动、关闭oracle服务
  7. 如何在虚拟机中安装kali linux
  8. CentOS 7下配置IP地址
  9. 心中的完美的E680I[文字]
  10. zynq PS侧DMA驱动