Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Android硬件抽象层(HAL)概要介绍和学习计划

Android硬件抽象层(HAL)概要介绍和学习计划

Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,是可以的,然而从商业的角度来看,把对硬件的支持逻辑都放在内核...
在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序

在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序

在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简要介绍了在Android系统为为硬件编写驱动程序的方法。简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中。接着,在Ubuntu上为Android系统编写Linux内核驱动程序一文中举例子说明了如何在Linux内核编写驱动程序。在这一篇文章中,我们将继续介绍Android系统硬件驱动程序的另一方面实现,即如何在硬件抽象层中增加硬件模块来和内核驱动程序交...
在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口

在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口

在上两篇文章中(http://www.linuxidc.com/Linux/2011-07/38978.htm与 http://www.linuxidc.com/Linux/2011-07/38980.htm),我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提...
在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务

在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务

在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行。今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两个系统上有着丰富多彩的各种应用软件。因此,软件和硬件的关系,在一定程度上可以说,硬件是为软件服务的。硬件工程师研发出一款硬件设备,自然少了软件工程师为其编写驱动程序;而驱动程序的最终目的,是为了使得最上层的应用程序能够使用这些硬件提供的服务来为用户提供软件功能。对Android系统上的应用软件来说,就是要在系统的Ap...
在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务

在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务

我们在Android系统增加硬件服务的目的是为了让应用层的APP能够通过Java接口来访问硬件服务。那么, APP如何通过Java接口来访问Application Frameworks层提供的硬件服务呢?在这一篇文章中,我们将在Android系统的应用层增加一个内置的应用程序,这个内置的应用程序通过ServiceManager接口获取指定的服务,然后通过这个服务来获得硬件服务。一. 参照在Ubuntu上为Android系统的Application Fram...
浅谈Android系统开发中LOG的使用

浅谈Android系统开发中LOG的使用

在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。在Android系统中,提供了简单、便利的LOG机制,开发人员可以方便地使用。在这一篇文章中,我们简单介绍在Android内核空间和用户空间中LOG的使用和查看方法。 一. 内核开发时LOG的使用。Android内核是基于Linux Kerne 2.36的,因此,Linux Kernel的LOG机制同样适合于Android内核,它就是有名的...
制作可独立分发的Android模拟器

制作可独立分发的Android模拟器

如果我们编写了一个Android应用程序,想在一台没有Android SDK或者BUILD环境的机器显示给别人看,应该怎么办呢?通常,我们开发Android应用程序的时候,都是使用模拟器来运行程序,要么是SDK环境下,要么是在源代码BUILD环境下使用。在SDK环境下,结合Eclipse和ADT,使用模拟器很方便,而BUILD环境下,也是很简单地使用emulator命令就可以了,具体可以参考在Ubuntu上下载、编译和安装Android最新源代码一文。这篇...
一款Android上小游戏--交互式人机对战五子棋

一款Android上小游戏--交互式人机对战五子棋

学习Android系统开发之余,编写了一个小游戏--交互式人机对战五子棋,自娱自乐。之所以称之为交互式人机对战五子棋,一是因为在进入人机对战模式这前,你可以任意设置好开局,同时,在对战过程中,你可以看到机器的思考过程,还可以标识出每一个落子点的优劣势;二是因为可以为机器增加游戏经验,使得机器越来越聪明。希望喜欢五子棋的同学能够喜欢,同时,它也非常适合入门级练习。首先展示一下这款五子棋的主界面,由于自娱自乐的小游戏,界面还是比较简陋,达不到产品发布的效果,见...
Android日志系统驱动程序Logger源代码分析

Android日志系统驱动程序Logger源代码分析

我们知道,在Android系统中,提供了一个轻量级的日志系统,这个日志系统是以驱动程序的形式实现在内核空间的,而在用户空间分别提供了Java接口和C/C++接口来使用这个日志系统,取决于你编写的是Android应用程序还是系统组件。在前面的文章浅谈Android系统开发中LOG的使用中,已经简要地介绍了在Android应用程序开发中Log的使用方法,在这一篇文章中,我们将更进一步地分析Logger驱动程序的源代码,使得我们对Android日志系统有一个深刻...
Android日志系统Logcat源代码简要分析

Android日志系统Logcat源代码简要分析

在前面两篇文章Android日志系统驱动程序Logger源代码分析和Android应用程序框架层和系统运行库层日志系统源代码中,介绍了Android内核空间层、系统运行库层和应用程序框架层日志系统相关的源代码,其中,后一篇文章着重介绍了日志的写入操作。为了描述完整性,这篇文章着重介绍日志的读取操作,这就是我们在开发Android应用程序时,经常要用到日志查看工具Logcat了。Logcat工具内置在Android系统中,可以在主机上通过adb logcat...
Android应用程序框架层和系统运行库层日志系统源代码分析

Android应用程序框架层和系统运行库层日志系统源代码分析

在开发Android应用程序时,少不了使用Log来监控和调试程序的执行。在上一篇文章Android日志系统驱动程序Logger源代码分析中,我们分析了驱动程序Logger的源代码,在前面的文章浅谈Android系统开发中Log的使用一文,我们也简单介绍在应用程序中使Log的方法,在这篇文章中,我们将详细介绍Android应用程序框架层和系统运行库存层日志系统的源代码,使得我们可以更好地理解Android的日志系统的实现。我们在Android应用程序,一般是...
porting minicom移植 to S3C2440

porting minicom移植 to S3C2440

本以为网上应该有很多minicom成功移植的文档,找了一通才发现貌似网上还没有成功移植minicom的文档minicom需要ncurses库的支持arm-linux-gcc中并没有此库故需要交叉编译ncurses,否则出现很多头文件、库函数找不到。ncurses的交叉编译ncurses简单介绍:Ncurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库,我们熟悉的内核配置界面就是用此库函数编写的。本文要用到的相关文件nc...
QT透明窗体大杂烩

QT透明窗体大杂烩

1.窗口整体透明,但是窗体上的控件不透明。通过设置窗体的背景色来实现,将背景色设置为全透。QPalette pal = palette();pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));setPalette(pal);试验效果:窗体标题栏不透明;窗体客户区上的控件不透明,QLabel控件只是字显示,控件背景色透明;窗体客户区完全透明。另外从网上看到的方法:setAttribu...
Linux下消息队列性能比较(SVr4, POSIX, 信号量模拟消息队列)

Linux下消息队列性能比较(SVr4, POSIX, 信号量模拟消息队列)

比较内容:main中创建一个接收线程,总共发送5*1024*1024*1024 =5G的数据。发送5*1024*1024次,每次发送1024字节的数据。总共进行5次实验。 实验数据: SVr4 消息队列: 第一次:26.020s 第二次:26.283s 第三次:25.872s 第四次:25.857s 第五次:26.597s 平均:26.126s POSIX 消息队列: 第一次:25.273s 第二次:26.141s 第三次:25.214s 第四次:25.2...
Linux下配置Eclipse+PyDev 建立Python开发环境

Linux下配置Eclipse+PyDev 建立Python开发环境

一 关于Python、Eclipse、PyDevPythonPython([英语发音: /"pa?θɑn/, [DJ] 英语发音: /?paiθ?n/),是一种面向对象、直译式计算机程序设计语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它计算机程序设计语言不一样,它采用缩进来定义语句块。Python支持命令式编程、面向对象程序设计、函...
<< 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 >>