06 2024 档案
摘要:不同类型Drawable解析这里简单分析下不同xml是怎么解析成Drawable的一般获取一个Drawable资源有很多方法,如下方截图是一种,不同方法最后其实殊途同归,都是一个地方解析转化的,这里只以下面代码为入口分析前面代码片段比较简单,Resources的gerDrawable方法有多个不同数
阅读全文
摘要:AOD始终显示时间和信息(Dream)简析DreamManagerService启动在SystemServer的startOtherServices方法中会启动DreamManagerService服务这里是调用SystemServiceManager的startService方法显然,在Syste
阅读全文
摘要:开发者选项-显示点按操作反馈Settings设置入口首先查看界面中字串“显示点按操作反馈”:在SettingsLib中,有字串show_touches根据字串id查看对应的布局和代码调用在Settings中,有对应的使用上述字串的布局文件res/xml/development_settings.xm
阅读全文
摘要:开发者选项-指针位置应用设置部分搜索对应字串,在SettingsLib中搜到“指针位置”字串,其id名为pointer_location根据id在Settings中搜索布局相关(res/xml/development_settings.xml)查看其key(pointer_location)相关代码
阅读全文
摘要:visible_windows生成逻辑和解析visible_windows生成逻辑在开发者选项中生成错误报告或命令行使用dumpstate,会生成一个bugreprot的压缩包,如其中包含了一些dump信息,其中海有个压缩包里面包含了一些可见窗口的控件信息,但用notepad打开却多是乱码之前工作遇
阅读全文
摘要:click事件生成和attachInfo传递click事件生成(onClick调用)在Android开发中经常用到click事件监听,但其实click事件并不是地方传上来的事件,底层上报事件都是touch事件,而click事件其实是根据touch事件生成的,或者说click事件并不是一个纯粹的事件在
阅读全文
摘要:BootAnimation简析BootAnimation是开机动画,其对应源码在frameworks\base\cmds\bootanimation(这里使用android12的代码查看,不同版本代码有差异,但大体逻辑一般都差别不大),其编译产物是个二进制可执行文件bootanimation,在开机
阅读全文
摘要:系统音量条1、音量键处理image-20200718161014564如上,对于一般场景下,按音量上/下键,其事件传递到焦点窗口的根节点布局时(一般的Activity根节点布局都是DecorView)会走到DecorView的dispatchKeyEvent方法中,这里主要有两个分支,一个是Wind
阅读全文
摘要:运行时权限https://developer.android.google.cn/guide/topics/permissions/overview#runtime运行时权限不是新特性,但其具体流程还未细看过,这里大致走读下相关流程梳理下相关逻辑要了解运行时权限最好先看下上面开发者网站上的介绍在早期
阅读全文
摘要:setContentView与Activity初始布局我们常常在Activity中调用setContentView方法来设置自己的布局,然而其实仔细点会发现我们设置的布局并不是Activity显示的全部,有的地方可能设置一个空的布局,甚至不调用setContentView方法,但界面上是有内容的,可
阅读全文
摘要:AS断点调试 在查看流程或调试问题的时候一般采用添加log的方式,但添加Log一般都需要重新编译和安装,而对于框架部分的更是需要编译jar包push到机器后重启生效,对于一些简单的流程查看可能会比较繁琐,可以采用断点调试的方法,不用修改代码和编译,有时候会方便很多 首先打开代码工程(不需要编译),如
阅读全文
摘要:下载Android源码做Android有5、6年了,最近才明白要多学习、多积累、多总结、多记录,不积跬步无以至千里,不积小流无以成江海,只有始终走在前沿,才不会被淘汰Android源码下载并不难,网上很多资料,如如上是我结合网上资料和实践找到的两个比较靠谱和正式的教程网站,本来使用AOSP网站中的步
阅读全文
摘要:布局解析-LayoutInflater分析 一般添加布局或控件有两种方式,一种是直接new对应的View,然后通过addView方法添加到父控件中,一种是将布局写在layout的xml文件中,然后调用调用接口添加到父控件中,而这里就涉及到将xml布局转为View控件,一般都是使用LayoutInfl
阅读全文
摘要:存储访问框架SAF简析(Storage Access Framework) 1.简介 https://developer.android.google.cn/guide/topics/providers/document-provider https://developer.android.goog
阅读全文
摘要:Android启动窗口SplashScreen 首先介绍下什么是启动窗口,对于大部分应用冷启动时的场景都会有启动窗口,为了让效果更明显,在如下代码中(只是一个基本的可以运行的应用即可)添加了sleep5s的代码,在按recent键移除应用后,再点击桌面图标,即可看到启动窗口效果,即使点击后界面内容显
阅读全文