- 博客(6)
- 收藏
- 关注
原创 android R版本常见dump信息分析
adb shell dumpsys activity activities Display #:屏幕的displayId,默认主屏是0,堆栈在display上自上而下输出,越往上越在栈顶图层越在上 RootTask #:根栈的taskId,原生非分屏场景的RootTask就是Task本身,也就是RootTask并没有包含嵌套其他子栈 type=:栈类别,一般应用栈是standard,桌面是home mode=:窗口模式,全屏是fullscreen,原生悬浮窗是freeform、分屏是sp...
2022-01-13 17:19:03
5681
原创 android R版本应用程序窗口流程源码分析
应用启动时,Activity组件在启动之后,在执行完onResume生命周期之后会执行添加窗口到系统、计算窗口大小和位置、应用执行measure-layout-draw、系统窗口状态刷新这几个动作。1、 addWindow阶段Activity的启动本质实际最终也是使用WindowManager去addView(add一个DecorView对象)进而使得wms调用addWindow增加一个WindowState对象,而Activity的addView动作发生在Act......
2022-01-12 21:09:33
3426
原创 常用adb命令集锦
adb shell dumpsys activity activities:dump activity相关信息adb shell dumpsys window windows:dump window相关信息adb shell dumpsys SurfaceFlinger:dump surface相关信息adb shell dumpsys meminfo:dump内存相关信息adb shell dumpsys power:dump power相关信息,输出到本地文件中后搜索Wake Locks关键字即
2021-10-19 17:33:43
2538
原创 android R版本AppTransition动效源码分析
AppTransition代表activity组件的切换过程,启动或是退出activity都会执行AppTransition,Android系统定义了多达十几种应用的transition类型,这些类型定义具体可参考WindowManager类。本文以TRANSIT_TASK_OPEN类型为例,场景以桌面点击图库冷启动为例。一、冷启动跳转新应用1、prepareAppTransition准备阶段 在startActivity阶段会调用DisplayContent.pr...
2021-09-08 21:02:45
6069
1
原创 android R版本启动窗口Starting Window源码分析
启动窗口Starting Window主要分为两种:SplashScreen和Snapshot,前者为冷启栈(进程可能存在,但是一定是跨栈冷起栈场景),后者为热启复用栈场景;当然还有一种none类型,比如应用内页面跳转这种就不涉及startinwindow,所以是none类型。Starting Window功能是作为页面启动的过渡预览,提升启动速度和用户体验,因为正常页面启动需要耗费300-500ms时间,如果冷起场景由于要启动进程,这个过程甚至长达1-2s,如果没有过渡页,用户体验不佳。...
2021-09-06 19:24:34
2024
原创 android R版本应用程序启动过程源码分析
应用启动方式包括四种:Activity、Broadcast、Service、Provider四种安卓组件被唤醒和拉起时都可以造成进程启动。下面先主要以Activity启动为例来做个简要分析。 常见的Activity启动一般由startActivity发起,以桌面点击图库冷起为例,startActivity函数执行过程如下:08-24 20:58:18.744 1982 7944 I ActivityTaskManager: START u0 {act=andro...
2021-08-31 23:26:57
3537
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人