自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 问答 (2)
  • 收藏
  • 关注

原创 binder源码分析(五)

本篇从ServiceManager.addService()作为例子分析。addService前几篇分析过,getIServiceManager()拿到的是ServiceManagerProxy,调用其对应的addService。而addService也是向Parcel写入参数,然后调用transact,和getService差不多,值得注意的是写入参数时,有writeStrongBinder...

2020-04-09 21:21:40 269

原创 binder源码分析(四)

发送方线程被唤醒talkWithDriverwaitForResponse

2020-04-06 17:09:18 262

原创 binder源码分析(三)

binder_transactionbinder_transaction比较长,首先要有一些结构体的认识:binder_node 可以理解为binder实体的节点binder_work binder驱动中的事务binder_proc 进程所持有的binder信息,值得注意的是,binder_proc有四棵红黑树,分别是threads,nodes,refs_by_desc和refs_by_...

2020-04-05 22:05:57 414

原创 binder源码分析(二)

Service获取ServiceManagergetService(),先从cache里面查找服务是否已注册,没有就getIServiceManager().getService()。getIServiceManager()中返回ServiceManagerNative.asInterface(Binder.allowBlocking(BinderInternal.getContextOb...

2020-04-02 00:00:45 340

原创 Activity相关杂谈(二)

Intent flag之FLAG_ACTIVITY_FORWARD_RESULT关于FLAG_ACTIVITY_FORWARD_RESULT,可以看Intent的注释: /** * If set and this intent is being used to launch a new activity from an * existing one, then the re...

2020-03-27 00:00:16 183

原创 android activity相关杂谈

看Activity启动流程中,记一下关于Launcher、SystemServer、Application的一些笔记。LauncherLauncher在onCreate时会创建LauncherModel并调用startLoader,创建LoaderTask。调用 loadWorkspace、bindWorkspace等。loadWorkspace会查询获取widget、shortcut、fol...

2020-03-24 00:31:52 133

原创 android事件分发机制分析(三)

总结一下事件分发,下图源自Kelin的简书文章,介绍了对于ACTION_DOWN事件的分发,上面是activity,中间是ViewGroup,下面是View,当然多层ViewGroup也是同样的道理。ACTION_DOWNActivity:首先调用dispatchTouchEvent对事件进行分发。若ViewGroup或者子view不消费,调用自身的onTouchEvent;Gro...

2020-03-09 23:00:00 95

原创 android事件分发机制分析(二)

dispatchTransformedTouchEvent如果不是cancel的话,尽管pointerId可能有所不同,但是大体逻辑还是一样的,如果传入的view为null,将ViewGroup视为一个普通的view,调用dispatchTouchEvent,否则调用的dispatchTouchEvent。对于pointerId的不同的情况,会将event的pointerId赋值为新的再传递下去...

2020-03-09 17:41:46 104

原创 android事件分发机制分析(一)

事件分发机制分析ActivityActivity的分发机制比较简单,如果是ACTION_DOWN则调用onUserInteraction(),该函数实现默认为空,可自定义拦截,接着将调用ViewGroup的dispatchTouchEvent(),如果ViewGroup消化掉了则直接返回true,否则调用Activity的onTouchEvent()。官方的注释也写道,开发者可以重写该函数以拦...

2020-03-05 00:22:51 428

原创 binder源码分析(一)

前言 接触Android的时候就对binder有所耳闻,作为进程间通信的工具,binder驱动,拷贝数据的次数少,使用起来,前段时间看来了些源码,自己尝试分析了之后还是受益匪浅,写下来,日后也可以看看回顾一下。servicemanagerint main(int argc, char** argv){ struct binder_state *bs; union seli...

2020-02-18 22:03:38 563

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除