Android Framework
Arrow
在技术上具有Arrow一样的钉子精神
展开
-
Android深入浅出之Binder机制
转自:http://www.cnblogs.com/innost/archive/2011/01/09/1931456.html一 说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析B转载 2011-12-05 21:39:53 · 2499 阅读 · 1 评论 -
Dalvik虚拟机的目录结构
为了挖掘Dalvik虚拟机的秘密,需要仔细分析Dalvik的每一个目录,每一个文件,才能把它的细节了然于胸。下面就开始吧! Android.mk这个文件是虚拟机编译的makefile文件。 dalvikvm这个目录是虚拟机命令行调用入口文件的目录,主要用来解释命令行参数,调用库函数接口等。 dexdump这个目录是生成dex文转载 2013-07-29 14:11:42 · 2300 阅读 · 0 评论 -
手机传感器-G-Sensor
1. 简介手机传感器介绍手机传感器检测安卓手机上所有可用感应器,并通过图像生动的展示它们是如何运作的。手机传感器也能够识别该手机硬件支持哪些传感器,并提供对我们日常生活起着重要作用的传感工具。手机传感器只能检测到变化。如果属性没有变化,它显示的温度值、距离值、光和压力的值可能不准确。2. 手机中常用的传感器在Android2.3 gingerbread系统中,google提供了11转载 2013-06-08 17:00:20 · 15148 阅读 · 0 评论 -
android4.0强制横屏竖屏
//方法一://android4.0/frameworks/base/services/java/com/android/server/wm/WindowManagerService.java int computeForcedAppOrientationLocked() { int req = getOrientationFromWindowsLocked();转载 2013-09-04 16:42:18 · 7715 阅读 · 0 评论 -
Android4.2 G-Sensor工作流程
1. 简介 在了解Sensor工作流程以前,一直以为其事件是通过Event Hub来进行输送的,可是研究完Android4.0代码之后,才发现自己错了。 其主要框架如下图所示: 2.功能模块2.1 SensorManager.java与下层接口功能:1) 在SensorManager函数中 (1) 调用native sensors_module_原创 2013-06-07 10:11:40 · 20583 阅读 · 2 评论 -
Android4.0 Code 和 Kernel下载方法
1.依次执行以下命令,下载Android Code$ mkdir ~/bin$ PATH=~/bin:$PATH 下载Repo script$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo 创建工作目录原创 2011-12-10 10:35:41 · 2575 阅读 · 0 评论 -
用户态应用程序直接与USB设备通信(不需要USB设备Driver)
1. Kernel态 devio.c: 实现用户态与USB设备通信的接口 它实现usbfs/x/y, 即/dev/bus/usb/x/y,x为bus number,y为device number 它允许用户态应用程序直接与USB设备通信(不需要USB设备Driver参与)2. User 态 /system/core/libusb原创 2013-10-29 17:41:41 · 3446 阅读 · 0 评论 -
Android消息驱动机制Handler+Looper+Thread+MessageQueue
1. 简介 虽然对Android系统的整体了解不少,但对经常遇到的Android消息机制的实现并没有进行深入了解,趁现在有时间,顺便看一下,做总结一下。2. 整体架构原创 2013-11-15 17:49:46 · 4642 阅读 · 1 评论 -
Android SurfaceView简介
1. SurfaceView有什么作用? 众所周知,View组件只有在UI(主)线程中绘图,而且必须快速,即不能阻塞主线程。这样的要求对于刷新频率高、绘图工作量大的游戏来说,是致命的缺陷,所以SurfaceView为此而生。 • SurfaceView关键特性: SurfaceView 与View相比,其关键特性为:在主线程之外的线程中向屏幕上绘图。这样就可以避原创 2013-11-27 10:16:32 · 4308 阅读 · 0 评论 -
Android Activity.startActivity流程简介
1. 基本概念1.1 Instrumentation 顾名思义,仪器仪表,用于在应用程序中进行“测量”和“管理”工作。一个应用程序中只有一个Instrumentation实例对象,且每个Activity都有此对象的引用。Instrumentation将在任何应用程序运行前初始化,可以通过它监测系统与应用程序之间的所有交互,即类似于在系统与应用程序之间安装了个“窃听器”。原创 2013-11-06 11:44:00 · 20868 阅读 · 6 评论 -
Android系统--视图绘制 (View Render)
1. 简介 Android系统--视图绘制主要由以下几部分组成: 1) Canvas(画布,实际工作的类为:GLES20Canvas) 提供画图所需要的所有工具,即各种draw函数; 2)原创 2013-11-21 16:29:39 · 23919 阅读 · 6 评论 -
Android布局基本概念
1. 基本概念原创 2013-12-05 15:34:26 · 2075 阅读 · 0 评论 -
Android System.loadLibrary及JNI_OnLoad简介
1. Android系统加载JNI Lib的方法 Android系统加载JNI Lib的方法有如下两种: 1) 通过JNI_OnLoad 2) 如果JNI Lib没有定义JNI_OnLoad,则dvm调用dvmResolveNativeMethod进行动态解析2. JNI_OnLoadSystem.loadLibrary调用流程如下所示:System.loa原创 2013-08-02 16:42:12 · 17548 阅读 · 0 评论 -
兼容性窗口 --显示流程
PhoneWindowManager.java focusChangedLw-> updateSystemUiVisibilityLw->mStatusBarService.topAppWindowChanged-> CommandQueue.java mCallbacks.topAppWindowChanged-> TabletStatusBar.ja原创 2013-04-26 14:57:00 · 2049 阅读 · 0 评论 -
Android图片编解码实现方案(Skia)
1. Android图片解码流程1) APP:BitmapDecode.java2) API:BitmapFactory.java(static image)、Movie.java(dynamic image)3) JNI:BitmapFactory.cpp(static image)、Movie.cpp(dynamic image)4) C Native Service(Ski原创 2013-01-25 10:45:56 · 13980 阅读 · 1 评论 -
从应用程序的角度看Binder
从应用程序的角度看Binder一共有三个方面:Native 本地:例如BnABC,这是一个需要被继承和实现的类。 Proxy 代理:例如BpABC,这是一个在接口框架中被实现,但是在接口中没有体现的类。 客户端:例如客户端得到一个接口ABC,在调用的时候实际上被调用的是BpABC1. 本地功能(Bn)部分做的:实现BnABC:: OnTransact() 注册服务:IS转载 2011-12-06 21:51:37 · 2034 阅读 · 0 评论 -
Android 的Skia 图形引擎库
转自:http://www.cnblogs.com/Caiqinghua/archive/2010/08/04/1791752.html一、简介: skia 有大概 80,000 行代码,基于 C++ 开发,主要特点包括:高度优化的软体 ->Optimised software-based rasteriser (module sgl/);选择性透过OpenGL/ES ,加速转载 2011-12-06 17:24:42 · 2995 阅读 · 0 评论 -
Android Binder设计与实现(1) – 设计篇
转自:http://www.linuxidc.com/Linux/2011-07/39271.htm目录1. Android为何引入Binder2. 面向对象的 Binder IPC 3. Binder通信模型3.1 Binder 驱动3.2 ServiceManager 与实名Binder3.3 Client 获得实名Binder的引用3.4 匿名 Binde转载 2011-12-06 10:45:27 · 5565 阅读 · 0 评论 -
深入了解MediaServer-1
1.mediaserver位于main_mediaserver.cpp,其源码如下:int main(int argc, char** argv){ sp proc(ProcessState::self()); sp sm = defaultServiceManager(); LOGI("ServiceManager: %p", sm.get());原创 2011-12-07 09:30:17 · 12458 阅读 · 2 评论 -
Input Core和evdev基本知识 - Kernel3.0.8
1. 基本数据结构和使用示例input_event数据结构如下:struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value;};input_dev数据结构如下:struct input_dev { const char *name; const char *p原创 2011-12-23 16:01:59 · 8722 阅读 · 0 评论 -
Android 4.0 事件输入(Event Input)系统
1. TouchScreen功能在Android4.0下不工作 原来在Android2.3.5下能正常工作的TouchScreen功能,移植到Android 4.0就不能正常工作了。凭直觉,Android4.0肯定有鬼。真是不看不知道,一看吓一跳。在Android 4.0中,Event Input地位提高了,你看看,在Adroid2.3.5中,它在frameworks/base/l原创 2011-12-21 13:54:36 · 49466 阅读 · 18 评论 -
Android Binder设计与实现(2) – 设计篇
5. Binder 的表述 考察一次Binder通信的全过程会发现,Binder存在于系统以下几个部分中:· 应用程序进程:又分为Server进程和Client进程· Binder驱动:Server和Client有不同表述形式· 传输数据:由于Binder可以跨进程传递,需要在传输数据中予以表述 在系统不同部分,Binder实现的功能不同,表现形式也不一样的。转载 2011-12-06 17:52:54 · 1624 阅读 · 0 评论 -
Android Binder设计与实现(3) – 设计篇
6. Binder 内存映射和接收缓存区管理 暂且撇开Binder,考虑一下传统的IPC方式中,数据是怎样从发送端到达接收端的呢?通常的做法是,发送方将准备好的数据存放在缓存区中,调用 API通过系统调用进入内核中。内核服务程序在内核空间分配内存,将数据从发送方缓存区复制到内核缓存区中。接收方读数据时也要提供一块缓存区,内核将数据从内核缓存区拷贝到接收方提供的缓存区中并唤醒接收线转载 2011-12-06 21:24:03 · 1445 阅读 · 0 评论 -
Android 代码名字-版本号-API级别-NDK版本对应关系
源文:http://source.android.com/source/build-numbers.htmlAPI级别与NDK的对应关系如下:Code nameVersionAPI level(no code name)1.0API level 1(no code name)1.1API level 2Cu翻译 2011-12-10 11:13:53 · 10475 阅读 · 0 评论 -
输入设备配置文件(.idc文件)
1. 何为idc? idc(Input Device Configuration)为输入设备配置文件,它包含设备具体的配置属性,这些属性影响输入设备的行为。对于touch screen设备,总是需要一个idc文件来定义其行为。 Android基于输入设备驱动汇报的事件类型和属性来检测和配置大部分输入设备的能力。然而有些分类是模棱两可的,如:多点触摸屏(multi-t原创 2012-07-03 09:06:21 · 18359 阅读 · 5 评论 -
interface_cast做什么的?
1. 前面对interface_cast已经进行了详解,为加深理解,现单独把结果抛出来。它本身是一个模板,如:interface_cast(reply.readStrongBinder());2. reply.readStrongBinder());返回的结果是一个新创建的BpBinder对象。3. interface_cast(BpBinder);新创建一个BpMediaPlayer原创 2011-12-08 19:12:01 · 12171 阅读 · 0 评论 -
系统去掉 Android 4.4.2 的StatusBar和NavigationBar
1. 简介 在Android4.4.2中,原创 2014-05-13 14:29:17 · 29179 阅读 · 4 评论