Recent posts

Android ANR traces.txt文件分析

less than 1 minute read

trace.txt生成:当APP(包括系统APP和用户APP)进程出现ANR、应用响应慢或WatchDog的监视没有得到回馈时,系统会dump此时的top进程,进程中Thread的运行状态就都dump到这个Trace文件中了。 ANR:Application Not Responding,即应用无响应

Android 屏幕旋转流程

10 minute read

Android支持横屏和竖屏,用户可以选择锁定(rotation lock)也可以选择让传感器来自动转屏。而转屏时为了使用户体验更流畅,会对屏幕截屏,然后使用截屏的图来做转屏动画,直到转屏动作结束。

Android InputDispatcher获取点击事件

6 minute read

Input点击事件从InputReader会传到InputDispatcher进行处理。针对一些点击调试方式和日志打印,来分析InputDispatcher获取点击事件的部分流程。 参考上一篇《Android 触控事件分析》

Android Input事件ANR流程

3 minute read

Android Input体系中,大致有两种类型的事件:实体按键key事件,屏幕点击触摸事件。如果根据事件类型的不同,还能细分为基础实体按键的key(power,volume up/down,recents,back,home),实体键按键,屏幕点击(多点,单点),屏幕滑动等事件。在Android整个Inp...

C++字符串比较函数strcmp和strstr的用法

2 minute read

今天碰到一个细节bug,使用strcmp来比较两个字符串是否完全相同。但是忽略了一个问题,如果存在一个字符串包含在另一个字符串呢?此时就会发现需要用strstr函数。

Android 两种实时获取FPS的方法

1 minute read

通过ADB命令实时获取FPS帧率有两种方式,一种是dump gfxinfo,一种是dump SF --latency。其他还可以通过三方APP GameBooster(Google PlayStore可以下载)打开实时FPS监控查看。 如果是查看动画是否丢帧,可以通过视频工具QuickTime Player...

Android SELinux权限笔记

less than 1 minute read

在新增一个HIDL Service后,需要对其进行权限配置,不然通过adb shell ps -A|grep NAService会发现该service无法启动,也会通过抓取log发现一堆的avc: denied权限问题。关于SELinux可以推荐文档:https://www.pianshen.com/art...

Android RC文件分析

1 minute read

Android中最熟知的RC文件就是init.rc了,而在Hal接口服务定义中也会创建.rc文件。init.rc的语法分为行为(Actions),、命令(Commands) 、服务(Services)、选项(Options)。.rc文件是资源文件,包括比如对话框、菜单、图标、字符串等资源信息。使用.rc资源...