上一页 1 2 3 4 5 6 ··· 10 下一页

2012年2月13日

Linux进程间通信(IPC)之一——管道

摘要: 1 管道(Pipe) 管道是UNIX系统IPC的最古老的形式,并且所有的Unix系统都提供这种通信机制,当然也包括Linux。这样利用管道进行IPC管道具有如下限制:1、历史原因造成管道是半双工的,数据只能单向流动。如果想双向通信,必须要创建两个管道。2、管道通信双方必须有亲缘关系的进程之间(父子进程或者兄弟进程之间)。2 管道的创建#include <unistd.h>int pipe(int pipefd[2]); 经由pipefd参数返回两个文件描述符,pipefd[0]描述符用来读取管道中的数据,可以简称为管道的读端;pipefd[1]文件描述符用来向管道写入数据,简称为管 阅读全文

posted @ 2012-02-13 17:30 小小博客小小员 阅读(633) 评论(0) 推荐(0) 编辑

Linux下JNI实现

摘要: 最近研究Android,涉及到JNI调用。虽然我对Java语言有所了解,但是还没有接触过JNI。今天在Unix Center的Ubuntu上面用JNI实现了“经典”的“Hello world”程序。通过这个简单的程序把JNI的一些小知识进行一下总结。什么是JNI JNI是Java native interface的简写,可以译作Java原生接口。Java可以通过JNI调用C/C++的库,这对于那些对性能要求比较高的Java程序无疑是一个福音。 使用JNI也是有代价。大家都知道JAVA程序是运行在JVM之上的,可以做到平台无关。但是如果Java程序通过JNI调用了原生的代码(比如c/c++等), 阅读全文

posted @ 2012-02-13 17:30 小小博客小小员 阅读(3267) 评论(0) 推荐(0) 编辑

图像解码之三——giflib解码gif图片

