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

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Python 脚本性能查看简单方式

Python 脚本性能查看简单方式

上帝说:“选择了脚本,就不要考虑性能。”我是很支持这句话的,使用脚本要的就是开发速度、良好的扩展性以及可维护性。可惜到了最后,我们的程序难免会运行得太慢,我们的客户不能忍受,这时候,我们就不得不考虑对代码的性能进行优化了。程序运行慢的原因有很多,比如存在太多的劣化代码(如在程序中存在大量的“.”操作符),但真正的原因往往是比较是一两段设计并不那么良好的不起眼的程序,比如对一序列元素进行自定义的类型转换等。因为程序性能影响是符合80/20法则的,即20%的代...
Java虚拟机学习笔记之class文件检验器

Java虚拟机学习笔记之class文件检验器

在编写java程序的时候,使用的API类不正确,引用的自定义类的包路径不正确以及定义的变量不存在或者不正确等等,在这个时候,对于Eclipse这样的IDE工具在保存的时候会显示错误,表示在.java文件编译成以.class时发生的编译错误而不能生产正确的class文件。但是正确的编译成class文件就一定可以了吗?当然对于我们这样的学习的朋友来说没什么问题,如果真在某些应用中,如果有的class文件需要从网络中获得class文件装载到虚拟机中运行。java...
在Ubuntu上为Android系统编写Linux内核驱动程序

在Ubuntu上为Android系统编写Linux内核驱动程序

在智能手机时代,每个品牌的手机都有自己的个性特点。正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了。据统计,截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达294738,紧随AppStore后面,并有望在8月份越过AppStore。随着Android系统逐步扩大市场占有率,终端设备的多样性亟需更多的移动开发人员的参与。据业内统计,An...
在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序

在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序

在前一篇文章http://www.linuxidc.com/Linux/2011-07/38977.htm中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序。在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系统文件/proc/hello和devfs系统属性文件/sys/class/hello/hello/val。进一步,还通过cat命令来...
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...
<< 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 >>