Navigation

Here is the information you need

Blogs


[January 31, 2016] [置顶]Android 操作系统架构开篇

[June 1, 2019] [置顶]Flutter 跨平台演进及架构开篇

[March 26, 2020] 字节跳动为什么选用Flutter:并非跨平台终极之选,但它可能是不一样的未来

[October 19, 2019] 彻底掌握Timeline原理(一)

[October 12, 2019] ServiceIsolate工作原理

[October 5, 2019] Dart虚拟机运行原理

[September 22, 2019] 解读Dart虚拟机的参数列表

[September 21, 2019] Flutter机器码生成gen_snapshot

[September 14, 2019] Flutter前端编译frontend_server

[September 7, 2019] 源码解读Flutter run机制

[September 1, 2019] 源码解读Flutter tools机制

[August 10, 2019] 深入理解Flutter的Platform Channel机制

[August 4, 2019] 搭建Flutter Framework开发环境

[August 3, 2019] 搭建Flutter Engine源码编译环境

[July 27, 2019] 深入理解Flutter的Isolate创建过程

[July 21, 2019] 深入理解Flutter异步Future机制

[July 20, 2019] 深入理解Flutter消息机制

[July 13, 2019] 深入理解Flutter动画原理

[July 6, 2019] 深入理解setState更新机制

[June 29, 2019] 深入理解Flutter应用启动

[June 23, 2019] 深入理解Dart虚拟机启动

[June 22, 2019] 深入理解Flutter引擎启动

[June 16, 2019] Flutter渲染机制—GPU线程

[June 15, 2019] Flutter渲染机制—UI线程

[May 28, 2019] 我与小米的那些年

[April 6, 2019] 彻底理解安卓应用无响应机制

[March 20, 2019] Android技术架构演进与未来

[January 26, 2019] 理解Android P内部API的限制调用机制

[January 19, 2019] global reference限制策略

[January 13, 2019] 深度解读ArrayMap优势与缺陷

[January 6, 2019] 源码解读epoll内核机制

[January 5, 2019] 源码解读poll/select内核机制

[December 2, 2018] 源码解读Linux等待队列

[June 2, 2018] 理解Android.bp

[May 19, 2018] 解读Android进程优先级ADJ算法

[May 12, 2018] Binder Driver缺陷导致定屏的案例

[April 8, 2018] 系统角度解读Android P新特性

[February 24, 2018] 深度剖析APP保活案例

[February 17, 2018] 跑monkey压力测试过程的冻屏案例

[February 10, 2018] 数组越界导致系统重启的案例

[February 3, 2018] 一行Log引发多线程并发问题的案例

[January 27, 2018] Android logd日志原理

[October 6, 2017] NotificationManagerService原理分析

[September 9, 2017] 介绍gdb调试工具

[September 2, 2017] 介绍addr2line调试命令

[August 12, 2017] /proc/stat解析

[August 6, 2017] Linux进程pid分配法

[August 5, 2017] Linux进程管理(二)--fork

[July 30, 2017] Linux进程管理(一)

[July 16, 2017] Android SDK与API Level对应关系

[July 9, 2017] Android打印Trace堆栈

[July 2, 2017] AMS之dumpsys篇

[June 25, 2017] AMS总结(一)

[June 18, 2017] 全面剖析SharedPreferences

[June 11, 2017] 四大组件之ActivityRecord

[June 4, 2017] 四大组件之ContentProviderRecord

[June 3, 2017] 四大组件之BroadcastRecord

[May 25, 2017] 四大组件之ServiceRecord

[May 19, 2017] 四大组件之综述

[May 1, 2017] Binder异常解析

[April 23, 2017] LocalBroadcastManager原理分析

[April 16, 2017] 简述Activity与Window关系

[April 9, 2017] 理解Android Context

[April 2, 2017] 理解Application创建过程

[March 26, 2017] loadLibrary动态库加载过程分析

