本文转载自:http://blog.csdn.net/andyhuabing/article/details/9226569 最近做Recovery的规范及操作指导文档,花了一些时间将流程搞清. Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级.而在进入Recover前面其实还有升级检测,数据下载,启动检查等等操作.系列文章将会将整个流程梳理清楚. 1.android启动流程 简要的流程图示,升级到新的版本或指定版本: 系统上电时的详细检…
最近做Recovery的规范及操作指导文档,花了一些时间将流程搞清. Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级.而在进入Recover前面其实还有升级检测,数据下载,启动检查等等操作.系列文章将会将整个流程梳理清楚. 1.Android启动流程 简要的流程图示,升级到新的版本或指定版本: 系统上电时的详细检测流程图: 下面我们从代码的情况简略分析一下: 机顶盒上电一般都是从地址 0x00000000 处开始启动,此时启动的程序叫…
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(Libraries和android runtime)和Linux内核层. 那么我来讲讲应用层有什么? 就是一些应用软件,如首页,联系人,电话,浏览器等等:应用框架如何理解? 应用框架层是用Java写的,有事件管理器,windows管理器,内容提供,查看系统 ,消息管理器,安装包管理,电话管理,资源管理…
Android recovery模式为何物? 关于这个问题, baidu上已经有无数的答案.不理解的朋友先补习一下. 从纯技术角度来讲, recovery和android本质上是两个独立的rootfs,  仅仅是recovery这个rootfs存在的意义就是为android这个rootfs服务,因此被解释为Android系统的一部分.  recovery作为一个简单的rootfs, 提供了很有限的几个功能,仅仅包括了几个简单的库,UI的显示採用的是直接刷framebuffer的形式,作为andr…
      在<[Java&Android开源库代码剖析]のandroid-smart-image-view>一文中我们提到了android-async-http这个开源库,本文正式开篇来具体介绍这个库的实现,同一时候结合源代码探讨怎样设计一个优雅的Android网络请求框架.做过一段时间Android开发的同学应该对这个库不陌生,由于它对Apache的HttpClient API的封装使得开发人员能够简洁优雅的实现网络请求和响应,而且同一时候支持同步和异步请求.      网络请求框…
