- 博客(26)
- 资源 (18)
- 收藏
- 关注
原创 InputDispatch - Keyevent分发
mInboundQueue位于InputDispatcher线程,代表即将分发的输入事件,outboundQueue位于目标窗口的connection,代表即将要分发给目标窗口的输入事件,waitQueue位于目标窗口的connection,代表等待目标窗口处理的输入事件。-> enqueueDispatchEntryLocked *6 //调用6次,KeyEntry转换为了DispatchEntry,最后加入目标窗口的connection的outboundQueue队列。
2024-03-06 15:27:02
958
原创 vim tab换成4个空格
在~/.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4set expandtab
2023-06-25 11:42:51
185
原创 抓取systrace
(1) P 及 P之前 用systrace.py或者atraceatrace -b 20000 sched freq idle gfx view am wm -t 10 -o /data/a.traceframeworks/native/services/surfaceflinger/surfaceflinger.rcservice surfaceflinger /system/bin/surfaceflinger class core animation user syste...
2022-05-27 01:02:15
272
原创 抓开机systrace
可参考原生atrace service修改:/system/etc/init/atrace.rcon property:persist.debug.atrace.boottrace=1 start boottrace# Run atrace with the categories written in a file#service boottrace /system/bin/atrace --async_start -f /data/misc/boottrace/categories...
2022-05-12 21:52:48
621
原创 Tunnel mode播放片源黑屏
连续抓几次的systrace,每次queueBuffer都有被acquire,看不出还是得加debug log,顺流程queueBuffer之后会触发SurfaceFlinger::handleMessageInvalidate -> handlePageFlip -> latchBuffer -> latchSidebandStream 返回true,直接return,导致没有执行到updateTexImage(预期这里...
2022-03-17 16:07:58
290
原创 hw vsync
HW vsync的间隔是在resyncToHardwareVsync中得到的,const nsecs_t period =getHwComposer().getRefreshPeriod(HWC_DISPLAY_PRIMARY);
2021-07-28 23:17:15
513
1
原创 后台下载,UI操作卡顿
问题:进入应用商店下载多个应用,后台下载时返回主页操作时会存在操作卡顿抓top和内存占用信息分析:后台下载多个应用,应用安装后做预编译cpu开销很大,影响系统整体性能400%cpu 44%user 209%nice 88%sys 59%idle 0%jow 0%irg 0%sirq 0%hostPID USER PR NIVIRT RES SHR S[%CPU]%MEM TIME+ ARGS10511 u0 a40073 30 10 1.2G 55M 42M R 258 3.1 0:03
2021-07-28 23:14:32
258
原创 编cts testcase
遇到需要给cts测项加log debug时,下对应的android code,整编过加log,接着就是编译testcase了:source build/envsetup.shlunch $device-userdebugmmm cts/tests/tests/simpleperf -j32生成:out/target/product/$device/data/nativetest]$ IsCtsSimpleperfTestCases32 CtsSimpleperfTestCases64
2021-07-28 23:09:24
252
原创 Perfetto —— 靠谱的trace利器
最近踩到的坑,报了一个cst的测试项fail,帧率不符合预期,对于的进程是android.view.cts肯定是要抓sytrace看看了但是,试了systrace和atrace去抓,只抓了launcher的绘制,并没有android.view.cts的绘制信息用-a指定app也是一样经过实验,可以试下perfetto抓取(果然,google极力推荐使用还是没错的,要跟上工具的变化)1、开启trace UIam start com.android.traceur/com.android
2021-07-28 23:01:23
4925
原创 android R TV recentUI功能打通
预期:遥控器双击Home键可以唤起近期任务列表recentUI启动流程1、首先要打开doubleTapOnHome config,对应overlay中打开1383 <!-- Control the behavior when the user double-taps the home button.1384 0 - Nothing1385 1 - Recent apps view in SystemUI1386 This...
2021-05-16 22:34:13
333
原创 adb accessory 填坑
参考:https://blog.csdn.net/yingzhao80/article/details/45511351Android下USB Accessory设备连接后处理流程
2021-05-16 22:04:16
676
1
原创 WSL- Window子系统使用详细教程
1、启用子系统控制面板 -> 程序 -> 启用或关闭Windows功能 -> 勾选适用于Linux的Windows子系统2、Windows下Linux子系统安装在非系统盘(1)下载linux安装包:官方提供的离线安装包有Ubuntu 18.04,Ubuntu 18.04 ARM,Ubuntu 16.04,Debian GNU / Linux,K...
2020-03-01 02:42:09
9140
原创 Android Init Language--安卓初始化语言
1、Android Init Language Android Init Language,也就是Android初始化语言,就是init.rc文件的语法 Android 初始化语言包含五种主要的语句类:Actions, Commands, Services, Options, and Imports.(操作,命令,服务,选项和导入) 所有这些都是...
2019-11-16 11:30:42
704
原创 【Android】【查看当前焦点所在】
如果当前焦点被一个自己不知道的控件获取到,则其他控件就不会获取到焦点 这时候我们就需要找到当前获取焦点的控件,可以通过下面方法去排查:(1)adb shell dumpsys window获取window信息(2)在dumpsys window的信息中查找key值——mFocusedWindow,对应的value值就是当前焦点所在的window 比如:a...
2019-09-08 04:14:32
6895
原创 判断Android设备的kernel是32bit还是64bit
问题:搭载64bit芯片的机器,其运行的kernel可能是32bit,也有可能是64bit,那么该怎么去判断kernel的bit数呢?我们可以通过该命令去判断当前的kernel的位数:adb shell cat /proc/cpuinfo这里对vivo X23进行操作,可得到以下打印:PS D:\SoftWare\AndroidSDK\platform-tools> ./adb...
2019-09-08 03:49:59
2219
原创 Android加calltrace
1、Java文件加calltrace在需要添加trace的地方添加以下几行,即可在log中打印出trace try{ throw new Exception("debug trace"); }catch(Exception e){ w.printStackTrace(); }2、C++添加calltrace#AN 5.0及以前版本:(...
2019-09-08 03:27:32
673
原创 【Android TV】Android 8.0下 ,TV系统通知音失效
问题描述:Android 8.0的TV系统通知音失效分析过程:跟踪触发通知的流程, SystemUI 通知音播放是调用Ringtoneplayer播放类的,这个接收的参数是声音的URI路径,是从 Notificationrecord calculatesound方法里传的在calculateSound()函数里:if (mContext.getPackageManager()...
2019-06-03 02:26:09
1029
原创 【Android TV】 遥控器Enter键无法调出软键盘
问题描述:Android TV开机向导,进入连接wifi界面,按遥控器Enter键无法调出软键盘(Android 9.0)分析过程:1、getevent可读取到按键值——正常2、dumpsys input ,dumpsys input_method发现:4: Xiaomi RCClasses:0x80000023Path:/dev/input/event3Enabled...
2019-06-03 01:55:40
2809
原创 浅谈"指向二维数组的指针"
二维数组名(如a)是指向行的。行指针与列指针的基类型是不同的,a[0] ,a[1] , a[2]的类型为 int* 型,而a的类型为int(*)[4] , 指向含4个元素的一维数组。在指向行的指针前面加上*,就转换为指向列的指针。比如:a 和 a + 1 是指向行的指针,在他们前面加上一个*,就变成 *a 和 *(a+1) ,他们就变成指向列的指针,分别指向a数组0行0列的元素和1
2017-09-03 02:59:51
556
原创 C编译过程以及gcc编译参数
C语言编译过程以及gcc编译参数:.c文件--->预编译--->编译--->链接--->可执行文件gcc -o temp a.c // -o指定输出文件名字 直接编译a.c生成temp.exe-E预编译(将include包含的头文件内容替换到.c文件中,同时删去注释部分)例: gcc -E -o c.e a.c //把
2017-08-28 16:04:23
565
原创 如何在初始化窗体不是最大化情况下,获取最大化窗体的客户区的尺寸
思路:查找有没有相关的函数可以达到这个目的呢?经查找发现,要求最大化的客户区的尺寸可以通过调用GetSystemMetrics(int nIndex)函数来获得(参数可为:SM_CXFULLSCREEN和SM_CYFULLSCREEN)但是,这里获得的SM_CYFULLSCREEN为最大化时,窗体只含标题栏和客户区时客户区的高度可利用上面的函数通过参数SM_CYMENU来过去菜单栏
2017-08-11 10:22:50
678
转载 根据一个bmp话柄生成bmp文件
/*hBitmap:要保存的位图句柄,lpszFileName:要保存的BMP文件名,返回值:成功返回TRUE,否则返回FALSE。*/BOOL SaveToFile(HBITMAP hBitmap, LPCTSTR lpszFileName){HDC hDC;//当前分辨率下每象素所占字节数int iBits;//位图中每象素所占字节数WORD wBitCount;
2017-08-03 17:21:34
329
Android编程权威指南
2018-09-21
C/C++程序员面试宝典(梁镇宇)
2018-09-21
《Windows程序设计》(第五版)
2018-09-21
gcc7.1.0安装包(mingw-w64)
2017-08-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人