文章分类 -  android

android相关
摘要:初探android的Camera和Matrix 转载:http://blog.csdn.net/imyfriend/article/details/8045973camera的坐标系是左手坐标系。伸出左手,让拇指和食指成L形,大拇指向右,食指向上,中指指向前方,这样我们就建立了一个左手坐标系,拇指,食指,中指的指向分别代表了x,y,z轴的正方向。如下图所示:下面是一些细节点:1,camera位于坐标点(0,0),也就是视图的左上角;2,camera.translate(10, 20, 30)的意思是把观察物体右移10,上移20,向前移30(即让物体远离camera,这样物体将会变小);3,ca 阅读全文
posted @ 2013-09-26 22:50 云翔世界 阅读(204) 评论(0) 推荐(0)
摘要:Android 产品中,内核格式是Linux标准的zImage,根文件系统采用ramdisk格式。这两者在Android下是直接合并在一起取名为boot.img,会放在一个独立分区当中。这个分区格式是Android自行制定的格式。Android开发时,最标准的做法是重新编译于内核和根文件系统,然后调用Android给的命令行文件mkbootimg(out/host/linux-x86/bin/)来打包。在制作手机ROM时,有时会单独编译内核或抽出根文件进行修改内容,比如我只编译内核,其余的地方不变。这样重新安装巨大的Android开发环境实在不划算。因此很多boot.img解包工具被人开发出来 阅读全文
posted @ 2013-06-01 09:33 云翔世界 阅读(1850) 评论(0) 推荐(0)
摘要:android开发---解压system.img 2012-12-28 16:46:17分类: Android平台转载:http://blog.chinaunix.net/uid-26009923-id-3454597.html1. android 编译完成之后会生生一个 system.img,要想解压system.img需要知道system.img是如何打包生成的,这个好像没有工具可以查看system.img的格式,只能一个个的试。我试了一下unyaffs与unyaffs2都不能解压,最后才发现这个system.img是ext4打包的,用simg2img就ok了!下载ext4_utilsht 阅读全文
posted @ 2013-06-01 09:09 云翔世界 阅读(556) 评论(0) 推荐(0)
摘要:Androidkernel 启动后执行Init 初始化,代码在system/core/init 中。- 创建/dev /proc /sys 目录,创建/dev/pts 目录( 伪终端) 和/dev/socket ,并分别mount- 创建空设备节点,创建kmsg 设备节点,初始化log- 解析init.rc- 读取保存在/proc/cmdline 中的kernel 启动参数: - qemu - androidboot.console - androidboot.mode - factory - factory2 - androidboot.serialno- androidboot.baseb 阅读全文
posted @ 2012-12-03 17:51 云翔世界 阅读(165) 评论(0) 推荐(0)
摘要:在Android中的基本的框架图是:在android的手机中可以看到如上的分布R,G,B三色LED,button-backlight,keyboard-backlight,lcd-backlight,torch-flash。而这里的spotlight则要根据你具体的外设看有没有了。转载于:http://blog.csdn.net/skywalkzf/article/details/7543901 阅读全文
posted @ 2012-11-17 20:24 云翔世界 阅读(142) 评论(0) 推荐(0)
摘要:转载:http://blog.csdn.net/qianjin0703/article/details/7568641曾几何时,本人写了一篇Android传感器初探"惊艳整个篮球场"...一转眼两年过去了,真是物逝人非,技术更新的快啊,如今都已经4.0巧克力冰激凌了...0. 总论本文希望分别从动态角度(应用程序进程)以及静态角度(框架体系架构)两方面来理解传感器系统。1. 上层应用从编写应用程序的角度来看,比较简单,大体分如下4步,便可得到一个传感器实时上报的数值并作处理,1) 得到传感器服务getSystemService(SENSOR_SERVICE);得到一个Sen 阅读全文
posted @ 2012-09-20 07:55 云翔世界 阅读(185) 评论(0) 推荐(0)
摘要:1 总体调用关系图Sensor 框架分为三个层次,客户度、服务端、HAL层,服务端负责从HAL读取数据,并将数据写到管道中,客户端通过管道读取服务端数据。下面简单解释类的功能1.1客户端主要类nSensorManager.java从android4.1开始,把SensorManager定义为一个抽象类,定义了一些主要的方法,类主要是应用层直接使用的类,提供给应用层的接口nSystemSensorManager.java继承于SensorManager,客户端消息处理的实体,应用程序通过获取其实例,并注册监听接口,获取sensor数据nsensorEventListener接口用于注册监听的接口 阅读全文
posted @ 2012-09-19 23:13 云翔世界 阅读(349) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/lizhiguo0532/article/details/7219349 最近为java层将一个静态库通过jni层封装成了一个动态库工他们调用,遇到了一些编译上的疑惑,所以索性将其彻底搞清楚算了,免得以后误事。 下面的图片列出了所有相关文件,可以看到引用静态库的文件是com_xxx.cpp文件,而.a文件是放在lib目录下的libHWRecog.a,而库提供出来的头文件在include下的两个.h文件。 源码文件写好了之后,首先就是要编译通过吧,这里有两个方案来写mk文件:第一种采用类似c/c++的编译方式:直接指定库名字;第二种采用android的. 阅读全文
posted @ 2012-09-18 06:53 云翔世界 阅读(892) 评论(0) 推荐(0)
摘要:LOCAL_CFLAGS定义宏,如“LOCAL_CFLAGS += -DSK_SOFTWARE_FLOAT”和#define SK_SOFTWARE_FLOAT功能相同。LOCAL_LDFLAGS引用外部静态库,例:LOCAL_LDFLAGS += lib/libft2.a 阅读全文
posted @ 2012-09-17 22:35 云翔世界 阅读(146) 评论(0) 推荐(1)
摘要:在Android C/C++层添加LOG调试(LOGI\LOGD\LOGE...)输出支持分类:Android2011-10-28 20:16137人阅读评论(0)收藏举报最 近在研究Android 2.3.3源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成LOGI、LOGV、LOGW、LOGE也没有效果。于是在网上查找解决方法,经过几次试验,终于找到了,现在贴到下面备忘:第一步:在对应的mk文件中加入:LOCAL_LDLIBS:= -llog第二步:在要使用LOG的cpp文件中加 阅读全文
posted @ 2012-09-17 21:55 云翔世界 阅读(836) 评论(0) 推荐(0)
摘要:如何在android native编程中使用logCatAndroid NDK发布后,java+C的编程方式成为android上性能编程的首选。但在C中调试困难,因此能使用logcat成为必须的要求。关于在Native代码中使用logcat,网上有很多说法,大部分有所欠缺,有的根本是错的。要使用logcat,首先在代码中要引入 log的头文件。#include <android/log.h>然后你可以简单的通过__android_log_write(ANDROID_LOG_ERROR,"Tag","Message"); 方法向logcat输出 阅读全文
posted @ 2012-09-17 21:53 云翔世界 阅读(140) 评论(0) 推荐(0)
摘要:android编译系统的makefile文件Android.mk写法如下(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。(2)Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始以include $(BUILD_XXX)结束。include $(CLEAR_VARS)CLEAR_VARS由编译系统提 阅读全文
posted @ 2012-09-02 16:29 云翔世界 阅读(184) 评论(0) 推荐(0)
摘要:之前这篇,从整体展示了 android 的整个启动流程,为了搞清楚 android 启动到底在代码层面上是如何调用的,将从源代码角度去分析,另所有代码基于 android 4.0 source tree all story begin with the init process startup 故事从 init 进程启动开始init 运行,代码:system/core/init ,入口:system/core/init/init.c main 函数: 1 int main(int argc, char **argv){ 2 3 ... 4 // 初始化文件系统 ... 阅读全文
posted @ 2012-08-29 21:49 云翔世界 阅读(611) 评论(0) 推荐(0)
摘要:声明: 原文地址:http://www.androidenea.com/2009/06/android-boot-process-from-power-on.html,本文章是在基于该文章的翻译,翻译的不好,请笑纳 -):1.PoweronandbootROMcodeexecution开机并执行 boot ROM代码 AtpowerontheCPUwillbeinastatewherenoinitializationshavebeendone.InternalclocksarenotsetupandtheonlymemoryavailableistheinternalRAM.Whenpowe. 阅读全文
posted @ 2012-08-29 21:46 云翔世界 阅读(161) 评论(0) 推荐(0)
摘要:下面是main.mk文件包含关系,本文档主要说明的就是这些文件里到底做了什么。(这个文件被根目录下的makefile文件包含)一. main.mk1.检查版本号,设置环境变量(BUILD_SYSTEM)和缺省的目标。$(MAKE_VERSION) >= 3.81,BUILD_SYSTEM= build/core2.包含文件BUILD_SYSTEM/config.mk。根据配置信息和主机目标机信息,设置一些变量。3.包含文件BUILD_SYSTEM/cleanbuild.mk。如果当前配置改变,强制删除上次的编译结果4.包含文件OUT_DIR/version_check.mk。就设置了VE 阅读全文
posted @ 2012-08-29 21:35 云翔世界 阅读(315) 评论(0) 推荐(0)
摘要:根据eoeandroid上的的连载,进行一些更新、修改和加亮。今天翻译ANDROID-MK.TXT文件(英文原文件在/development/Ndk/Docs/android-mk.txt)Android.mk文件语法规范Introduction:Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的,这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了docs/OVERVIEW.TXT文件,了解了它们的脚色和用途。概述:一个Android.mk file用来向编译系统描述你的源代码。具体来说:-该文件是GNU Makefile的一小部分,会被编译系 阅读全文
posted @ 2012-08-29 21:05 云翔世界 阅读(116) 评论(0) 推荐(0)
摘要:转载于:http://blog.csdn.net/luoshengyang/article/details/6567257 博客我们在Android系统增加硬件服务的目的是为了让应用层的APP能够通过Java接口来访问硬件服务。那么, APP如何通过Java接口来访问Application Frameworks层提供的硬件服务呢?在这一篇文章中,我们将在Android系统的应用层增加一个内置的应用程序,这个内置的应用程序通过 ServiceManager接口获取指定的服务,然后通过这个服务来获得硬件服务。 一. 参照在Ubuntu上为Android系统的Application Framew.. 阅读全文
posted @ 2012-08-19 19:34 云翔世界 阅读(139) 评论(0) 推荐(0)
摘要:转载于:http://blog.csdn.net/luoshengyang/article/details/6567257 博客在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行。今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于 这两个系统上有着丰富多彩的各种应用软件。因此,软件和硬件的关系,在一定程度上可以说,硬件是为软件服务的。硬件工程师研发出一款硬件设备,自然少了软 件工程师为其编写驱动程序;而驱动程序的最终目的,是为了使得最上层的应用程序能够使用这些硬件提供的服务来为用户提供软件功能。对Android系统上 的应用软件来说,就是要在系统的Appli 阅读全文
posted @ 2012-08-19 19:32 云翔世界 阅读(134) 评论(0) 推荐(0)
摘要:转载于:http://blog.csdn.net/luoshengyang/article/details/6567257 博客 在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接 口。实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务。我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那 么,Java接口如何去访问C接口呢?众所周知,Java提供了JNI方法调用,同样,在Andr 阅读全文
posted @ 2012-08-19 19:31 云翔世界 阅读(152) 评论(0) 推荐(0)
摘要:转载于:http://blog.csdn.net/luoshengyang/article/details/6567257 博客 在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简要介绍了在Android系统为为硬件编写驱动程序的方法。简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中。接着,在Ubuntu上为Android系统编写Linux内核驱动程序一 文中举例子说明了如何在Linux内核编写驱动程序。在这一篇文章中,我们将继续介绍Android系统硬件驱动程序的另一方面实现,即如何在硬件抽象层 中增加硬件模块来和内核驱动程序交互。在 阅读全文
posted @ 2012-08-19 19:30 云翔世界 阅读(182) 评论(0) 推荐(0)