
Android
文章平均质量分 94
为码消得人憔悴
昨夜西风凋碧树,独上高楼,望尽天涯路。
衣带渐宽终不悔,为伊消得人憔悴。
众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。
展开
-
Binder基石-Parcel
简述Binder是Android进程间通信的基础,相信小伙伴们都曾学习了解过Binder,不知道小伙们有没有产生过这样的疑问:Java层,BinderProxy是何时创建的?自定义AIDL接口传递Binder实体的时候,Server端明明传的是Binder实体对象,Client端怎么就生成了一个Proxy对象?Binder IPC时我们设置的参数数据是如何传递的?想要回答这些问题,我们必须先要深入了解Android特有的数据序列化反序列化机制Parcel。正如如标题,parcel是Binder在Andr原创 2020-06-19 13:41:49 · 1568 阅读 · 1 评论 -
Android补间动画原理介绍
一 简述补间动画是Android诞生便支持的动画,也是App开发中最常用的动画,目前Android支持四种补间动画:位移(TranslateAnimation),旋转(RotateAnimation),缩放(ScaleAnimation)和透明(AlphaAnimation)。补间动画主要作用对象是Android的View。核心类的关系如下图所示:Animation是一个抽象类,...原创 2019-10-16 17:50:12 · 1348 阅读 · 0 评论 -
Android消息机制-Looper MessageQueue Handler
Android有两种特别重要的通信机制,一是Binder IPC,二是消息机制,前者用于进程间通信,后者用于进程内线程间通信。本篇将介绍Android中的消息机制。在介绍Android消息机制之前,先提几个问题,如果您能很好的答出这几个问题,建议您关闭本文章,因为您已经很好的掌握了消息机制的原理了。问题一”Handler,Looper和MessageQueue三者之间对应的关系?“问题二”Loop...原创 2018-10-08 15:52:05 · 455 阅读 · 0 评论 -
Android7.0背光调节
涉及类: 一.简述Android屏幕背光属于Android系统中display模块,display是从Power中分出来的,所以和Power有着密不可分的关系。背光调节中,又可以分为手动调节和自动调节两个功能,Android定义背光值0-255。日常调试过程中,我们可以直接cat/sys/class/leds/lcd-backlight/brightness的值,来获得当前屏幕背光...原创 2017-06-27 19:16:14 · 8556 阅读 · 0 评论 -
ActivityManagerService解读之Activity启动闲聊--Activity启动窗口和TaskSnapshot
什么是Activity的启动窗口?为什么存在这样的一个窗口?什么是TaskSnapshot?啥也不说了,直接带着这些个问题开始本篇的闲聊。什么是Activity的启动窗口,为什么存在这样的一个窗口?我们先来一个动图直观的了解一下。首先我们点击启动我们的测试demo,看见蓝色的界面没有,那就是Activity的启动窗口。Android在Activity启动的时候,当应用界面还未显示出来...原创 2019-03-19 19:49:56 · 3621 阅读 · 1 评论 -
Android Animation API介绍----简单分析ViewAnimation的执行原理
Android用于描述动画的抽象基类,Android本身提供的动画和我们自定义的动画一般都继承Animation.Interpolator & Animation.AnimationListenerInterpolator:用来描述动画运行的过程Animation.AnimationListener:动画执行过程的回调,目前提供了onAnimationStart,onAnima...原创 2019-08-23 17:09:25 · 677 阅读 · 0 评论 -
聊聊Android中的Context-初步分析Android中Context的实现
说到Context,大家一定非常熟悉,Android中的很多操作都和Context有关,比如打开activity、发送广播、打开本包下文件夹和数据库、获取classLoader、获取资源等等。那么这个Context究竟是何方神圣,我们不得而知,仅仅止步于如何使用Context,本篇将和大家一起聊聊Android中的Context。Context架构设计Android Context的设...原创 2018-10-08 15:27:49 · 400 阅读 · 0 评论 -
Android ANR 问题第二弹------Input事件是如何超时导致ANR的
在Android ANR 问题第一弹中,我们介绍Android ANR问题分为三类:Input,Receiver,Service。我们现在就先来详细的介绍Input事件超时是如何导致ANR问题发生的,我们只有从原理上去了解Input超时的本质,才能更好的分析解决实际开发中遇到的问题。本文会以Android8.1的代码为准,来简要分析Input事件超时。在分析Input超时之前,我们先来简单的介...原创 2018-05-26 17:08:25 · 22005 阅读 · 0 评论 -
Could not read input channel file descriptors from parce问题分析解决
最近项目Monkey测试的时候A应用总是出现如下问题,导致Crash06-30 11:43:36.160 23438 23438 E InputChannel-JNI: Error 24 dup channel fd 74.06-30 11:43:36.161 23438 23438 D AndroidRuntime: Shutting down VM06-30 11:43:36.161 23...原创 2018-06-05 16:54:44 · 7866 阅读 · 3 评论 -
Android SSWD(system server Watchdog)工作原理
简介一直在想如何介绍Watchdog,思来想去还是源码比较给力“This class calls its monitor every minute. Killing this process if they don't return”简单粗暴。Android系统为了保证系统的稳定性,搞了这么个Watchdog,专门负责监控Android系统的一些核心服务和线程,并且在这些服务和线程发生异常或者...原创 2018-08-27 11:24:12 · 3070 阅读 · 2 评论 -
ActivityManagerService解读之进程管理
简介ActivityManagerService(后续简称为ams)是Android系统框架层中的一个很重要的服务,负责Android四大组建的启动和管理,进程的创建和调度。接下来,咱们今天就来聊聊ams对进程的创建和调度。参考于Android P代码。进程Android系统将尽可能的长时间的保持应用进程,当Android系统内存不足的时候,为了新建进程或运行更重要的进程,最终需要移除...原创 2018-08-28 15:37:53 · 1874 阅读 · 0 评论 -
ActivityManagerService解读之进程管理(相关信息持续补充)
在介绍updateOomAdjLocked方法之前,我们先补充一些进程相关的信息,便于后续更好的理解。进程/轻量级进程状态S:Suspended 可中断的睡眠,可能是由于输出 Trace、GC 或 debug 被暂停 R:Running/Runnable 运行或就绪状态 D:Disk Sleep 不可中断的睡眠,通常是在等待 I/O,比如磁盘 I/O、网络 I/O...原创 2018-08-29 16:52:34 · 834 阅读 · 0 评论 -
ActivityManagerService解读之进程管理updateOomAdjLocked方法
经过前面的ActivityManagerService解读之进程管理的介绍,我们知道AMS对进程的管理主要体现于更新LRU集合和更新进程OOM值两个方面。限于篇幅,前一篇没有对更新进程OOM的updateOomAdjLocked方法深入分析,只是介绍了原理。本篇将会详细分析updateOomAdjLocked方法。代码分析ActivityManagerService中updateOomAd...原创 2018-08-30 10:25:32 · 3338 阅读 · 0 评论 -
ActivityManagerService解读之进程管理computeOomAdjLocked方法
上一篇文章我们介绍了updateOomAdjLocked,我们将其分为了五个部分更新前的初始化,计算进程oom,设置进程oom,主动回收一些内存,计算进程pss进行扫尾结束工作。本篇将详细介绍部分之二计算进程oom代码分析分析computeOomAdjLocked之前,我们先重温一下进程oom和Android进程分类相关的基础知识以及补充一些相关的后续分析将要用的一些信息。Android中...原创 2018-08-30 16:57:52 · 2212 阅读 · 0 评论 -
Android ANR 问题第一弹
日常开发测试中,我们经常会遇到各种应用的ANR问题,什么是ANR?application not respond,说的就是你的应用无响应了,卡了废话不多说,直接上干货一:Android ANR 分三类Input dispatch(系统的key,屏幕点击事件)处理超时 ANR timeout 5000msBroadcastReceiver 分发+处理超时ANR(广播超时一般指的都是有序广播即orde...原创 2018-05-25 17:47:37 · 2315 阅读 · 0 评论