随笔分类 -  android系统

摘要:系统框架applicationjava应用程序applicationfarmeworkjava应用程序框架子librarics/androidruntimec/c++本地库/android运行时环境linuxkernelLinux内核与驱动对内核的依赖:电源管理文件系统内存管理进程管理网络协议栈驱动模型本地框架;bionic标准系统函数库webCoreweb浏览器引擎使用surfaceflinger用于2d和3d显示opencore基础多媒体框架,最新版使用stagefrightskia2d图形引擎3Dlibraries3d加速sqLite轻型关系数据库虚拟机每个android应用程序都用一个 阅读全文
posted @ 2012-09-21 16:08 retacn_yue 阅读(272) 评论(0) 推荐(0)
摘要:native servicezygote 服务kernel->init(init.rc)->demons zygote->dalvik VM->systemServer runtime->serviceManagerzygote包括两部分: c/c++层,用来产生进程给核心服务和app java层,调用c/c++层activityManager 活动管理器管理activity属性和行为,管理service 示例代码:取得正在执行的 // 取得正在运行的进程ActivityManager activityManager = (ActivityManager... 阅读全文
posted @ 2012-09-18 23:27 retacn_yue 阅读(818) 评论(0) 推荐(0)
摘要:serviceManager 在c++层如何使用serviceManager frameworks\base\services\camera\tests\CameraServiceTest,示例代码如下:sp<ICameraService> getCameraService() { //取得serviceManager sp<IServiceManager> sm = defaultServiceManager(); ASSERT(sm != 0); sp<IBinder> binder = sm->getService(String16(" 阅读全文
posted @ 2012-09-18 00:33 retacn_yue 阅读(970) 评论(0) 推荐(0)
摘要:Framebuffer Driver 中文名为:帧缓冲驱动 一、FrameBuffer的原理 FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。 Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操... 阅读全文
posted @ 2012-09-10 16:42 retacn_yue 阅读(192) 评论(0) 推荐(0)
摘要:framebuffer驱动里可以定制开机界面 开机过程中屏幕出现的三次内容 1 linux启动画面 向framebuffer中写入数据 lcd支持的颜色 16位/24位/32位 RGB+8位的atpha的透明色 选择bmp图片 使用image2Lcd工具将图片转化成c语言的数组 在framebuffer驱动初始化完成后将图片写入到framebuffer中 重新编译内核 2 android系统本地启动画面,android文字 在system/core/init/目录下 console方法中进行修改 3 android显示系统启动动画,滚动的android动画 frameworks/ba... 阅读全文
posted @ 2012-09-10 16:41 retacn_yue 阅读(184) 评论(0) 推荐(0)
摘要:bootload 加载linux 内核 挂载ramdisk.img init程序 启动准备 解析init.rc 和init.hardware.rc 将early-init Action添加到action_queue队列中 将init Action添加到action_queue队列中 进入循环 执行每个action中的commands里的命令 启动service_list中svc_restarting服务 监听属性状态变化事件,子进程信号,keyboard组合按键事件 init中的主要本地服务 ueventd 设备文件创建/删除了监听 console 输入终端 a... 阅读全文
posted @ 2012-09-10 15:45 retacn_yue 阅读(193) 评论(0) 推荐(0)
摘要:++++++++++++++++++++++++++++++++++++++++++本文系本站原创,欢迎转载! 转载请注明出处:http://blog.csdn.net/mr_raptor/article/details/7539978++++++++++++++++++++++++++++++++++++++++++ Android编译系统详解(一):http://blog.csdn.net/mr_raptor/article/details/7539978 Android编译系统详解(二):http://blog.csdn.net/mr_raptor/article/details/754 阅读全文
posted @ 2012-09-10 13:45 retacn_yue 阅读(293) 评论(0) 推荐(0)
摘要:Android的传感器系统传感器的种类传感器名称Java中的名称本地接口名称数值加速度TYPE_ACCELEROMETERSENSOR_TYPE_ACCELEROMETER1磁场TYPE_MAGNETIC_FIELDSENSOR_TYPE_MAGNETIC_FIELD2方向TYPE_ORIENTATIONSENSOR_TYPE_ORIENTATION3陀螺仪TYPE_GYROSCOPESENSOR_TTYPE_GYROSCOPE4光线(亮度)TYPE_LIGHTSENSOR_TTYPE_LIGHT5压力TYPE_PRESSURESENSOR_TTYPE_PRESSURE6温度TYPE_TEMP 阅读全文
posted @ 2012-09-03 15:23 retacn_yue 阅读(865) 评论(0) 推荐(0)
摘要:Gps(globalPositionSystem全球定位系统)和定位部分除此之外还有利用基站(cell)定位的AGPS等设备定们系列统的基本架构主要数据来源有两个:GPS定位和network定位(基于cell和wifi热点的定位)定位部分的结构如图定位系统的驱动层Network定位的底层驱动和适配层实际上就是RIL和wifi框架的组成部分Cell定位就是利用基站的cellID以及LAC实现Wifi则是利用热点的相关信息如名字mac地址ip地址实现GPS设备分为硬GPS和软GPS硬GPS上电就可以直接输出NMEA数据软GPS需要主控芯片控制其运行状态,需要主控方进行计算才能得到NMEA数据GPS 阅读全文
posted @ 2012-09-03 15:22 retacn_yue 阅读(1554) 评论(0) 推荐(0)
摘要:蓝牙部分蓝牙协议栈1.11.22.02.13.0异步数据和语音传输采用的协议:逻辑链路控制和适配协议(L2CAP)、服务发现协议(SDP)、串口模拟协议(RFCOMM)主要控制接口由主机控制接口层体现,他是蓝牙协议里软硬件之间的接口在HCI之上的是蓝牙的上层应用框架,每个应用模式为一个profile,如无线立体声耳机A2DP(AdvancedAudioDistributionProfile)等蓝牙的基本架构自上而下包括以下内容:Linux内核的蓝牙驱动程序Linux内核的蓝牙协议层Bluez蓝牙在用户空间的库Bluez适配层Android.bluetooth包中的各个类(蓝牙在框架层的内容)蓝 阅读全文
posted @ 2012-09-03 15:21 retacn_yue 阅读(417) 评论(0) 推荐(0)
摘要:Android的联接部分Wifi部分Wifi的基本架构自上而下包括的一些内容:Linux内核的标准wifi驱动程序和协议Wap_supplicant可执行程序(WAP应用层认证客户端)Wifi的HALWIFI的JNI接口Wifi的java框架Wifi的相关应用Wifi的结构图如下:Wifi的本地实现(主要包括wap_supplicant和wap_supplicant适配层)WAP是wifiprotectedAccessWap_supplicant是WAP应用层认证客户端,负责认证完成相关的登陆和加密工作,他是一个开源的代码路径为:\external\wpa_supplicant文件名为:wpq 阅读全文
posted @ 2012-09-03 15:19 retacn_yue 阅读(359) 评论(0) 推荐(0)
摘要:Android电话部分综述主要部分:呼叫短信数据连接SIM卡电话本电话部分分为以下几层:Modem驱动RIL(radiointerfacelayer)电话服务框架应用层Modem通信模块Chip-on-board在Modem硬件上一般使用两个渠道:一个是用于AT命令:一般使用UART或USB方式,AT命令由Hayes公司发明以AT开头,用于完成调制解调器之间的交互另一个用于数据传输:通过usb方式传输数据如果基带与应用处理器集成一般通过共享内存方式传输本地的RIL代码本地代码的路径:\hardware\ril部分文件;include:RIL头文件Libril:RIL库,最终生成libril.. 阅读全文
posted @ 2012-09-03 15:18 retacn_yue 阅读(424) 评论(0) 推荐(0)
摘要:android的多媒体系统多媒体系统的结构和业务多媒体系统的宏鸡观结构应用层,java框架层,c语言层,硬件抽像层,其中输入输出由HAL层,处理环节由packetView的OpenCore实现,多媒体业备有以下几种:musicPlayer(音频播放器)viderPlayer(视频播放器)Camera(照相机)soundRecord(录音机)videoCamera(摄像机)Mediametadata(媒体元信息)核心是媒体的播放和录制,分别由下层的OpenCore的PVPlayer和PVAuthor来实现多媒体的java类:\frameworks\base\media\java\android\ 阅读全文
posted @ 2012-09-03 15:16 retacn_yue 阅读(1980) 评论(0) 推荐(0)
摘要:android中的audio系统Audo系统主要分如下几个层次:1.Media库提供的Audio系统本地部分接口2.audioFlinger作为audio系统的中间层3.audio的硬件层提供底层支持4.audio接口通过JNI和java框架提供给上层Audio的系统结构如下图代码分布如下:1audio的java部分路径为:/frameworks/base/media/java/android/media例:audioManager2Audio的JNI部分(最终生成库libandroid_runtime.so)/frameworks/base/core/jni3audio的框架部分头文件部分. 阅读全文
posted @ 2012-09-03 15:12 retacn_yue 阅读(616) 评论(0) 推荐(0)
摘要:Android的GUI系统AndroidGUI系统综述C语言部分包括:pixelFlinger(下层工具库)头文件/system/core/include/pixelflinger其生成的动态库libpixelflinger.so只连接 C语言库libcutilsFormat.h提供像素格式的定义, Pixelflinger.h提供接口功能的定义 源代码/system/core/libpixelflingerLibui(GUI的框架库)头文件:/system/core/libpixelflinger/ui源代码:/f... 阅读全文
posted @ 2012-09-03 15:07 retacn_yue 阅读(421) 评论(0) 推荐(0)
摘要:第四章android的底层库和程序知识点:Android.mk的书写规则在android中增加可执行程序、动态库、和静态库的方法Init.rc启动角本的使用方法Binder机制的工作原理使用binder在程序中构建IPC的方法Android的系统进程底层库和程序的结构1增加本地程序和库的方法要增加的库和程序跟路径没有关系,只和它们的android.mk文件有关系Android.mk和makefile有所不同,android.mk主要包含一些系统公共有宏android.mk中选项的路径Build/core/config.mk各个选项的默认值Build/core/base_rulles.mk编译程 阅读全文
posted @ 2012-09-03 15:05 retacn_yue 阅读(1210) 评论(0) 推荐(0)
摘要:android的linux内核和驱动程序Androidr专用驱动Ashmem:匿名共享内存驱动Logger:轻量级的log驱动Binader:基于operBinder系统的驱动,为android提供IPC支持AndroidpowerManager:电源管理器LowMemoryKiller:缺少内存时,杀死进程AndroidPMEM:物理内存驱动Android使用的设备驱动Framebuffer驱动是标准和显示设备驱动,对于PC系统就是显卡驱动设备节点通常是/dev/fbxFramebuffer驱动的主要头文件:include/llinux/fb.h核心实现:drivers/video/fbme 阅读全文
posted @ 2012-09-03 15:03 retacn_yue 阅读(394) 评论(0) 推荐(0)
摘要:1.android的系统架构(linux2.6内核)Linux操作系统及驱动本地代码框架Java框架Java应用程序Android的程序库系统c库多媒体库:packetVideo的openCoreSurfaceManager:提供2D和3D的无缝融合libWebCore:web浏览器引擎SGL:Skia图形库,,2D图形引擎3Dlibraries:基于OpenGLES1.0API的实现FreeType:位图和矢量字体显示Android的运行环境dalvik虚拟机和java基础库Android应用程序框架ViewscontentProvidersresourceManagerNotificati 阅读全文
posted @ 2012-09-03 15:01 retacn_yue 阅读(153) 评论(0) 推荐(0)
摘要:给root设定密码后,仍可以sudo su 切换到root用户 d rwx r-xr-x 文件权限第一位:d是目录文件 l是链接文件 -是普通文件 p是管道文件第二到四位: 表示这个文件的属住拥有的权限 r读,w是写,x是执行第五到七位: 表示和这个文件的属主同在一个组的用户所具有的权限第八到十位:表示其他所有用户所具有的权限 修改文件权限常用方法sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)sudo chmod 700 × 阅读全文
posted @ 2012-09-03 14:59 retacn_yue 阅读(201) 评论(0) 推荐(0)