阅读完上一篇文章: http://blog.csdn.net/andyhuabing/article/details/9226569 我们已经清楚了如何进入正常模式和Recovery模式已有深刻理解了,假设进入了Recovery模式,那么其核心代码是怎么做的呢? 代码路径在 android 源码的根路径: bootable\recovery 其入口文件就是 recovery.c 中 main函数 下面就开始逐步了解其Recovery的设计思想: static const char *COMMAN…
本文转载自:http://blog.csdn.net/andyhuabing/article/details/9248713 阅读完上一篇文章: http://blog.csdn.net/andyhuabing/article/details/9226569 我们已经清楚了如何进入正常模式和Recovery模式已有深刻理解了,假设进入了Recovery模式,那么其核心代码是怎么做的呢? 代码路径在 Android 源码的根路径: bootable\recovery 其入口文件就是 recover…
智能手机的打电话功能是由RIL部分来实现的,见下图: 开始分析Android源代码中的RIL部分. 又上图,以及其他相关资料,我得知在Android中有一个叫rild的守护进程.我猜测此进程与电话的拨打接听有莫大关系. 而且在Android系统中存在这么一个rild的可执行文件,源代码中的"hardware/ril/rild"目录下有rild.c的文件 ,且在rild.c中,我们找到了main函数,即我们已经找到了rild守护进程的程序入口啦- 自赞一个先- 开始分析rild守护进程的…
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/7286503.html 通过View的View::focusSearch进行焦点搜索对应方向上的下一个可以获取焦点的View: public View focusSearch(@FocusRealDirection int direction) { if (mParent != null) { return mParent.focusSearch(this, d…
考勤系统主页的布局用的是easyui的Layout控件 Layout:布局容器有5个区域:北.南.东.西和中间.中间区域面板是必须的,边缘的面板都是可选的.每个边缘区域面板都可以通过拖拽其边框改变大小,也可以点击折叠按钮将面板折叠起来.布局可以进行嵌套,用户可以通过组合布局构建复杂的布局结构. <div id="cc" class="easyui-layout" style="width:600px;height:400px;"> &…
datagrid是easyui的控件,DataGrid以表格形式展示数据,并提供了丰富的选择.排序.分组和编辑数据的功能支持.DataGrid的设计用于缩短开发时间,并且使开发人员不需要具备特定的知识.它是轻量级的且功能丰富.单元格合并.多列标题.冻结列和页脚只是其中的一小部分功能. 建立:以table标签建立 <table id="dg" style="width:1100px"></table> 通过jQuery建立datagrid,并添…
本文转载自:http://blog.csdn.net/kmesg/article/details/6531577 本文只关注JNI和HAL的接口部分 在jni的android_location_GpsLocationProvider.cpp中,作者定义了一些callback函数和结构体 tatic void location_callback(GpsLocation* location) { pthread_mutex_lock(&sEventMutex); sPendingCallbacks …
vsm add new osd 流程 后台获取可用设备 | 选择可用设备及osd相关信息等 | 点击add按钮,把准备部署的osd信息添加到需要部署的item列表中 | 点击submit按钮,添加item列表中的设备到ceph集群中 下面我们分析一下 后台获取可用设备流程,点击add按钮和点击submit按钮后台触发的流程 *** 后台获取可用设备流程 代码分析 选择 Select Server 后 会促发js函数ChangeServer virtual-storage-manager-2.2.…
5.5 surfaceflinger对vsync的处理buffer状态图画得不错:http://ju.outofmemory.cn/entry/146313 android设备可能连有多个显示器,APP也有多个surface对应各个layer 显示器可能断开或者连接,layer可能内容更新.属性变化等,因此我们的SurfaceFlinger应该能处理各种各样的情况 SurfaceFlinger.h中有个结构体State及两个该结构体变量mDrawingState(正在使用或者上次使用的状态),m…
Android  recovery和android本质上是两个独立的rootfs, 仅仅是recovery这个rootfs存在的意义就是为android这个rootfs服务,因此被解释为Android系统的一部分. recovery作为一个简单的rootfs, 提供了很有限的几个功能,仅仅包括了几个简单的库.UI的显示採用的是直接刷framebuffer的形式.作为android framework及app层的码农.对这样的形式相对陌生,特抽点时间梳理了一番. 首先,浏览一下reocvery的m…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6606957 在前面两篇文章Android日志系统驱动程序Logger源代码分析和Android应用程序框架层和系统运行库层日志系统源代码中,介绍了Android内核空间层.系统运行库层和应用程序框架层日志系统相关的源代码,其中,后一篇文章着重介绍了日志的写入操作.为了描述完整性,这篇文章着重介绍日志的读取操作,这就是我们在开发Android应用…
转自:http://blog.csdn.net/andyhuabing/article/details/7381879 Android 属性系统 Property service 设定分析 在Window中有个注册表的东东,可以存储一些类似key:value的 键值对,而在android平台上也有类似的机制叫做属性服务(Property service)进行初始化,设置及修改和查询的功能,adb shell命令使用 setprop 及 getprop 可以看到. 问题: SurfaceFling…
1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能的bugs和可优化提升的地方. 1.2 lint工作流程 针对我们的项目,通过lint.xml配置lint分析的选项,执行检查后,会针对要分析的issue生成报告. 2 lint使用 有关lint的使用,有以下地方需要理解: 2.1 分析的范围 要对Android项目进行静态分析,首先就是指定要分析…
一.前言 对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括: (1)pin multiplexing.基于ARM core的嵌入式处理器一般会提供丰富的功能,例如camera interface.LCD interface.USB.I2C.SPI等等.虽然…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6598703 在开发Android应用程序时,少不了使用Log来监控和调试程序的执行.在上一篇文章Android日志系统驱动程序Logger源代码分析中,我们分析了驱动程序Logger的源代码,在前面的文章浅谈Android系统开发中Log的使用一文,我们也简单介绍在应用程序中使Log的方法,在这篇文章中,我们将详细介绍Android应用程序框架…
本文基于Android-4.0 理论层次解读 请看:www.cnblogs.com/lcw/p/3373214.html 如何管理各种驱动设备 在理论中谈到EventHub,这个一看就是一个做实事的,肯定不是领导,哪它的领导是谁呢? 从以下几方面来分析此问题: 每个功能模块是怎么产生的? 读取设备输入流程? 事件分发流程? 各个功能模块是怎么产生的? 先看一下每个模块的工作职责:EventHub, InputReader, InputManager... 模块功能 EventHub 它是系统中所…
转自:http://www.wowotech.net/linux_kenrel/pin-controller-driver.html 一.前言 对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括: (1)pin multiplexing.基于ARM core…
1. 输入系统框架 android输入系统官方文档 // 需FQhttp://source.android.com/devices/input/index.html <深入理解Android 卷III>第五章 深入理解Android输入系统 // 主要讲EventHubhttp://blog.csdn.net/innost/article/details/47660387 图解Android - Android GUI 系统 (5) - Android的Event Input System -…
转:http://blog.csdn.net/tody_guo/article/details/7560270 这几天我都在做Android的App,同时学习它的API,我将分享一些我学到的东西,比如: 如何从系统图库中选择图片. 首先,让我们来看看如何将手机系统图库集成到你的App中,然后再从图库中选择图片来做一些事.例如,在Facebook的App,你就可以直接选择手机上的图片上传到你的个人资料. 让我们来做一个简单例子,要求: 屏幕上显示一个按钮和图片视图控件. 点击“载入图片”按钮,将用…
   Android用户事件输入路径 1 输入路径的一般原理 按键,鼠标消息从收集到最终将发送到焦点窗口,要经历怎样的路径,是Android GWES设计方案中需要详细考虑的问题.按键,鼠标等用户消息消息的处理可分为不同的情况进行判定: (1)用户输入根据系统状况是否应该派送.如在ScreenOff的情况下,在按键属于特殊按键的情况下等 (2)是否有拦截Listener (3)对按键事件来讲,是否存在输入法 (4)是否是焦点终点 (5)是否为焦点切换按相关键 这些情况都是设计输入路径需要考虑的基…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6595744 我们知道,在Android系统中,提供了一个轻量级的日志系统,这个日志系统是以驱动程序的形式实现在内核空间的,而在用户空间分别提供了Java接口和C/C++接口来使用这个日志系统,取决于你编写的是Android应用程序还是系统组件.在前面的文章浅谈Android系统开发中LOG的使用中,已经简要地介绍了在Android应用程序开发中…
Bitmap的加载与缓存代码分析: 图片的压缩 比如有一张1024*768像素的图像要被载入内存,然而最终你要用到的图片大小其实只有128*96,那么我们会浪费很大一部分内存,这显然是没有必要的,下面是一个实例: public static int calculateInSampleSize(              BitmapFactory.Options options, int reqWidth, int reqHeight) {      // Raw height and widt…
Android系统代码查询命令集合 *#06# 显示MEID *#*#4636#*#* 显示版本,或更新相机韧体 *#*#7594#*#* 当长按关机按钮时,会出现一个切换手机部分设置及更改设定 WLAN. GPS 及蓝牙测试的代码 *#*#232338#*#* 显示 WiFi MAC 地址 *#*#1472365#*#* GPS 测试 *#*#1575#*#* 其它 GPS 测试 *#*#232331#*#* 蓝牙测试 *#*#232337#*# 显示蓝牙装置地址 *#*#8255#*#*启动…
TeamTalk Android代码分析(业务流程篇) 1.1 总体结构 1.总体结构有点类似MVC的感觉,模块结构从上向下大体是: UI层:Activity和Fragment构成,期间包括常用的一些开源控件如:imageloader,speedx,gifview等,和下层数据变更通知通过总线事件完成(EventBus) 管理层:Service(即:imservice,下文均采用此称呼)和一些按照业务划分的Manager(loginmanager,contactmanager,sessionma…
android输入系统C++最上层文件是com_android_serve_input_InputManagerService.cpp global key:按下按键,启动某个APP可以自己指定,修改frameworks\base\core\res\res\xml\Global_keys.xml假设它是AKEYCODE_TV system key:比如音量键 AKEYCODE_VOLUME_DOWN user key:其他按键,比如ABCDAKEYCODE_A reader线程把驱动上报的sca…