[March 19, 2017] Android类加载器ClassLoader

[March 12, 2017] 理解AlarmManager机制

[March 10, 2017] 理解JobScheduler机制

[February 25, 2017] Choreographer原理

[February 18, 2017] SurfaceFlinger绘图篇

[February 11, 2017] SurfaceFlinger启动篇

[February 5, 2017] Android图形系统概述

[January 22, 2017] 以Window视角来看startActivity

[January 15, 2017] WMS—启动窗口(StartingWindow)

[January 8, 2017] WMS—启动过程

[January 1, 2017] Input系统—ANR原理分析

[December 31, 2016] Input系统—事件处理全过程

[December 24, 2016] Input系统—UI线程

[December 17, 2016] Input系统—InputDispatcher线程

[December 11, 2016] Input系统—InputReader线程

[December 10, 2016] Input系统—启动篇

[December 2, 2016] 理解Android ANR的信息收集过程

[November 27, 2016] Native进程之Trace原理

[November 26, 2016] 解读Java进程的Trace文件

[November 20, 2016] 多用户管理UserManager

[November 13, 2016] Installd守护进程

[November 6, 2016] PackageManager启动篇

[October 29, 2016] 进程的Binder线程池工作过程

[October 22, 2016] Android进程绝杀技--forceStop

[October 9, 2016] Android四大组件与进程启动的关系

[October 3, 2016] Binder死亡通知机制之linkToDeath

[October 2, 2016] binderDied()过程分析

[October 1, 2016] Android系统服务的注册方式

[September 24, 2016] 理解Android线程创建流程

[September 17, 2016] Android LowMemoryKiller原理分析

[September 4, 2016] 彻底理解Android Binder通信架构

[September 3, 2016] Binder子系统之调试分析(三)

[August 28, 2016] Binder子系统之调试分析(二)

[August 27, 2016] Binder子系统之调试分析(一)

[August 21, 2016] AndroidStudio内存工具

[August 20, 2016] AndroidStudio常用快捷键

[August 13, 2016] AndroidStudio源码开发环境搭建

[August 7, 2016] Android进程调度之adj算法

[July 30, 2016] 理解ContentProvider原理

[July 23, 2016] Android存储系统之架构篇

[July 17, 2016] Android存储系统之源码篇

[July 9, 2016] Android重启流程(一)

[July 2, 2016] 理解Android ANR的触发原理

[June 25, 2016] 理解Native Crash处理流程

[June 24, 2016] 理解Android Crash处理流程

[June 21, 2016] WatchDog工作原理

[June 20, 2016] 简单聊一聊Throwable

[June 19, 2016] Android系统稳定性简述

[June 15, 2016] debuggerd守护进程

[June 12, 2016] DropBoxManager启动篇

[June 11, 2016] 调试系列2:bugreport实战篇

[June 10, 2016] 调试系列1:bugreport源码篇

[June 4, 2016] Android Broadcast广播机制分析

[May 28, 2016] Android JNI原理分析

[May 21, 2016] Linux系统调用(syscall)原理

[May 15, 2016] Android EventLog含义

[May 14, 2016] dumpsys命令用法

[May 3, 2016] ContentProvider引用计数

[May 2, 2016] unbindService流程分析

[May 1, 2016] bindService启动过程分析

[April 24, 2016] 如何自学Android

[April 23, 2016] AMS杀进程场景之汇总

[April 16, 2016] 理解杀进程的实现原理

[April 1, 2016] Linux Kernel简介

[March 26, 2016] 理解Android进程创建流程

[March 19, 2016] 理解Android编译命令

[March 18, 2016] 简述Activity生命周期

[March 12, 2016] startActivity启动过程分析

[March 6, 2016] startService启动过程分析

[March 5, 2016] Binder IPC的权限控制

[February 28, 2016] Pm命令用法

[February 27, 2016] Am命令用法