摘要: 前面已经介绍过了libjpeg解码jpeg图片和libpng解码png图片,本文将会介绍怎样用giflib解码gif图片。giflib可以在这里下载。gif文件格式简单介绍 在解码jpeg图片和png图片的时候我们不需要对jpeg和png文件格式有了解就可以解码了(了解jpeg和png当然更好),但是在使用giflib解码gif的时候,我们必须要对gif文件有很简单的了解。 gif文件中可以存放一帧或者多帧图像数据,并且可以存放图像控制信息,因此可以存储动画图片。 gif文件由文件头开头,文件尾结尾,中间是一些连续的数据块(block)。这些数据块又分为图像数据块和扩展数据块(extensio 阅读全文

posted @ 2012-02-13 17:28 小小博客小小员 阅读(9281) 评论(0) 推荐(2) 编辑

图像解码之二——使用libpng解码png图片

摘要: 上文《图像解码之一——使用libjpeg解码jpeg图片》介绍了使用libjpeg解码jpeg图片。png图片应用也非常广泛,本文将会简单介绍怎样使用开源libpng库解码png图片。libpng的数据结构 png_structp变量是在libpng初始化的时候创建,由libpng库内部使用,代表libpng的是调用上下文,库的使用者不应该对这个变量进行访问。调用libpng的API的时候,需要把这个参数作为第一个参数传入。 png_infop变量,初始化完成libpng之后,可以从libpng中获得该类型变量指针。这个变量保存了png图片数据的信息,库的使用者可以修改和查阅该变量,比如:查. 阅读全文

posted @ 2012-02-13 17:27 小小博客小小员 阅读(19220) 评论(0) 推荐(3) 编辑

图像解码之一——使用libjpeg解码jpeg图片

摘要: 多媒体应用在现在电子产品中的地位越来越重要,尤其是在嵌入式设备中。本系列文章将会介绍利用libjpeg解码jpeg文件,libpng解码png文件,libgif解码gif文件。本文为第一篇,介绍使用libjpeg解码jpeg文件。libjpeg简介 libjpeg是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。这个库由独立JPEG工作组维护。最新版本号是6b,于1998年发布。可以参考维基百科关于libjpeg的介绍。libjpeg库的数据结构 用libjpeg库解码jpeg数据的时候,最重要的数据类型为struct jpeg_decompr 阅读全文

posted @ 2012-02-13 17:26 小小博客小小员 阅读(17032) 评论(2) 推荐(1) 编辑

(翻译)Android属性系统

摘要: 属性(property)系统对Android来说是一个重要的功能。他作为一个系统服务管理着系统的配置和状态,所有的这些系统配置和状态都是属性(property)。属性(property)是一对键/值(key/value)组合,键和值都是字符串类型。总体感觉属性系统非常像Windows的注册表的功能。Androd中非常多的应用程序和库直接或者间接的依赖于属性系统,并由此决定其运行期的行为。例如:adbd进程通过属性来决定是否当前运行在模拟器中。再比如:java.io.File.pathSeparator方法返回存储在属性服务中的值。属性系统怎样工作 属性系统宏观的结构图如下所示: 从图中我们可. 阅读全文

posted @ 2012-02-13 17:18 小小博客小小员 阅读(708) 评论(0) 推荐(0) 编辑

CSDN移动博文集锦之Android核心分析

摘要: 导读:对于Android开发者来说,成系列的技术文章对他们的技术成长帮助最大。如下是我们向您强烈推荐的主题为Android开发的第一个系列文章。文章皆来自CSDN网友maxleng的专栏,maxleng是名Android爱好者,长期从事嵌入式系统及手机软件系统研究,自2010年4月起,在CSDN上先后发表28篇《Android核心分析》系列博文,收到网友们的极高评价。《Android核心分析》整理如下:1. 方法论探讨之设计意图2. 方法论探讨之概念空间篇 3. 手机之硬件形态4. 手机的软件形态5. Android基本空间划分6. IPC框架分析(Binder,Service,Service 阅读全文

posted @ 2012-02-13 17:16 小小博客小小员 阅读(599) 评论(0) 推荐(0) 编辑

Android应用程序获得root权限

摘要: 我在博文《Android程序的安全系统》中提到两种让root权限的办法。最近在网上发现很多朋友转载那篇文章,但是对那篇文章中提到的第一种方法怎样实现,不是很明白。本文将会以一个例子实现来演示怎样让一个Android应用程序获得root权限。问题 我遇到的问题是我想在Java应用程序中动态mount一个NFS的系统,但是执行mount命令必须要要root权限才可以。一般情况下,在Android的Java层是不能获得root权限的。思路 我在博文《Android程序的安全系统》中提到两种思路:1、实现一个init实现一个Service,来帮助Android应用程序执行root权限的命令。 ... 阅读全文

posted @ 2012-02-13 17:12 小小博客小小员 阅读(14177) 评论(0) 推荐(4) 编辑

Android系统的Binder机制之四——系统Service

摘要: 前面我们已经介绍了Android Binder机制的Service Manager,Service对象代理1,Service对象代理2。本文将介绍一下Android机制的另外一个重要部分——系统Service。1、系统Service实例——Media server 首先我们先看一下Android一个实例Media Service,代码位于framework/base/media/mediaserver/main_mediaserver.cpp文件: 1: // System headers required for setgroups, etc. 2: #include <sys/t.. 阅读全文

posted @ 2012-02-13 17:11 小小博客小小员 阅读(691) 评论(0) 推荐(0) 编辑

Android系统的Binder机制之三——服务代理对象(2)

摘要: 上文《Android系统的Binder机制之二——服务代理对象(1)》我们学习了进程的C/C++层面的服务代理对象BpBinder,和Binder底层处理方式。本文我们将深入分析一下在进程的Java层面服务代理对象的创建和使用。Android进程的C/C++层面和Java层 Android中程序大部分都是java开发,底层通过JNI调用C/C++的代码。这样一个程序就分为了两个层面C/C++层面和Java层面。运行状态下,我们说它们都在一个进程之中,拥有相同的进程属性(UID,GID等等)。 Binder客户程序的C/C++层面的对象和原理我们在上文《Android系统的Binder机制之二— 阅读全文

posted @ 2012-02-13 17:08 小小博客小小员 阅读(496) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 10 下一页

导航