
开发工具
文章平均质量分 89
Big Skipper
The Chosen One.
展开
-
Systrace6 Input 解读
一 概述本文是 Systrace 系列文章的第六篇,主要是对 Systrace 中的 Input 进行简单介绍,介绍其 Input 的流程; Systrace 中 Input 信息的体现 ,以及如何结合 Input 信息,分析与 Input 相关的问题。在 Android 基于 Choreographer 的渲染机制详解 这篇文章中,我们知道,Android App 的主线程运行的本质是靠 Message 驱动的,这个 Message 可以是循环动画、可以是定时任务、可以是其他线程唤醒,不过我们最常见的原创 2021-08-05 22:25:29 · 442 阅读 · 0 评论 -
Systrace5 SurfaceFlinger 解读
一 概述本文是 Systrace 系列文章的第五篇,主要是对 SurfaceFlinger 进行简单介绍,介绍了 SurfaceFlinger 中几个比较重要的线程,包括 Vsync 信号的解读、应用的 Buffer 展示、卡顿判定等,由于 Vsync 这一块在Systrace 基础知识 - Vsync 解读 和 Android 基于 Choreographer 的渲染机制详解 这两篇文章里面已经介绍过,这里就不再做详细的讲解了。我们来看官方对于 SurfaceFlinger 的定义:大多数应用在屏原创 2021-08-04 23:55:57 · 1189 阅读 · 1 评论 -
Systrace4 SystemServer 解读
一 概述本文是 Systrace 系列文章的第四篇,主要是对 SystemServer 进行简单介绍,介绍了 SystemServer 中几个比较重要的线程,由于 Input 和 Binder 比较重要,所以单独拿出来讲,在这里就没有再涉及到。二 窗口动画Systrace 中的 SystemServer 一个比较重要的地方就是窗口动画,由于窗口归 SystemServer 来管,那么窗口动画也就是由 SystemServer 来进行统一的处理,其中涉及到两个比较重要的线程:Android.Anim 和原创 2021-08-03 23:24:40 · 417 阅读 · 0 评论 -
Systrace3 Why 60 fps
一 概述本文是 Systrace 系列文章的第三篇,解释一下为何大家总是强调 60 fps。60 fps 是一个软件的概念,与屏幕刷新率里面提到的 60hz 是不一样的,可以参考这篇文章:新的流畅体验,90Hz 漫谈。今天来讲一下为何我们讲到流畅度,要首先说 60 帧。我们先来理一下基本的概念:60 fps 的意思是说,画面每秒更新 60 次这 60 次更新,是要均匀更新的,不是说一会快,一会慢,那样视觉上也会觉得不流畅每秒 60 次,也就是 1/60 ~= 16.67 ms 要更新一次在原创 2021-08-02 23:18:06 · 249 阅读 · 0 评论 -
Systrace2 预备知识
一 概述本文是 Systrace 系列文章的第二篇,主要是讲解一些分析 Systrace 的预备知识, 有了这些预备知识, 分析 Systrace 才会事半功倍, 更快也更有效率地找到问题点。本文介绍了如何查看 Systrace 中的线程状态 , 如何对进程的唤醒信息进行分析, 如何解读信息区的数据, 以及介绍了常用的快捷键。通过本篇文章的学习,相信你可以掌握进程和线程相关的一些信息,也知道如何查看复杂的 Systrace 中包含的关键信息。二 线程状态查看Systrace 会用不同的颜色来标识不同原创 2021-08-01 23:10:35 · 301 阅读 · 0 评论 -
Systrace1 简介
一 概述本文是 Systrace 系列文章的第一篇,主要是对 Systrace 进行简单介绍,介绍其简单使用方法;如何去看 Systrace;如何结合其他工具对 Systrace 中的现象进行分析。本系列的目的是通过 Systrace 这个工具,从另外一个角度来看待 Android 系统整体的运行,同时也从另外一个角度来对 Framework 进行学习。也许你看了很多讲 Framework 的文章,但是总是记不住代码,或者不清楚其运行的流程,也许从 Systrace 这个图形化的角度,你可以理解的更深入原创 2021-07-31 22:59:38 · 293 阅读 · 0 评论 -
git学习笔记
一 最小配置git config --local 针对某个仓库git config --global 针对当前用户所有仓库(常用)git config --system 对系统所有用户的仓库都有效1.1 配置git config --global user.name "lanxiaobin"git config --global user.email "lanxiaobin"1.2 显示config配置 加 --listgit config --list --global二 创建仓库原创 2021-06-28 18:37:57 · 149 阅读 · 0 评论 -
理解Gradle1 为什么要用Gradle
一 概述又要开启一个新系列了,这个系列我们来学习Gradle,它是一个基于JVM的新一代构建工具,关于Gradle完全可以写一本书,这个系列会针对Android开发来对Gradle的知识进行精简讲解。Gradle目前已经应用于多个Android开发的技术体系中,比如构建系统、插件化、热修复和组件化等等,如果你不了解Gradle,那么你对于上述技术体系的了解会大打折扣。为了让大家能够更好的学习Gradle,这篇文章不会介绍Gradle具体的技术细节,而是先介绍为什么现在要用Gradle?二 项目自动化G原创 2021-05-05 23:52:02 · 254 阅读 · 0 评论 -
Gradle 简述
Gradle的基本使用(一)Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。它提供灵活的通用构建工具,就像ant。同时完美兼容Maven或Ivy仓库Gradle的特点:一个像Ant一样非常灵活的通用构建工具一种可切换的,像Maven一样基于转载 2017-11-01 23:53:28 · 290 阅读 · 0 评论