[February 21, 2016] ActivityManagerService启动过程

[February 20, 2016] Android系统启动-SystemServer下篇

[February 14, 2016] Android系统启动-SystemServer上篇

[February 13, 2016] Android系统启动-zygote篇

[February 5, 2016] Android系统启动-Init篇

[February 1, 2016] Android系统启动-综述

[January 24, 2016] Java类加载器(ClassLoader)

[January 23, 2016] Java注解(Annotation)

[January 17, 2016] 性能工具Traceview

[January 17, 2016] 性能工具Systrace

[January 16, 2016] Java线程池分析

[January 10, 2016] Android耗电统计算法

[January 3, 2016] wait、notify、sleep、interrupt对比分析

[January 2, 2016] Android内存分析命令

[January 1, 2016] Android消息机制3-Handler(实战)

[December 27, 2015] Android消息机制2-Handler(Native层)

[December 26, 2015] Android消息机制1-Handler(Java层)

[December 20, 2015] Linux信号(signal)机制

[December 19, 2015] 进程篇—进程整理

[December 12, 2015] 进程状态的切换

[December 6, 2015] select/poll/epoll对比分析

[December 5, 2015] 理解Refbase强弱引用

[November 28, 2015] Binder系列10—总结

[November 23, 2015] Binder系列9—如何使用AIDL

[November 22, 2015] Binder系列8—如何使用Binder

[November 21, 2015] Binder系列7—framework层分析

[November 15, 2015] Binder系列6—获取服务(getService)

[November 14, 2015] Binder系列5—注册服务(addService)

[November 8, 2015] Binder系列4—获取ServiceManager

[November 7, 2015] Binder系列3—启动ServiceManager

[November 2, 2015] Binder系列2—Binder Driver再探

[November 1, 2015] Binder系列1—Binder Driver初探

[October 31, 2015] Binder系列—开篇

[October 30, 2015] Linux内存管理

[October 26, 2015] Jvm系列5—执行子系统

[October 25, 2015] Jvm系列4—类的加载

[October 24, 2015] Jvm系列3—字节码指令

[October 18, 2015] Jvm系列2—Class文件格式

[October 17, 2015] Jvm系列1—运行时内存结构

[October 11, 2015] ps进程命令

[October 3, 2015] Dalvik与ART虚拟机的GC调试日志

[October 1, 2015] Android进程生命周期与ADJ

[October 1, 2015] 进程优先级

[September 26, 2015] APP优化小建议

[September 20, 2015] Android Launcher源码

[September 19, 2015] Android事件分发机制

[September 18, 2015] adb连接不上手机的解决方法

[September 13, 2015] grep && find命令用法

[September 6, 2015] 源码解读Android属性动画

[September 5, 2015] Android动画插值器

[September 4, 2015] Android三种动画实现

[September 2, 2015] Android中的dp、sp与px换算关系

[August 30, 2015] 数组遍历的性能分析

[August 22, 2015] dumpsys原理简介

[August 10, 2015] Android开发规范

[August 1, 2015] Android体系架构

[July 26, 2015] Java中的条件编译

[July 18, 2015] 理解Java反射机制

[July 5, 2015] 设计模式-开篇

[June 28, 2015] ADB常用命令笔记

[June 27, 2015] Git常用命令

[June 21, 2015] 浅谈HTTP RESTful

[June 20, 2015] 浅谈HTTP协议

[June 13, 2015] SELinux 权限问题

[June 9, 2015] Atom编辑器

[June 7, 2015] 搭建Jekyll本地写作环境

[June 6, 2015] Markdown笔记

[May 31, 2015] Activity与Service生命周期

[January 5, 2014] 5.5 探究Binder Driver

[January 4, 2014] 5.4 查询服务

[January 3, 2014] 5.3 注册服务

[January 2, 2014] 5.2 ServiceManager管家

[January 1, 2014] 5.1 Binder概述