logo头像

我有一个梦想

布局优化

[TOC] 绘画原理Android的绘制主要是借助cpu和gpu结合刷新机制共同完成的 cpu:负责执行measure、layout等方法,计算显示内容 gpu:负责栅格化(将UI元素绘制在屏幕上) 绘制过程使用skia库(2D)...

启动优化

app启动过程 点击图标启动 LauncherApp通知AMS进行启动,LauncherActivity onPause AMS新建app进程,创建ActivityThread,创建ApplicationThread 通过Applic...

注解原理

[TOC] 注解简析元注解:修饰注解的注解, @Target:注解的作用目标(修饰方法,类还是字段) @Retention:注解的生命周期 SOURCE:仅存在java源文件中,经过编译器后就丢弃,适用于一些检查行的操作,比如@Ov...

LiveData和ViewModel源码分析

[TOC] ViewModelViewModel的定义ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。 历史方式的缺点: 对于简单的数据,Ac...

Android大厂面试题

京1: butterknife原理,R2文件? Handler异步消息,同步屏障?同步消息?looper.perpare()何时创建?message.obtain()? Vsync,垂直同步信号? UI滑动渲染优化? 内存泄漏?le...

面试指南

[TOC] 框架篇EventBus简述EventBus的理解EventBus作为通信事件传递的总线,你无需控制值的传递,也无需通过广播等低效实现,通过EventBus在你需要发送的地方post信息,在你需要接收的地方接收信息处理即可,...

Butterknife源码解析

[TOC] 使用1234567891011121314@BindView(R.id.about_titleView)TitleView aboutTitleView;@BindView(R.id.view_about)LinearLa...

EventBus用法和源码解析

[TOC] 参照版本: EventBus 3.0以后 为什么选择EventBus 简化了 组件交流方式 对事件通信双方解耦 灵活指定线程(4种线程模式) 速度快,性能好 库比较小,不占内存 使用方便 使用指南 角色 Event:事件...

JAVA泛型整理

JAVA泛型整理[TOC] 概述泛型的本质是参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型) 操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型...

windows下使用adb命令tab无法补全

windows下使用adb命令tab无法补全在windows中使用adb命令时,进入目录按tab没有自动补全,这样用起来很麻烦,不方便,所以做了一下整理: 查询更换10进制为9的方法不生效 感觉和adb的版本有关,所以着手去查看使用...