摘要: ARM有16个32位的寄存器(r0到r15)。r15充当程序寄存器PC,r14(link register)存储子程序的返回地址,r13存储的是堆栈地址。ARM有一个当前程序状态寄存器:CPSR。一些寄存器(r13,r14)在异常发生时会产生新的instances,比如IRQ处理器模式,这时处理器使用r13_irq和r14_irqARM的子程序调用是很快的,因为子程序的返回地址不需要存放在堆栈中。1、 ARM处理器共有37个寄存器,其中包括:i. 31个通用寄存器,包括程序计数器(PC)在内。都是32位寄存器ii. 6个状态寄存器,都是32位寄存器,但目前只使用了其中12位2、 ARM处理器有 阅读全文
posted @ 2013-11-07 16:27 Salesforce 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 文件系统基本介绍proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。目录结构目录名称 目录内容apm 高级电源管理信息cmdline 内核命令行Cpuinfo 关于Cpu信息Devices 可以用到的设备(块设备/字符设备)Dma Used DMS channelsFilesystems 支持的文件系统Interrupt... 阅读全文
posted @ 2013-10-12 16:41 Salesforce 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 第一次使用adb之前,需要在home/.android里新建adb_usb.ini文件:0x1782.注:adb已在安装系统后装好,手机要处于开机状态查看设备命令:$ adb devices正常情况下会出现如下内容List of devices attached19761202 device如果出现List of devices attached???????? no permissions请输入如下命令解决:$ sudo adb kill-server$ sudo adb start-server如果设备显示出来List of devices attached请点击手机设置-应用程序-开发- 阅读全文
posted @ 2013-10-12 16:20 Salesforce 阅读(833) 评论(0) 推荐(0) 编辑
摘要: Android provides a default Bluetooth stack, BlueDroid, that is divided into two layers: The Bluetooth Embedded System (BTE), which implements the core Bluetooth functionality and the Bluetooth Application Layer (BTA), which communicates with Android framework applications. A Bluetooth system service 阅读全文
posted @ 2013-09-24 15:20 Salesforce 阅读(897) 评论(0) 推荐(0) 编辑
摘要: 一、Android Bluetooth现状(1)Android2.2版 支持的蓝牙核心版本是Bluetooth 2.0 + EDR。(2)Android 的蓝牙 使用了BlueZ协议栈,但只实现了Handset/Handfree和A2DP/AVRCP等Profile。(一些常用的Profile(如HID/DUN/SPP/OPP/FTP/PAN等)在现在的Android2.2版中并没有实现。需要自己在Android中实现Profile)。(3)目前版本(Android2.2) 只支持 绑定设备(bonded devices)之间通信,而不支持ad-hoc网络通信。(4)目前版本(Android2 阅读全文
posted @ 2013-09-24 14:45 Salesforce 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 查看当前android代码版本号:build/core/version_defaults.mk---->查找platform_versionandroid源码在线阅读网址http://androidxref.com/。:http://code.metager.de/source/xref/android/官网:http://source.android.com/devices/camera.html#implementing 阅读全文
posted @ 2013-09-24 10:43 Salesforce 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 经常会在android的framework代码中发现sp和wp这样的指针,平时看的时候都把他当成一个普通的指针封装过掉了,这几天终于忍不住了,想深入了解一下。相关的代码:frameworks/base/include/utils/RefBase.hframeworks/base/libs/utils/RefBase.cppsp和wp都是一个模板类,看一下sp类的定义:[cpp] view plaincopytemplateclasssp{public:typedeftypenameRefBase::weakref_typeweakref_type;inlinesp():m_ptr(0){}sp 阅读全文
posted @ 2013-09-11 14:36 Salesforce 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 1.Camera架构包括客户端和服务端,他们之间的通信采用Binder机制实现。Camera的实现主要包括本地代码和Java代码两个层次:Camera本地框架:frameworks/native/include/uiframeworks/native/libs/uiframeworks/av/camera/Camera的本地实现包含在上述目录中,这部分内容被编译生成库libui.so和libcamera_client.so。Camera服务部分:frameworks/av/services/camera/libcameraservice这部分编译生成libcameraservice.so。Ca 阅读全文
posted @ 2013-09-09 16:45 Salesforce 阅读(457) 评论(0) 推荐(0) 编辑
摘要: Android Camera Module Architecture and Bottom layer communication mechanism -----------albertChenAndroid应用程序编程语言是JAVA,而linux的很多服务程序,包括一些libraries都是用c 或者c++写的,应用程序使用什么样的机制去调用这些系统函数的呢?Java的虚拟机可以通过 System.loadLibrary 来加载本地库,也可以通过JNI函数 RegisterNatives来注册与类相关联的本地方法。在Android中对于一些底层平台相关的native函数大多采用注册关联的方. 阅读全文
posted @ 2013-09-04 16:22 Salesforce 阅读(1329) 评论(0) 推荐(0) 编辑
摘要: AndroidCamera 采用C/S架构,client 与server两个独立的线程之间使用Binder通信,这已经是众所周知的了。这里将介绍Camera从设备开机,到进入相机应用是如何完成初始化工作的。首先既然Camera是利用binder通信,它肯定要将它的service注册到ServiceManager里面,以备后续Client引用,那么这一步是在哪里进行的呢?细心的人会发现,在frameworks\base\media\mediaserver\Main_MediaServer.cpp下有个main函数,可以用来注册媒体服务。没错就是在这里,CameraService完成了服务的注册i 阅读全文
posted @ 2013-09-04 15:48 Salesforce 阅读(548) 评论(0) 推荐(0) 编辑