![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
monkeyking430
这个作者很懒,什么都没留下…
展开
-
ActivityManagerService分发广播
前文Android发送广播中,客户端通过Binder调用AMS发送广播后,会将广播和广播接收者构造成BroadcastRecord,然后根据广播和广播接收者的类型来决定加入队列: 1. 前台广播,放入前台广播队列 2. 后台广播,放入后台广播队列 3. 静态注册的广播接收器和有序广播对应的动态注册的广播接收器放入到前台或后台的串行数组(mOrderedBroadcasts)中 4. 普通广播原创 2017-08-08 10:54:04 · 1173 阅读 · 0 评论 -
Android PatternMatcher
Android PatternMatcher PatternMatcher的构造函数public PatternMatcher(String pattern, int type);pattern是模式字符串 type是匹配类型,共有如下三种 1.PATTERN_LITERAL 按照字面值匹配,忽略特殊字符,区分大小写 2.PATTERN_PREFIX 匹配前缀,即待匹配字串是以pattern为前原创 2017-08-10 11:32:46 · 1466 阅读 · 0 评论 -
Android 发送广播
发送广播各个APP可以通过binder调用AMS的广播发送接口,发送广播,各个APP是消息发布/订阅模型中的消息发布端使用实例广播按照处理的速度分为:前台广播和后台广播 广播按照AMS处理方式分为:普通广播和有序广播 同时还有黏性广播和非黏性广播(已经废弃,不做分析)普通广播的发送Intent intent = new Intent("Test");//这个flag表明接收该广播的receiv原创 2017-08-02 19:49:14 · 4416 阅读 · 0 评论 -
Android BroadcastReceiver的注册
广播接收器的注册广播接收器,是用来接收系统和应用发出的广播,常见的是开机广播,可以用于实现开机启动服务的功能,还有网络变化,电池电量变化等等均会发出相应的广播。Android系统中的广播设计的很好,对于开发者而言非常容易上手。静态注册不管该应用程序是否处于活动状态,都会进行监听,比如某个程序是监听内存的使用情况的,当在手机上安装好后,不管该应用程序是处于什么状态,都会执行该监听方法中的内容。静态注册原创 2017-08-02 17:12:23 · 486 阅读 · 0 评论 -
Android Intent匹配规则
Android Intent在整个Android系统使用非常广泛,如startActivity,startService,广播的发送等等都会用到Intent,以广播为例,广播的发送方sendBroadcast(Intent),那AMS是如何匹配对应的BroadcastReceiver的呢? 影响Intent匹配规则的有3个关键因素: 1.Action 2.Category 3.Data 广原创 2017-08-10 16:16:13 · 628 阅读 · 0 评论 -
Android按键分发流程之java层按键传递
Android按键分发流程之java层按键传递平台:Android6.0Android开发中在自定义Activity以及View时经常会重写onKeyDown,onKeyUp,dispatchKeyEvent,同时View还有setOnKeyListener等,当一个按键事件发生时,这些方法将会被回调,但是到底哪个先回调,哪个后回调呢,一直不是特别清楚,只知道个大概,下面将详细讲述按键在java层的原创 2017-06-06 13:55:40 · 4148 阅读 · 0 评论 -
Android输入子系统概览
Android输入子系统概览平台:Android6.0由于工作是基于Android系统做智能电视,因此平常的工作中在输入系统这块接触的比较多的是KeyEvent事件,对于Android的KeyEvent也能熟练使用,如Activity重写onKeyDown,onKeyUp,View注册OnKeyListener这些都是常用的,但是这些api的调用顺序是怎样的,一直不太了解。另外我们知道Android原创 2017-06-08 10:07:25 · 1516 阅读 · 0 评论 -
Android输入子系统之启动过程分析
Android输入子系统之启动过程分析平台:Android6.0 为了使整个流程更清晰,函数的代码只保留跟本文分析相关的部分,并且将一些错误判断相关的代码也去掉了,如有兴趣,可以查阅源码。Android的输入子系统是在InputManagerService中启动的,而InputManagerService是在system_server中启动的。我们先看下整个启动过程的序列图,然后根据序列图来一步步原创 2017-06-08 10:38:37 · 1030 阅读 · 0 评论 -
Android输入子系统之应用程序注册消息监听过程分析
应用程序注册消息监听过程分析CPP层InputManagerService启动后就需要监听按键输入了,当InputManagerService监听到键盘输入的事件后就需要分发键盘事件,但是分发给谁呢?这里首先应该是分发给当前激活的Window窗口,但是当前激活的window窗口怎么才能接受到消息呢,window窗口需要注册一个键盘消息接收通道到InputManagerService中,那么如何注册的原创 2017-06-08 13:58:58 · 2250 阅读 · 0 评论 -
Android输入子系统之InputReader读取键盘消息过程分析
InputReader读取键盘消息过程分析在Android输入子系统之启动过程分析中,InputManagerService启动之后,会调用start函数,之后调用native层的nativeStart函数,然后调用InputManager::start函数,该函数会调用InputReaderThread的threadLoop函数,该函数会调用InputReader的loopOnce函数从Event原创 2017-06-09 10:17:29 · 2144 阅读 · 1 评论 -
Android输入子系统之InputDispatcher分发键盘消息过程分析
InputDispatcher分发键盘消息过程分析在Android输入子系统之启动过程分析中,InputManagerService启动之后,会调用start函数,之后调用native层的nativeStart函数,然后调用InputManager::start函数,该函数会调用InputDispatcherThread的threadLoop函数,该函数会调用InputDispatcher的disp原创 2017-06-09 11:06:24 · 1864 阅读 · 0 评论 -
Android本地程序的printf输出到logcat中
Android本地程序的printf输出到logcat中原创 2017-06-01 18:52:21 · 4812 阅读 · 0 评论 -
Android广播的超时机制
在工作中偶遇到我们的Launcher在监听TIME_TICK广播超时,导致Launcher ANR问题,遂研究一下Android的广播超时机制。从前面ActivityManagerService分发广播一文可以看出AMS分发广播的关键函数processNextBroadcast,该函数首先是分发并行队列中的广播,然后依次分发串行队列中的广播。并行队列中的广播的分发是循环取出每一个广播,并直接分发,由原创 2017-08-08 15:11:01 · 7392 阅读 · 0 评论 -
Android广播总结
以前面几篇文章为基础,总结一下Android广播系统的一些知识Android广播分为有序广播和普通广播Android广播也可以分为前台广播和后台广播动态注册的广播接收器是非常驻型,一般是跟着Activity的生命周期走,所以在Activity结束前需要取消注册广播接收器;静态注册的广播是常驻型,即使应用未启动,当有相关的广播发出时,其会被系统调用自动运行当广播为有序广播时,优先级高的先接收(原创 2017-08-08 15:20:17 · 580 阅读 · 0 评论 -
Android 广播系统
Android四大组件之一BroadcastReceiver,其主要用于异步接收广播。广播分为两个方面:广播发送者和广播接收者,BroadcastReceiver指的是广播接受者,客户端进程通过binder调用AMS发送广播。广播主要应用于Android组件间通信,可以应用于同一进程或不同进程组件间或组件内通信。其实现模型是观察者模式,基于消息的发布/订阅模型,因此将广播发送者和广播接收者解耦,使得原创 2017-08-02 17:09:45 · 263 阅读 · 0 评论 -
Android Uri
Android UriAndroid中的Uri类似于Java中的URI,即统一资源标志符,是Android中对URI的一种扩充。Uri的格式[scheme:]scheme-specific-part[#fragment] 主要由三部分组成:scheme,scheme-specific-part,fragment 其中scheme-specific-part简称ssp,可以细分为如下形式[schem原创 2017-08-10 17:33:58 · 456 阅读 · 0 评论