- 博客(26)
- 资源 (9)
- 收藏
- 关注
原创 systrace系列文章02-systrace的采集
用systrace来分析Android的性能问题,这是每一位从事性能优化的研发人员必不可少的技能之一。性能Trace分为三类,分别是systrace、atrace和perfetto,本文将提供相关的采集方法和脚本。
2024-05-15 08:56:53
52
原创 Android进程和线程CPU策略调整方式
本文介绍了如何调整CPU分组(cgroup/cpuset)和线程的CPU调度策略(包括线程优先级)
2024-02-29 09:55:10
442
1
原创 lmkd的内存清理机制简介
本位初步介绍了Android系统lmkd的清理查杀机制,但还未具体介绍其中查杀的策略,但从源码来看,该策略主要还是针对可感知进程或者更不重要的进程的一些查杀。
2024-01-26 10:19:19
163
原创 解决PyInstaller打包exe后无法运行TraceProcessor的问题
PyInstaller打包成exe文件后,无法解析TraceProcessor,报错Exception: Trace processor failed to start.
2023-11-22 14:07:12
153
原创 解决Android12 USAP Failed to write PID EPIPE (Broken pipe)的问题
在Android12版本上开启USAP功能后,偶现打开应用时出现持续十多秒的黑屏现象,从log中查看,有相关日志Failed to write PID (6621) to pipe (51): write failed: EPIPE (Broken pipe)
2023-11-02 15:44:57
377
原创 性能优化之工具篇-如何获取systrace
分析性能问题时比较常用的工具之一是systrace,Android原生提供了这样的工具,本文将介绍如何使用该工具捕捉性能日志
2023-08-23 09:50:10
220
原创 车机上的LMK优化
LMK是Android原生kernel中的一种kill应用进程的机制,其原理是当系统可用内存不足某些阈值时,开始kill一些优先级较低的进程。但有时候会遇到cache内存明明比limit的内存大,却依然还是进行了kill动作。
2023-07-03 21:21:10
210
1
原创 Android调整应用的cpuset方案
利用Android Process.java类提供的setProcessGroup方法。在ActivityManagerService.java的构造方法中初始化上述工具类对象。通过命令查看对应进程的cpuset组,如。设置某个进程的cpuset组。
2023-07-03 21:05:35
554
1
原创 systrace系列文章01-systrace分析问题的理论基础
在分析Android的性能问题时,systrace是最常用的工具,要想熟练地使用该工具并快速准确的分析相关问题,需要具备一定的理论基础。
2023-05-09 17:12:40
206
1
原创 RV1126上使用OnVif协议操作IPC
使用OnVif协议操作IPC,主要有如下功能:(1)能否主动发现局域网内连接的IPC设备并获取该设备的基础信息;(2)获取IPC设备的RTSP流地址;(3)控制PTZ云台,如左右、变倍聚焦等
2023-05-04 21:38:49
612
原创 中控混音方案
中控系统存在收音机、导航、电话、语音交互等多种应用输出音频的场景,在不同场景下可能存两种以上的声音同时输出,如果不对其进行协调处理,会出多种音频交杂,极其影响用户体验,例如:在播放音乐时,播放导航提示,如果音乐不进行降音或静音,会导致导航音听不清。针对此类情况,将对声音应用类型行进行分级处理,在两种以上音频同时输出时对低优先级音频进行静音、mute等动作,进一步提升不同场景下的用户体验。
2023-05-04 21:29:38
113
原创 pyinstaller生成的exe找不到Module或者配置文件等问题解决方案
解决python工程生成的exe文件在运行时出现各种找不到module、配置文件等错误,可以很方便的将我们的python工程生成windows可执行的exe文件,使用方的电脑上无需安装python的相关环境即可正常运行该exe程序。
2023-04-28 11:19:26
3260
原创 RV1126上实现OnVif协议操作IPC并RTSP拉流
RV1126是一款瑞芯微(RockChip)旗下的视频编解码芯片,本次项目中使用的这款芯片基于Linux系统,使用buildroot编译工具。项目中需要使用到IPC,因此不可避免的离不开OnVif协议,同时,在通过OnVif协议获取到IPC的RTSP流地址后,使用Ffmpeg拉流操作。
2023-03-10 15:57:25
1357
原创 编译Android版本的ffmpeg
Ffmpeg的下载链接Ffmpeg官网可以直接下载最新的版本:https://ffmpeg.org/如果要下载旧的版本,可进入该链接,往下拉即可看到各个版本:Download FFmpeg编译Android版本的Ffmpeg本文下载的是ffmpeg-3.2.16,同时考虑到Ffmpeg的源码中没有libx264,因此还需要下载libx264的源码,下载链接为:x264, the best H.264/AVC encoder - VideoLAN编译libx264环境:ubuntu16
2022-01-11 08:32:49
1294
原创 彻底解决Battery Historian上传zip后没有submit按钮的问题
何为Battery HistorianBattery Historian是Android提供的用于分析功耗问题的工具,它有如下适用场景:显示进程从什么位置以及通过何种方式消耗电池电量。 识别系统为了延长电池续航时间可能会延迟甚至移除应用中的哪些任务。具体详见官网:https://developer.android.google.cn/topic/performance/power/setup-battery-historian?hl=zh_cn怎么安装Battery Historian具
2021-09-03 15:29:34
5936
2
原创 Android机顶盒M1上ANR问题的排查方法和应对方案
1. ANR的理论背景1.1 ANR的定义ANR是Application Not Response的英文缩写,即应用程序无响应。当某个应用(非visible)出现ANR时,会在主界面中弹出一个“应用无响应”的弹出框,严重影响用户体验。ANR是Android自身消息调度逻辑中的一套针对应用的耗时检测机制,每一个应用都是依靠UI主线程去绘制画面从而展现给用户,但是,这其中就可能出现某些应用的UI主线程中由于逻辑太过复杂或者UI主线程未能在有限的时间内处理完四大组件(Activity、Serv..
2020-12-02 14:44:13
3495
原创 persistent=true的应用在覆盖安装后出现闪退
问题描述2020-11-20上午发现versionCode=2130923534版本的com.xxx.ota应用的静默升级存在600多次crash,经过分析,主要来自(1)java.lang.ClassCastException: com.xxx.ota.biz.binder.OtaUpdateBinder cannot be cast to com.xxx.ota.biz.binder.OtaUpdateBinder(2)Caused by: android.content.res.Re
2020-12-02 14:39:20
742
原创 Ubuntu服务器搭建OpenGrok,阅读Android源码
OpenGrok是一个很好的阅读Android开源框架,通过在Linux服务器上搭建该框架,可以做到一处部署源码,多处阅读源码。下文主要介绍在Ubuntu中搭建OpenGrok的具体步骤。1、安装JDK环境这块无需介绍,网上有很多的参考方法2、安装Tomcat参考Tomcat官网https://tomcat.apache.org/3、安装和配置ctags这个很重要,它会直接决定OpenGrok的索引是否成功(1)查看exuberant-ctags版本信息:dpkg -l ..
2020-11-04 10:00:06
1149
原创 安卓开发环境的搭建和解决在Eclipse新建安卓5.1工程不能自动生成R文件的问题
1、安卓开发环境的搭建下载Eclipse4.4版本,解压之后即可打开Eclipse;下载最新版本的ADT,本文写作的时候,最新的版本是ADT23.0.6版本,然后在Eclipse中进行加载,具体的方法如下图所示(下图是我的已经加载好了的截图),在Work with中加载ADT的路径,然后点击Next-->Finish,让Eclipse自动下载和安装:获取Android的SDK,由于go
2015-10-10 12:50:11
942
Android apk反编译工具
2023-10-11
RV1126上使用OnVif协议操作IPC
2023-05-04
nginx-rtmp.tar.gz
2021-09-08
Go1.17-Battery-Historian.tar.gz
2021-09-03
reboot_test.rar
2020-11-04
sendEmailTest_sina.py
2020-05-12
CameraWindow.java
2020-05-12
用C语言实现的区间操作程序
2015-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人