
android framework学习笔记
清澈见底-66
此人很懒
展开
-
android平台四层架构对应源代码中的目录
android平台四层架构对应源代码中的目录:第一层:应用程序层(applications)对应根目录下packages/apps第二层:应用程序框架层(application framework)对应根目录下的frameworks第三层:运行库层包括运行库(libraries)和android运行时环境(android runtime) androi转载 2016-04-27 17:11:26 · 1864 阅读 · 0 评论 -
源码编译
使用repo下载google 的android4.4 源码 参看http://hi.baidu.com/j_key/item/170505ad9efd0037030a4d5d,根据自己的下载过程进行修改了。 环境:ubuntu12 64 位。 1.安装gitsudo apt-get install git-core 2.安装curlsudo apt-get inst转载 2017-02-17 15:07:43 · 872 阅读 · 0 评论 -
android(八)、触摸事件分发
本文章基于android 4.2.1,从view拿到事件信息开始,首先对事件做一些检测及预处理;如果事件有问题的话则抛弃信息,否则的话开始对事件进行分析。首先判断mListenerInfo是否为空,是否设置了onTouch事件;如果设置了事件则执行onTouch事件,当onTouch方法消耗了事件则消息传递结束;否则将事件交给OnTouchEvent方法处理,onTouchEvent中主...原创 2013-11-06 16:20:13 · 1267 阅读 · 0 评论 -
WindowManagerImpl和PhoneWindowManger的区别
WindowManagerImpl是客户端使用的类,实现WindowManger API,是供SDK开发使用。PhoneWindowManager是供系统进程使用,是WindowManagerService 的一部分。UI.如果一个Activity想和WindowManagerService通信,那么它会先调用用WindowManagerImpl API ,然后WindowManage原创 2017-03-30 14:22:15 · 995 阅读 · 0 评论 -
android 框架五
原创 2017-04-01 10:50:53 · 280 阅读 · 0 评论 -
WindowManagerService、PhoneWindowManager、WindowManagerImpl关系
WindowManagerService:高层级窗口管理服务,主要委托PhoneWindowManager来处理Phone UI。WindowManagerImpl:低层次,负责与系统窗口管理服务进行操作通信,与Context进行关联。WindowManagerGlobal:低层次,负责与系统窗口管理服务进行操作通信,不与Context进行关联。ViewRootImpl创建时-原创 2016-09-18 17:03:04 · 2087 阅读 · 0 评论 -
Android 中Activity、Window、ViewRoot、DecorView之间的联系
Activity、Window、ViewRoot、DecorView原创 2017-05-04 11:53:07 · 1005 阅读 · 0 评论 -
android(四)、Activity启动过程图
基于原创 2016-04-22 14:13:51 · 634 阅读 · 0 评论 -
android视图系统
何东西想要显示都必须借助Window,因为每个Window都有surface对象,Java层能产生surface数据的只有viewroot和surfaceview。native层能产生surface数据的只有nativeWindow。由WindowManager负责将Window中的的surface数据提交给surfaceflinger来显示。 那么surface又是如何和view联系上呢,就是通原创 2017-10-11 14:21:17 · 320 阅读 · 0 评论 -
理解Android进程创建流程
转载http://gityuan.com/2016/03/26/app-process-create/基于Android 6.0源码剖析,分析Binder线程池以及binder线程启动过程。frameworks/base/cmds/app_process/app_main.cppframeworks/native/libs/binder/ProcessState.cppframework/na...转载 2018-06-08 18:00:55 · 431 阅读 · 0 评论 -
Android Binder 服务调用关系图
原创 2018-07-16 17:48:06 · 557 阅读 · 0 评论 -
android 应用内部组织关系
原创 2017-01-03 11:52:14 · 286 阅读 · 0 评论 -
android framework学习(知乎-作者van Bruce)
首先放个地图炮,任何光讲源码的书都是耍流氓,无一例外。作者或许是大神,或许对于每一个地方的每一处源码都烂熟于心,但并不代表他们可以写出一部好书。原因很多时候在于,Android的功夫,在Android之外。这是理解Android源码的“道”,也是我近几年来愈发强烈的感受。至于“术”,我只想说大神博客也好,书也好,90%的讲述方式都是错误的——作者展示出Android源码,然后告诉你这段是干转载 2016-08-31 11:08:45 · 3000 阅读 · 1 评论 -
android Surface概述
Surface的主要作用是存储View树的绘制数据,主要由屏幕组合器管理(screen compositor),每个Window都有一个Surface。 android中Surface分为两种: 一、Java层surface 二、Native层Surface Java层产生Surface的主要有两个地方:ViewRoot和SurfaceView Native层主原创 2016-10-26 17:41:49 · 1673 阅读 · 0 评论 -
android (六)、Service工作原理
android操作系统支持后台操作,android应用程序和系统中大多都可以看到服务的影子。android的服务分为两大部分:android应用服务和android系统服务。android应用服务分为本地服务和远程服务,android系统服务分为java服务和本地服务,java服务又分为核心平台服务和硬件服务。原创 2016-06-23 20:26:13 · 2024 阅读 · 0 评论 -
android(七)、 ContextImpl创建
android Context意为上下文,是应用程序所在环境的一个信息描述,一个全局工具,可以创建服务,访问资源文件等。Context本身是一个抽象类,他的实现类有很多个包括ContextImpl和ContextThemeWrapper。通常大家会用Context来启动Service,发送广播,启动Activity和进行资源访问,这些功能都是通过ContextImpl实现的。本以为Ac原创 2016-06-28 15:30:48 · 814 阅读 · 0 评论 -
android Activity启动过程(二)
Activity在oncreate中调用setContentView方法,该方法体主要是调用 getWindow().setContentView(layoutResID);getWindow返回类型为PhoneWindow,phonewindow的setContentView方法体283 public void More ...setContentView(View view,原创 2016-03-25 10:33:39 · 463 阅读 · 0 评论 -
android view 事件分发
本文章基于android 4.2.1,从view拿到事件信息开始,首先对事件做一些检测及预处理,如果事件有错误的话则抛弃信息,否则的话开始对事件进行分析。首先判断mListenerInfo是否为空,是否设置了onTouch事件;如果设置了事件则执行onTouch事件,当onTouch方法消耗了事件则消息传递结束;否则将事件交给OnTouchEvent方法处理。7226 public原创 2016-04-29 11:51:08 · 348 阅读 · 0 评论 -
framework(一):ActivityThread-笔记
ActivityThread 的功能是管理应用程序进程中的主线程,包括调度和执行Activity,broadcasts以及其它的请求操作。当用户打开一个应用程序时,会由AMS(ActivityMangerService)创建一个ActivityThread,当然ActivityThread并不是一个线程类,但是其所在的线程就是主线程,也就是常说的UI 线程。原创 2016-06-13 11:04:06 · 614 阅读 · 0 评论 -
WindowManger
Window中的DecorView是如何添加到WindowManger呢?WindowManager的实现类是WindowManagerImpl,WindowManagerImpl调用addview68 public void addView(View view, ViewGroup.LayoutParams params) {69原创 2016-03-25 11:07:57 · 571 阅读 · 0 评论 -
android (一)、SystemServer与系统服务启动
首先启动从linux启动Zygote ,然后由ZygoteInit启动SystemServer;SystemServer中的ServerThread启动android的所有服务,并且启动了SystemUi。然后由Launcher启动应用,当启动Activity时会由ActivityMangerService辗转到Zygote,然后启动一个新的进程Process(ActivityThread启动原创 2015-01-09 17:20:49 · 1746 阅读 · 0 评论 -
android (三)、Activity工作原理
由Launcher启动一个新的应用程序时,launcher会调用startActivity来启动Activity。假设进程应经fork,ActivityThread已经创建过,Launcher通过Binder向ActivityManagerService发送了创建Activity信息。ActivityThread接收到信息后调用 handleLaunchActivity(ActivityClien原创 2016-03-24 16:39:33 · 3057 阅读 · 0 评论 -
android (八)Binder浅谈
在这里写下对binder的理解,说到Binder间进程通信,Linux那么多进程间通信工具为何引入了Binder。大概原因有两点:1、为了提高通信的效率。2、为了方便开发者,让进程间通信和RPC(远程通信)一样简单方便。 Binder无处不在,日常开发中无形中一直在用Binder进行通信,例如Activity的创建,窗口的显示等等。 具体的应用比如说:ActivityThread中的ApplicationThread就是继承了IBinder,这里的IBinder是java层原创 2016-07-20 17:50:18 · 1702 阅读 · 0 评论 -
android(五)、 ViewRoot触摸事件流程
android 触摸事件最后到底传给了谁这个问题的答案不能空口说,我们要从源码里去找下答案。那首先就要说下Activity中setContentView()是如何显示到界面上的。Activity的attach()大致干了三件事:1、创建Window对象(PhoneWindow)2、为window对象设置回调方法3、为window对象设置WindowManger管理者,W原创 2016-07-15 15:30:57 · 1162 阅读 · 0 评论 -
android Looper、Handler和MessageQueue关系
android 消息框架可以用来线程间消息的传递,android中最广泛的应用场景就是子线程向UI线程发送更新UI的消息。 Looper:用来进行消息循环,不停的从MessageQueue中取消息。 Handler:向MessageQueue发送消息,并处理Looper传递来的消息。 Message:消息载体。 MessageQueue:消息队列的持原创 2016-09-01 16:35:34 · 684 阅读 · 0 评论 -
android ViewTreeObserver
/**view树是否绑定到了Window上 */ public interface OnWindowAttachListener { /** * view绑定到了window上 */ public void onWindowAttached(); /** * view从win原创 2016-09-07 11:17:13 · 402 阅读 · 0 评论 -
android(二)、 应用启动过程
自android 的framework框架启动后,运行一个应用的环境已经准备好了。比较重要的部分如下:ActivityManagerService-主要负责管理Activity,Service,BroadcastReceiver。WindowMangerService-负责窗口管理,窗口的创建,添加显示,删除。ActivityThread-应用程序主线程代理,负责与外部进行通信;内原创 2016-07-12 15:07:22 · 597 阅读 · 0 评论 -
android 应用与framework 通信
原创 2016-12-30 10:51:48 · 504 阅读 · 0 评论