- 博客(41)
- 资源 (6)
- 收藏
- 关注
原创 binder service 找不到会delay 5秒
若service 已经裁剪,需要检查此service调用,应该避免此service 调用.
2025-01-13 14:41:56
970
原创 addPointers - overlap with incoming pointers 异常分析
查看monkey 代码. 出现此问题的原因是monkey 每次都会在队列中获取事件,而不管队列里面事件是否还有数据.当达到某个次数时,会自动停止,所以会造成有可能出现DOWN 结束的行为,而不是UP 事件结尾.查看monkey 里面的代码,在生产队列中的事件都是完整的事件,所以只要monkey 结束事件时,将所有的队列中的事件都执行完即可.此因为第一个monkey是以DOWN事件结尾。导致InputDispatcher::addPointerWindowTargetLocked函数crash。
2024-12-12 21:55:03
994
原创 SD卡迁移数据流程 & 迁移数据失败
1. 根据视频中的UI,找到需要点击的按钮是:移动内容. 找到定义字符串: vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values-zh-rCN/strings.xml 2. 找到此字符串的引用vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/deviceinfo/StorageWizardMigrateConf
2024-10-26 21:26:24
242
原创 Android U 常驻应用崩溃导致进入recovery过程--记录
在一小时内,persistent 发生5次crash 会进入 Recovery模式.
2024-09-26 17:37:54
955
原创 Android中的persistent属性
persistent属性定义在frameworks/base/core/res/res/values/attrs_manifest.xml中:persistent官方解释:是一个用于控制应用程序特殊持久模式的标志。通常情况下不应被应用程序使用,它要求系统始终保持应用程序的运行。
2024-09-15 20:24:06
906
原创 activity 短时间频繁启动导致冻屏黑屏
移除单独创建的 DataSharingActivity, 在MainActivity 中申请。1.每隔0.1s启动一次DataSharingActivity。2. 查看日志,发现有很多Rejecting start。1. "Rejecting start" 打印来源。1. 执行monkey测试准备。monkey测试过程中频繁黑屏。2. 离线执行monkey。,从代码逻辑上看,应该是有。
2024-07-11 13:43:27
532
原创 FallbackHome 被杀导致不能进入launcher
使用命令,开启FallbackHome,则可以立刻开机,命令: adb shell am start "com.android.settings/com.android.settings.FallbackHome"//FallbackHome 组件属于com.android.settings 进程,settings 被杀,则FallbackHome 也会杀掉。开机定屏到LOGO界面卡死,目前产线有4台,SMT也有发现一块.//开启播放开机动画, 开机时间,时间没有更新。
2024-07-04 11:04:04
546
原创 LMKD 调试记录
if (Totaljiffies[1] > Totaljiffies[0] ) {//正常情况下第二次总的jiffies一定比第一次获得的数据大。+ if (str.toLowerCase().startsWith("cpu")) {//以cpu开头的。if (str.toLowerCase().startsWith("cpu")) {//以cpu开头的。
2024-06-03 18:00:42
1139
原创 手机常亮屏不自动灭屏
1. WakeLock(休眠锁)WakeLock用于保持设备的唤醒状态,有些情况下,即时用户不操作App,我们也需要保持屏幕处于唤醒状态,以保证用户体验,比如视频类APP和计步类APP,视频类APP需要屏幕一直保持常量,计步类APP要求熄屏后程序依然保持运行状态。:保持CPU正常运转,但屏幕和键盘灯都可能是关闭的。:保持CPU正常运转,允许屏幕点亮但可能屏幕被置灰,键盘灯可能是关闭的。:保持CPU正常运转,允许屏幕高亮显示,键盘灯可能是关闭的。
2024-02-04 15:44:59
3811
原创 AndroidU之解析/proc/pid进程参数
该文件包含了进程的完整命令行参数.软连接,根目录。该文件包含了当前进程的环境变量。软连接,。该目录包含了当前进程打开的文件描述符的列表,可以进一步访问每个文件描述符对应的文件路径等信息。该文件列出了当前进程挂载的文件系统。该文件包含了当前进程的状态信息,如进程ID、父进程ID、用户ID、状态等。该文件提供了当前进程的详细状态信息,如运行时间、CPU使用情况、内存使用情况等。该文件提供了当前进程的内存映射信息,包括可执行文件、共享库、堆栈等。
2024-01-29 11:14:15
1587
原创 Android oom_adj 更新原理(androidU)
若有前台服务,并且adj 大于PERCEPTIBLE_RECENT_FOREGROUND_APP_ADJ(低于由top进程转移到前台进程)并且,最后一次是top的时间+最长的间隔(TOP_TO_FGS_GRACE_DURATION,默认为15秒,)大于现在的时间,也就说从top 级别的时间变成前台进程的时间在15秒以内;系统根据进程组建的状态来决定每个进程的优先级adj 值,然后再根据一定的策略选择优先级低的进程kill,以此类推,通过回收预期的系统资源来保证系统的正常运转。不含任何活动应用组件的进程。
2024-01-13 22:14:34
1204
1
原创 android 亮屏流程分析--随记
一. 源码分析:1.按键上报流程.(1).从native 层上报事件://打开log 调试开关#define..........//动态JNI注册I)I");....// Policy:} else {} else {(2). 通过JNI 调用的java 层InputManagerService.java,对应的路径://C++ 层调用对应的java 层函数.
2023-11-02 11:11:40
1227
3
原创 Android13 广播发送流程分析
***//***/;在广播队列中定义了两个处理列表,一个是并发处理列表,一个是有序处理列表。= 0;+ (isFg?上面的三个方法是上面源码中出现的,broadcastQueueForIntent根据intent是否含有来判断是前台广播还是普通后台广播,如果是前台广播返回前台广播处队列。如果是普通后台广播返回后台广播处理队列。获取队列后,将发给【动态注册且接受无序广播的广播接收者】的广播通过函数添加到该队列的并发处理列表中。
2023-10-21 17:31:38
2076
原创 SQLite 优化配置
2.SQLite默认的sync mode 为full,但是敝司有了解到有些客户(如小米 OPPO)会进行客制化,即将sync mode修改为normal,这样SQLite数据库引擎在大部分紧急时刻会暂停,但 3. normal不像FULL模式下那么频繁,从而提升了操作速度。4. full和normal最大的区别在于full模式下于SQLite数据库引擎在紧急时刻会暂停以确定数据已经写入磁盘,而normal模式下SQLite数据库引擎只会在大部分紧急时刻会暂停,但不像FULL模式下那么频繁。
2023-10-16 15:57:27
1093
原创 ANR 默认时间修改
1. input 时间修改:22 {2. Broadcast时间修改:3. ServiceTimeOut 时间修改:4. provider timeout 时间:/*** @hide*/
2023-10-11 15:59:24
551
原创 android 开机广播是在哪里发出的
在 frameworks/base/services/core/java/com/android/server/am/UserController.java 文件里,做 android 开发都知道有开机广播这回事,具体从哪里发出的呢?追溯下源码,在 AN 9.0 frameworks/ 目录下搜索。指定了 flag 为。
2023-10-10 22:08:09
112
原创 Power键不亮屏分析方法
15:41:07.827 911 2234 D PowerManagerService-JNI: Excessive delay in autosuspend_disable() while turning screen on: 424ms【L版本】16:57:31.436586 1020 1301 D SurfaceControl: Excessive delay in setPowerMode(): 403ms【M 版本】(2) 一条一条依次检查,直到如果发现某条log找不到,那问题就出在这个地方;
2023-08-30 11:33:58
135
原创 ANR 不弹框问题1记录
persist.vendor.aeev.ncore.dump会被设置成enable,导致ro.hw_timeout_multiplier 数据太大,影响了ANR的timeout时间.从上面的代码可以看出来, 将ro.hw_timeout_multiplier 设置成10, 也就说将timeout 时间扩大了10倍. 所以ANR 很难出现.当persist.vendor.aeev.ncore.dump 设置为enable 时,会 将。(1) init.aee.customer.system.rc 文件。
2023-08-29 21:45:20
306
原创 Chrome卡顿异常,进入后搜索网页内容,卡屏、卡死,见视频
因为驱动只配置了一个90hz的帧率.而上层获取的是60hz. 和驱动同事沟通,由于驱动架构的原因.配置了两个帧率60hz和90hz,上层获取正常的帧率.debug 很久,依然找不到问题的原因. 意外发生上层获取的帧率显示60hz,而,示波器测量的结果是90hz. 由此猜测是帧率不齐导致的.【问题点】:Chrome卡顿异常,进入后使用Google搜索网页内容,测试机卡屏。主线程等RenderThread。二. 对比历史版本和历史其他手机做对比.2. 历史版本也有此问题.五. 修改帧率不齐的问题.
2023-08-27 17:43:13
660
1
原创 将SD卡格式化为便携式存储,出现手机重启
发生了watchdog ,阻塞在ActivityManagerService.monitor()函数. Watchdog 监听android.fg 进程,当长时间阻塞时,会被watchdog 杀掉,因为是system server 进程,所以手机就发生了重启.【专项测试】【T卡】【>10%】将SD卡格式化为内部存储后选择立即迁移数据,再安装应用,然后数据迁移回内部存储,最后将SD卡格式化为便携式存储,出现手机重启.(6)设置-存储-SD卡,选择将SD卡格式化为便携式存储。
2023-08-27 11:40:53
2625
原创 在开机向导界面出现右上角小绿点
此bug是优化camera 硬启动造成的, (当收到开机完成广播,进行软启动camera),解决方案是在systemui中添加白名单,屏蔽显示图标。
2023-08-19 14:18:45
427
原创 使用uiautomatorviewer工具跑脚本发生中断
或者说当发生ANR时,发现memory 压力,CPU ,iowait 都正常,看看是否在息屏操作的。在跑脚本是,手机显示时间选择的是30分钟,而且,在开发者模式里面选择的是"stay awake",都是常亮的。发现在07-05 11:39:59~07-05 11:40:19 发生过一次息屏,但是很快按power key 就亮屏了,不应该存在息屏的情况。Proximity 中上报distance =1, 是最后的上报,而distance = 1,表示接近的,有遮挡。发现每次复现之后,手机都是息屏的。
2023-07-08 20:40:08
1422
1
原创 手机版本回刷,导致不能开机一直处在开机动画界面
(这里只是可能,因为tombstoned先出现,不过,我们不用关心,这两个服务,我们都没有更改,不应该是他们引起的错误。(2)查看红色的部分,看起来有问题,第一个红色的部分,和正常日志一样,说明没有问题。(1)从上面的日志,查看,黑色粗体部分,是userdata挂载的时候,要经过的步骤,没有报错,最后也是挂载成功了的。可以看到,在rc文件中,系统是有动作创建这个文件的,但是失败了,原因是data 是只读的。(1)按道理,程序在打开这个文件的时候,如果这个路径没有,那么就会创建一个。然后就打印如下崩溃信息。
2023-06-15 21:24:39
1794
原创 Abort message: ‘JNI ERROR (app bug): global reference table overflow (max=51200)global reference tab
global reference table overflow
2023-05-07 19:14:53
1881
原创 Android animate scaleX() 失效
最近遇到很奇怪的问题。发现View.animate().scaleX()失效的。 如代码如下: frameworks/base/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java public void stopDrag() { itemView.animate() .setDuration(D...
2021-08-11 17:46:42
800
原创 [Google GTS]GtsMemoryTestCases#com.google.android.memory.gts.MemoryTest#testPersistentProce
描述:SystemUI内存消耗较大,有时会比其他手机内存消耗多1/3左右,请确认能否优化。164,559K: Persistent ( 27,957K in swap)92,304K: com.android.systemui (pid 1431) ( 11,882K in swap)38,306K: com.android.phone (pid 1750) ( 5,916K in swap)19,375K: com.**.presence (pid 2378) ( 6,122K in sw
2021-08-02 11:20:16
535
原创 Java Arrays.binarySearch 方法调用陷阱
事情背景: 在做Android项目开发时,有一个小功能是通过配置,判断对应的功能是否存在。 譬如:String fulluicctype = SystemProperties.get("vendor.gsm.ril.fulluicctype",""); 获取动态fulluicctype 判断是否包含"USIM"字符串。fulluicctype 要么为空,要么包含多组“单词“,如: String fulluicctype = "SIM,USIM,RUIM"; ...
2021-01-21 14:46:24
491
1
原创 Android R 护眼模式 选择日落到日出期间开启失败
测试描述:前提条件:设置-系统-时间和日期,调节时间为(夜间模式时间大约17:45-6:35)操作步骤:设置-显示-夜间模式,设定时间在日落到日出期间开启,调节时间问题点:调节时间为(夜间模式时间大约17:45-6:35),没有成功开启夜间模式预期结果:调节时间为(夜间模式时间大约17:45-6:35),成功开启夜间模式备注:谷歌机11.0可以成功开启分析过程:(1)对代码添加log:1)frameworks/base/services/core/java/com/...
2021-01-11 18:01:32
1132
1
原创 Android P 设置浅色壁纸后,虚拟键不显示
一、测试描述:前提:设置Device theme为Light,手机内上传有浅色图片操作步骤:1、长按手机屏幕2、点击Wallpapers3、选择已有的浅色图片设置为Home screen问题点:设置壁纸后,返回待机界面,手机屏幕闪了一下,虚拟键不显示期望结果:虚拟键正常显示测试视频:Android P 设置浅色壁纸后,虚拟键不显示分析过程:(1)首先要验证虚拟键是否真的消失? 点击虚拟按钮位置是否有效果。 ==>检测方法, 手动点击虚拟按键位置,譬如:长按r...
2021-01-11 16:51:48
302
原创 Android P [GOTA]升级成功放置自动灭屏后,使用Power key点亮屏幕,触屏滑屏无效--冻屏
今天遇到一个非常奇怪又非常严重的问题,而且是偶现问题,使用其他手机复现不了,所以这台手机只能保留原始状态(不重新刷机或者不重新关开机)。就是GOTA升级完成,手机卡死某锁屏界面,点击没有任何响应。但是,双击Power键位会打开Camera界面,但是,Camera界面的相机预览是黑色。针对此问题分析:[1]首先考虑触摸报点是否正常,通过命令adb shell getevent 查看报点是否正常...
2019-07-23 20:23:05
961
2
原创 android 横竖屏不能旋转
最近遇到一个很奇怪的bug,手机所有界面横竖屏不能切换,但是,内置Camera 的拍照按钮可以随着横竖屏可以转动. 第一次反应是重力传感器,方向传感器以及加速度传感器是否有效.本地有测试传感器的apk,发现重力传感器失效,方向传感器是正常和加速度传感器是正常的。 寻找触发横竖屏的方法。 触发屏幕旋转对应代码:frameworks/base/services...
2018-12-17 20:48:17
1770
2
原创 Android P 拦截虚拟按键事件
最近有一个奇怪的需求,当储存空间不足时,需要一个提醒框.此提醒框出现时只能点击提供的button才能跳转到释放文件空间的地方.触发其他地方要求无响应(包括虚拟按键). 此做法有两种,一种是使用悬浮框. 一种是对话框.不管是那种做法,都需要屏蔽虚拟按键的响应. 一.寻找解决方案. (1)使用SDK自带工具hierarchyviewer 查看虚拟按键的布局,发现...
2018-11-09 18:29:06
1937
原创 Android P 版本 按power键熄屏再亮屏UI控件无响应
测试步骤: [1]设置-->安全性和位置信息-->屏幕锁定-->选择"无"[2]进入可以本地仅仅可以刷新的界面.[3]先熄屏,然后在亮屏.[4]发现UI有卡死的效果.(点击无反应,上次滑动也无反应)[5]按back/home/Recents, 然后再操作UI,UI恢复正常.此问题是google的一个patch引起的.方案:frameworks/base/core/...
2018-11-08 13:14:08
1175
原创 java == 和 equals区别
刚刚接触java的同学来说,equals()和“==”的功能经常在用,却分不清概念,我们深入了解一下概念. (1) == :其实就是地址比较,就是说两个对象是同一个对象。但是,基本类型(除String) 都是判断值是否相等. (2)equals : 可以认为仅仅是Object的一个方法,理论上继承此方法可以任意发挥去写(注意,此方法有深层的含义,随意重新的话...
2018-11-01 20:45:04
190
原创 从问题出发:捕获监听android 栈顶Activity的resume变化
熟悉Android framework的同学都清楚Activity 进出栈是依靠ActivityStack.java(android/frameworks/base/services/core/java/com/android/server/am/ActivityStack.java)进行管理,但是,对ActivityStack不熟悉的同学或者没有接触的,请参考下面的文章. 最近做项目,有一...
2018-10-24 11:49:02
4436
React Native:用JavaScript开发移动应用
2017-08-22
JavaScript权威指南
2017-08-22
JavaScript语言精粹
2017-08-22
android中仿iphone的UISwitch
2011-10-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人