Vsync信号是SurfaceFlinger进程中核心的一块逻辑,我们主要从以下几个方面着手讲解。 软件Vsync是怎么实现的,它是如何保持有效性的? systrace中看到...
Vsync信号是SurfaceFlinger进程中核心的一块逻辑,我们主要从以下几个方面着手讲解。 软件Vsync是怎么实现的,它是如何保持有效性的? systrace中看到...
一、问题描述 二、问题原因 是因为一个文件在jar包中出现多次,也就是是android.support和androidx不能共存,而我们在dependencies就出现两个公...
今天拷贝了同事的一个Demo代码尝试着在自己的电脑上运行一下,结果遇到了sun.security.validator.ValidatorException: PKIX pat...
前言 上一篇文章,我们一直聊到了ThreadedRenderer的setFrameCallback方法,就停止下来了。本文继续沿着setFrameCallback的逻辑来看看...
前言 经过上一篇章的讨论,我们理清楚了ActivityRecord,TaskRecord和窗体容器之间的关系。同时达到了应用启动时,启动的第一个启动窗口,StartingWi...
1:概述 应用程序在冷启动过程中通常会显示一个预览窗口,接着在显示要启动的activity的窗口,因为activity的窗口显示渲染到屏幕上是需要时间的,特别是在性能比较差的...
前言 通过启动窗口为例子,大致上明白了WMS是如何添加,更新,移除窗口的工作原理。本文将会重点聊一聊窗口的大小计算逻辑。 下面的源码都是来自Android 9.0 正文 窗口...
系列文章传送门: Android 动画 - 帧动画 & 补间动画[https://www.jianshu.com/p/312cbc9263e6]Android 动画 - 插值...
前言 插值器(Interpolator)和估值器(TypeEvaluator)是实现复杂动画效果的关键,本文主要介绍插值器的使用和如何自定义插值器。 定义 Android实现...
在前面的文章中,我提到了我们会用 ftrace 来解决问题,在开始之前,我先聊聊外面大牛们是如何用 ftrace 来解决问题的,第一个例子,显而易见,就是 Brendan G...
我们通过Android性能优化—内存分析工具MAT的使用(一)大概了解了Android到MAT的转换过程。现在我们熟悉下MAT 中常规的使用。 Overview 用MAT打开...
OQL是Object Query Language的简写,即对象查询语言,OQL语法和关系型标准查询语言SQL的语法相似,只是增加了比如对象标识、复杂对象、操作、继承、多态性...
一 简述 android 的libc中有malloc_debug的hook调用,我们可以使用malloc_debug中的hook函数对内存分配进行跟踪加测。malloc_de...
该文不从实现或者绘画原理里区别animation和animator,主要是从特点,使用方法和形式来区别。 特点 简单来说,比起animation,animator能更精确得控...
都写在一篇里面有点太长了...且很难满足日更的要求,所以多拆几篇,每篇写个5个参数,岂不是更美滋滋 minfree_levels Very, very important 的...
build.gradle 默认的仓库为 使用起来非常不便。于是将源换成阿里云的源,打开 https://maven.aliyun.com[https://maven.aliy...
努比亚技术团队原创内容,转载请务必注明出处。 Android卡顿掉帧问题分析之原理篇[https://www.jianshu.com/p/386bbb5fa29a] Andr...
一、前言 android的WindowManagerService(简称wms)是系统框架一个非常庞大复杂的一个系统模块,它主要由三大块组成:wms数据结构,wms大遍历,w...