- 博客(29)
- 资源 (4)
- 收藏
- 关注
转载 Android启动脚本init.rc分析
在 Android中使用启动脚本init.rc,可以在系统的初始化过程中进行一些简单的初始化操作。这个脚本被直接安装到目标系统的根文件系统中,被 init可执行程序解析。 init.rc是在init启动后被执行的启动脚本,其语法主要包含了以下内容:Commands:命令Actions: 动作Triggers:触发条件Services:服务Options: 选项
2012-06-19 11:12:52 1042
原创 Android.mk 杂乱分析
开头参考过:http://www.cnblogs.com/langlang/ hardware\led\led\Android.mkLOCAL_PATH := $(call my-dir){ 首先需要指定LOCAL_PATH变量,用于查找源文件 上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径}#Android
2012-06-14 13:06:34 3911
转载 epoll_create, epoll_ctl和epoll_wait
名词解释:man epoll之后,得到如下结果: NAME epoll - I/O event notification facility SYNOPSIS #include DEscrīptION epoll is a variant of poll(2) that can be used either as Edg
2012-06-11 14:01:48 675
原创 linux为什么要引入平台驱动
linux简单字符驱动很简单,只需要在初始化时对物理地址进行映射,再注册一个fileopenration操作集,然后就和写裸机程序一样实现操作集就可以了。问题一:为什么要进行物理地址到虚拟地址的映射? 因为引入了MMU内存管理,只允许用户操作虚拟地址。问题二:为什么要引入MMU,而不让用户直接操作物理地址?因为内存管理非常复杂,主要是为了安全考虑。假如:
2012-06-07 11:02:54 2001 2
转载 Android Launcher-------Launcher为何物,究竟是干什么的?
在上一节,我讲了如何下载Launcher的教程,今天这一节,我将重点讲一下什么Launcher,究竟它是什么神秘东东?Launcher俗称HomeScreen,也就是我们启动Android手机,第一眼看到的应用程序,而这个应用程序是比较特殊而且任务艰巨的。它负责了我们除了应用本身操作以外的所有操作,它负责了我们有几个桌面,点击应用图标启动应用程序,长时间按桌面出现上下文菜单,长时间按桌
2012-06-07 10:45:14 1905 1
转载 Android"重力加速度传感器"从驱动到应用层全程分析
1. 体系结构2. 数据结构3. 四大函数本文以重力感应器装置G-sensor为例探索Android的各层次结构。1. 体系结构 Android的体系结构可分为4个层次。 第一层次 底层驱动层,包括标准Linux,Android核心驱动,Android相关设备驱动,G-sensor的设备驱动程序即存在于此第二层次 Android标准C/C++库,
2012-06-07 10:41:16 2496 4
转载 GPS NMEA-0183协议详解
NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。NMEA-0183协议是GPS接收机应
2012-06-06 15:40:48 838
转载 pthread_create(linux下C语言多线程)
下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码:/*thread_example.c : c multiple thread programming in linux *author : falcon *E-mail : tunzhj03@st.lzu.edu.c
2012-06-06 15:38:57 2383
转载 c++的thread类(c++线程简单用法)
最近看了一个Thread类(忘记在哪里看的了),感觉不错。创建线程时线程对应的函数必须是类的静态成员,由于静态成员无法访问类的非静态成员,我从前都是把对象的指针作为参数传递给线程函数来避免这个问题,但是在逻辑上线程函数还需要访问对象的私有成员,总是感觉代码很不优雅。这个Thread类同java中的Thread类在用法上比较类似,使用一种比较优雅的方法避免了上面的问题。使用时只要从Thread派
2012-06-06 15:37:49 9203
原创 eclipse导出/导入jar包
1、在你所建工程的src目录路径下添加META-INF/MANIFEST.MF如: 2、在MANIFEST.MF这个文件加入下面一句话:Manifest-Version: 1.0 3、选择file/export 4. java/JAR file (然后next) 5. 选择你要导出的文件(只要导出要被调用的接口函数文件
2012-06-06 15:36:17 2334 1
原创 Android Eclipse JNI 调用 .so文件加载问题
背景:对于Android工程 Eclipse里编译好的.so文件放到 libs\armeabi下以后, 这样.so文件就可以打包到apk文件里,在apk装到手机上以后 在libs\armeabi下的.so文件应该就会解压到/data/data/这里是你project的包名(比如com.first.second)/lib下。问题:写了个测试的android JNI app,.so已经放到了
2012-06-06 15:31:49 1217
转载 Android 在JNI中执行Java方法--C/C++调用Java
一、 在JNI中执行Java方法class AndroidJniDemo {private native void executeMethod();private void show() {System.out.println("Java cwj print"); //执行了show方法后打印java层的输出}public static void main(String
2012-06-06 15:30:21 903
转载 Android系统编译过程分析
一、Makefile的主要流程以下主要流程都在build/core/main.mk里安排。初始化相关的参数设置(buildspec.mk、envsetup.mk、config.mk)检测编译环境和目标环境决定目标product读取product的配置信息及目标平台信息清除输出目录检查版本号读取Board的配置读取所有Module的配置根据配置产生必要的规则(build/core/Mak
2012-06-06 15:27:08 1124
转载 JNI实现回调| JNI调用JAVA函数|参数和返回值的格式
一、JNI实现回调通过JNI在Native层调用JAVA层的方法,来实现Native层向JAVA层传递消息。JNICallback.java[java] view plaincopypublic class JNICallback extends Activity { static { System
2012-06-06 15:16:48 1947
转载 jni的JNIEnv指针和jobject指针
当JVM调用该函数时,它传递了一个JNIEnv指针、一个jobject指针和通过Java方法定义的Java参数,JNI函数的形式如下:更加正式的解释是这样的,本地代码通过调用JNI的函数来访问JVM,这是通过一个界面指针实现的(界面指针实际上是指向指针的指针),该指针指向一个指针数组,数组中的每个指针都指向了一个界面函数,而每个界面函数都是在数组中预先定义过的。 Ja
2012-06-06 15:10:40 6939 2
原创 Javah生成JNI头文件
在eclipse中建一项目,建一classpackage com.led;public class test { public static native void open();public static native void ioctrl(int test);}保存后会自动生成class类文件。即:test.class设置环境变量(
2012-06-06 15:09:46 1274
转载 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行。今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两个系统上有着丰富多彩的各种应用软件。因此,软件和硬件的关系,在一定程度上可以说,硬件是为软件服务的。硬件工程师研发出一款硬件设备,自然少了软件工程师为其编写驱动程序;而驱动程序的最终目的,是为了使得最上层的应用程序能够使用这些硬件提供的服务来为用户提供软件功
2012-06-06 14:59:37 471
转载 在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务。我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那么,Java接口如何去访问
2012-06-06 14:58:58 448
转载 在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
http://blog.csdn.net/luoshengyang/article/details/6573809在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简要介绍了在Android系统为为硬件编写驱动程序的方法。简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中。接着,在Ubuntu上为Android系统编写Linux内核驱动程序
2012-06-06 14:57:59 488
转载 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序
在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序。在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系统文件/proc/hello和devfs系统属性文件/sys/class/hello/hello/val。进一步,还通过cat命令来直接访问/proc/hello和/
2012-06-06 14:56:41 454
转载 在Ubuntu上为Android系统编写Linux内核驱动程序
http://blog.csdn.net/luoshengyang/article/details/6568411在智能手机时代,每个品牌的手机都有自己的个性特点。正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了。据统计,截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达2
2012-06-06 14:55:35 385
转载 Android硬件抽象层(HAL)概要介绍和学习计划
http://blog.csdn.net/Luoshengyang/article/details/6567257Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱
2012-06-06 14:51:53 427
转载 Android GPS架构分析<二>
Android GPS架构分析转载时请注明出处和作者http://www.eefocus.com/chongzi865458/blog/11-10/232233_27807.html#articletop-------------------------------------------------------------------- 介绍完了主体代码结构以及重要的
2012-06-06 14:43:17 1917
转载 Android GPS架构分析<一>
--------------------------------------------------------- 首先来看看GPS模块的代码结构:Framework:1.frameworks/base/location/java/android/location这里主要是用来被App调用的,API包是android.location。2.fra
2012-06-06 14:36:33 1727
原创 apk文件编译到系统文件中的方法
把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法: 1 (1)源码编译后,把apk拷贝到out\target\product\generic\system\app中。 (2) 执行命令make snod , 把添加的spk编到system.img 中 缺点:执行make clean 后,再次make 完毕需要重新执行上面操作。 2 "方
2012-06-06 07:40:02 700
原创 eclipse快速加入android全部源码
0.先make整个android源码1.新建Java Project(不是Android project,否则会破坏android源码)2.打开刚才新建的工程目录,复制.project文件到andorid源代码目录下(比如android2.33目录下)3.复制android2.33/development/ide/eclipse/.classpath文件到android2.33目录下
2012-06-06 07:17:58 1412
转载 USB OTG(On-The-Go)技术概述
USB OTG(On-The-Go)技术概述[USB 2.0规范] 摘要:USB OTG(On-The-Go)是USB 2.0规范的补充,它使外设可以在无主机参与的情况下直接互连进行通信工程.本文讨论了USB OTG补充规范的新增特性,包括OTG事务请求协议SRP和主机流通协议HNP、连接器和电缆、两用OTG设备和外设式OTG设备、驱动程序以及数据流模型。关键词:USB 2.0
2012-06-05 16:33:44 2173
原创 linux中断响应和处理过程分析
linux中断响应和处理过程:首先中断属于异常的一种。异常,就是可以打断CPU正常运行流程的一些事情,比如说外部中断,未定义的指定,试图修改只读数据,执行SWI指定(software interrupt instructin,软件中断指令,比如说上层调用sys_read,sys_write就会产生swi)等。内核启动时在start_kernel函数(init/main.c)中调用trap_
2012-06-01 17:28:30 3540 1
转载 linux平台驱动与平台设备的实现
首先介绍一下注册一个驱动的步骤:1、定义一个platform_driver结构2、初始化这个结构,指定其probe、remove等函数,并初始化其中的driver变量3、实现其probe、remove等函数看platform_driver结构,定义于include/linux/platform_device.h文件中:struct platform_driv
2012-06-01 17:24:27 762
mini2440全套裸机程序(MDK 运行)
2011-05-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人