- 博客(153)
- 资源 (4)
- 收藏
- 关注
原创 锁屏界面点击通话通知,快速home返回,返回锁屏后自动进入密码界面
锁屏界面点击通话通知,进入通话界面后,进入通话瞬间点home键有问题,过一会点击home键没有问题。makeExpandedInvisible的调用和之前一样,也是onFlingEnd调过去的.通知栏展开动画结束后的回调。查看log发现 是isPresenterFullyCollapsed值的差异,导致走了不同的流程。
2024-12-11 14:27:03
832
原创 Android 通知访问权限
1、setting界面搜“授予通知访问权限”,此按钮灰色不可点击,点击提示“受限设置” “出于安全考虑,此设置目前不可用”。跟踪这个值异常的原因。此弹框主要是为了防止未知来源的apk文件请求权限,正规途径安装不受影响。2、通过play store安装。点击提示“受限设置” “出于安全考虑,此设置目前不可用”。可以看出,只有当是本地apk文件安装时,才会设置此限制。
2024-07-09 14:19:35
7905
原创 无障碍快捷方式图标
测试反馈,无障碍快捷方式和setting里的无障碍图标不一致。systemui里直接显示的支持无障碍Service/activity的原图.setting里获取方式和systemUI一样。但是显示时, setting里把Drawable转换成AdaptiveIconDrawable,再传给了preference。所以显示圆角。
2024-07-08 19:26:23
904
原创 Android13 launcher循环切页
launcher 常规切页:https://blog.csdn.net/a396604593/article/details/125305234。基于Android 13 原生launcher实现循环切页功能
2023-11-24 11:56:54
956
原创 framework watchdog
只是获取一下同步锁,看看service有没有在运行其它任务。从log可以看出,watchdog的run和mHandler.run不在同一个线程。那么它到底是如何判定系统卡住了,这里简单了来看一下watchdog的代码了解一下。一直依赖,都直到framework有个watchdog,监听主要进程是否卡死。如果卡住60秒就会杀死所在进程也就是system_server,上层重启。如何判断系统是否卡住了、waitState如何赋值。如果长期运行其它任务,就无法获取到mLock。整个方法有2个地方需要注意。
2023-09-28 20:33:06
331
原创 Android studio “Layout Inspector“工具在Android14 userdebug设备无法正常使用
最进刚开始一个Android 14的项目,刷userdebug版本后,发现“Layout Inspector”和“Attach Debugger to Android Process”都无法正常使用,它像user版本一样看不到系统的进程。验证之后是有效的,Android 14 userdebug版本的设备可以使用“Layout Inspector”和“Attach Debugger to Android Process”工具了,又可以快乐的调试系统进程了。在之前Android 13的项目里没有这段逻辑。
2023-09-28 10:51:35
5890
5
原创 android windows管理(一)
1、Android手机开机后,显示壁纸、桌面、状态栏是什么决定了它们的显示顺序和层级。壁纸在最下面,桌面和其它应用在中间、状态栏导航栏在最上面。
2023-09-20 20:35:47
501
原创 monkey测试关机/重启问题分析(三)
触发流程可能不同,比如长按关机、点击dialog关机按钮关机等等。monkey测试关机/重启问题分析(三)关机流程可以参考以下其它人的文章。上层关机流程,最终回走到。
2023-06-13 20:42:56
1150
原创 monkey测试关机/重启问题分析(二)
最终走到frameworks/base/services/core/java/com/android/server/statusbar/StatusBarManagerService.java。GlobalActionsDialogLite内部有很多内部类,继承实现了onPress接口,对应真正的点击事件。到这里,就定位到按钮点击跳出关机dialog的地方。从代码看,这是一个adapter适配器。通过Android 布局分析工具发现。按钮初始化和点击事件。关机按钮的实现类如下。
2023-06-07 17:20:01
1004
原创 anr log打印流程---Java层
本问介绍一下anr之后,系统打印log的流程。加深对anr问题的理解。anr触发原理分析可以看看这个文章cpp代码比较多,我选择放弃了。从java层log往后看吧。。。
2023-05-26 15:45:05
1118
原创 Android anr问题分析
本文主要介绍anr问题一手分析、分类判断,归类后提case给平台处理。不是针对应用开发的anr分析和优化处理。anr问题主要分为1、input 无焦点anrReason: Input dispatching timed out (Application does not have a focused window)2、input 有焦点anrReason: Input dispatching timed out (eadf99 net.zedge.android/net.zedge.android.
2023-05-17 16:44:48
8544
1
原创 Android权限描述
某些应用会自定义权限,定义权限时可以添加说明。比如launcher中自定义的权限。如果权限没有description也没有注释,那就比较坑了。只能祈祷权限名字可以看出来大概是什么东西。所幸,源码中权限的声明、注释还是比较全的。源码中的权限声明在这里/frameworks/base/core/res/AndroidManifest.xml使用在所有源码应用中。有一套完整的权限检测。apk也可以自己声明权限,对访问自己的外部请求做一些限制。
2023-04-20 17:25:17
789
原创 Android 默认设置
出现该现象的原因为Google设计snapshot进行了压缩,snapshot的尺寸比应用分辨率低,导致从snapshot到应用真正的界面时出现清晰度的变化,Google解决热启动应用时,为了用户体验,先加载snapshot(一张图片,内容和退出应用时的内容相同)遮盖应用的启动流程,保证应用加载的流程性。应用热启动时,go版本应用界面模糊再变清晰(比较明显)
2023-03-28 17:52:44
618
原创 Android launcher 上滑进入allapps和recentUI
reportDragStart–>onDragStart:设置停顿监听,滑动停顿时,进入退出recentUI的peek动画(动画实现在FlingAndHoldTouchController.onDragStart)onTouchEvent.move中–>reportDragging–>onDrag: 持续判断手势是否在可停顿范围内,是否可停顿,修改标志位。Q和R差异上滑进入allapps和recentUI手势有了名下区别,本片文章主要分析recentUI界面进入退出时机。
2023-03-27 15:54:16
2042
原创 长按添加widget,和recentUI界面结合使用,widget添加流程被打断,导致各种异常问题
时间:2021/04/19之前公司不允许csdn,笔记写在其它地方。最近整理过来。
2023-03-27 15:35:38
167
原创 launcher中隐藏应用图标
如果有些应用是连外网登陆Google Play之后, 由三方apk发送广播添加到桌面多出来的图标,需要另外过滤。4、以上只屏蔽了应用图标加载流程。
2023-03-27 15:32:12
804
4
原创 launcher allapps界面添加favoriteApps常用的显示和分割线
时间:2020/12/29之前公司不允许csdn,笔记写在其它地方。最近整理过来。应用列表界面最上方添加常用应用和分割线
2023-03-27 15:16:38
567
原创 launcher 谷歌搜索框定制需求
因为主要是对底边栏图标的偏移量,isShowHotSeatSearchWidget的控制我们放在packages/apps/Launcher3/src/com/android/launcher3/Hotseat.java。读取配置之后,我们需要在恰当的时机改变 isShowHotSeatSearchWidget这个值,来判断是否需要添加偏移量。主界面google搜索栏显示在顶部,recentUI界面搜索栏显示在底部。ScrimView 上滑箭头默认位置和动画过程中位置调整。
2023-03-27 14:13:21
1203
1
原创 launcher数据加载(二)
加载流程之前写过很多文章,加载流程(一)有兴趣的可以看看。本文主要介绍一下launcher是怎么查询到各种图标或者快捷方式或者widget的。
2023-03-24 16:34:27
420
原创 如何查看编译launcher的版本
有时候,我们发现修改apk中的资源或者xml配置,无法生效,全局搜索同明的文件,rom里发现各种路径下存在相同文件。上面会走到gms****.mk vendor/partner_gms/products/gms****.mk。从apk的命名可以知道mk文件编译的那个变量,以GmsSampleIntegrationGo为例子。找到对应的编译部分,可以查到res和src使用的哪个目录,方便定位修改文件。如上,刷了rom之后,按照包名打印出apk的安装位置。的工程的mk文件(如何得到这个包名见。
2023-03-24 15:55:12
597
Zygote启动流程-systemServer启动流程-homeLauncher启动
2019-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人