摘要: 本文转自:http://blog.csdn.net/linweig/article/details/5417319Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作1.从如何载入.so档案谈起由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Mach 阅读全文
posted @ 2013-01-08 14:33 zhgt 阅读(281) 评论(0) 推荐(0) 编辑
摘要: bionic,整个系统的基础类库,Android系统就是基于这个类库开发的,system,Android系统类库,基于bionic类库开发,包含工具类库(libcutils),LOG类库(liblog),压缩类库(libzipfile)类。主要功能有:一、完成Android初始化(init)。解析init.rc并开启系统初始化时需要加载的程序(parser.c),初始化设备(devices.c),开启属性服务(property_service.c)等。二、开启Android系统的一些基础服务。1、系统的设备服务(vold)。比如完成SD卡挂载、卸载管理,从内核处接收事件建立设备结点等。三、SH 阅读全文
posted @ 2013-01-04 16:43 zhgt 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 二、Root的介绍1.Root的目的可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等。2.Root的原理介绍谷歌的android系统管理员用户就叫做root,该帐户拥有整个系统至高无上的权利,它可以访问和修改你手机几乎所有的文件,只有root才具备最高级别的管理权限。我们root手机的过程也就是获得手机最高使用权限的过程。同时为了防止不良软件也取得root用户的权限,当我们在root的过程中,还会给系统装一个程序,用来作为运行提示,由用户来决定,是否给予最高权限。这个程序的名字叫做Superuser.apk。当某些程 阅读全文
posted @ 2013-01-04 14:39 zhgt 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 一、一般视频显示接口初始化所需要的参数众所周知,显示器显示的是二维的,处理器将视频数据通过显示接口行、地发送到显示器,每行中的每bit数据通过pclk(像素时钟)同步,每一行通过hsync(行同步时钟)来告诉显示器发完一行。当发完了一帧数据,通过vsync(场同步时钟)告诉显示器已经发完一帧。这些波形时序可以通过以前我写过的一篇《VGA视频信号详解》中的示波器的截图来体会。这些也是写视频显示和采集驱动的基础知识,你必须了解CPU与视频接口间的是数据格式。 由于早期CRT显示器在显示完一行或者一帧时都需要有一个消隐期来给电子束回到下一行起点或图像左上角起点的时间并避免图像的重影,数字视频的数据. 阅读全文
posted @ 2013-01-04 10:29 zhgt 阅读(1509) 评论(0) 推荐(0) 编辑
摘要: LCD 工作原理揭秘了解液晶 顾名思义,液晶显示器(Liquid Crystal Display,简称 LCD)就是使用了“液晶”(Liquid Crystal)作为材料的显示器,那什么是液晶呢?其实,液晶是一种介于固态和液态之间的物质,当被加热时,它会呈现透明的液态,而冷却的时候又会结晶成混乱的固态,液晶是具有规则性分子排列的有机化合物。液晶按照分子结构排列的不同分为三种:类似粘土状的 Smectic 液晶、类似细火柴棒的 Nematic液晶、类似胆固醇状的 Cholestic 液晶。这三种液晶的物理特性都不尽相同,用于液晶显示器的是第二类的 Semitic 液晶,分子都是长棒状的,在自然. 阅读全文
posted @ 2012-12-26 17:33 zhgt 阅读(3113) 评论(0) 推荐(0) 编辑
摘要: 在Linux中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(Event Handler)组成。其中设备驱动层提供对硬件各寄存器的读写访问和将底层硬件对用户输入访问的响应转换为标准的输入事件,再通过核心层提交给事件处理层;而核心层对下提供了设备驱动层的编程接口,对上又提供了事件处理层的编程接口;而事件处理层就为我们用户空间的应用程序提供了统一访问设备的接口和驱动层提交来的事件处理。所以这使得我们输入设备的驱动部分不在用关心对设备文件的操作,而是要关心对各硬件寄存器的操作和提交的输入事件。各层之间通信的基本单位就是事件,任何一个输入设备的动作 阅读全文
posted @ 2012-11-13 14:44 zhgt 阅读(711) 评论(0) 推荐(0) 编辑
摘要: [本文转自:http://blog.csdn.net/gdt_a20]内核的开发者将总线,设备,驱动这三者用软件思想抽象了出来,巧妙的建立了其间的关系,使之更形象化。结合前面所学的知识,总的来说其三者间的关系为bus有两条链表,分别用于挂接设备和驱动,指定了其自身bus的device或者driver最后都会分别连接到对应bus的这两条链表上,而总线又有其始端,为bus_kset,一个driver可以对应于几个设备,因此driver同样有其设备链表,用于挂接可以操作的设备,其自身也有bus挂接点,用于将自身挂接到对应bus(每个driver只属于一条总线),而对于device,一个设备只属于一条 阅读全文
posted @ 2012-11-12 16:58 zhgt 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 最近将Android touchscreen virtualkey驱动,向上层report keyvalue 改成 向上层report X,Y的坐标值。对sysfs文件系统进行了一番研究。virtualkey 是基于sysfs文件系统实现的。上层要想访问到virtualkey,必须在sys下面实现这样的文件结点:/sys/board_properties/virtualkeys.{deviceName}virtualkey的实现方式为什么必须基于sysfs文件结点,这个是由上层的调用决定的。在frameworks层,InputManger.java这个函数里定义了上层是怎么访问virtualk 阅读全文
posted @ 2012-10-27 14:30 zhgt 阅读(7082) 评论(1) 推荐(1) 编辑
摘要: linux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。 一、devfs devfs是在2.4内核就出现了,它是用来解决linux中设备管理混乱的问题,你查看一下/dev下的设备文件就知道其中有许多是空的(也就是没有对应的硬件的),但是它们却必须存在,所以这给linux设备管理带来了很多麻烦,为了解决这个问题,linux内核开发人员开发了devfs,并用一个守护进程devfsd来做一些与以前硬件驱动兼容的事情。 devfs和sysfs都是和proc一样,是一个虚拟的文件系统,向devfs注册的驱动程序,devfs将会在/dev下建立相应的设备文件;但是为... 阅读全文
posted @ 2012-10-26 17:38 zhgt 阅读(7437) 评论(0) 推荐(0) 编辑
摘要: android的原理,不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了.安卓Android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系.如果你知道java,就能更清楚这机制了.其实和java的垃圾回收机制类似,系统有一个规则来回收内存.进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西.当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊.但事实上他并不影响速度.相反加快了下次启动应用的速度.这本来就是安卓Android标榜的优势之一,如果人为去关闭进程,没有太大必要.特别是自动关进程的软件. 到这里有人会说了,那为 阅读全文
posted @ 2012-10-26 13:43 zhgt 阅读(208) 评论(0) 推荐(0) 编辑