- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 Perfetto看应用卡顿问题HQ
明确问题场景:了解卡顿的具体表现和复现步骤录制Trace:选择合适的配置和录制方法定位卡顿时间点:使用多种方法找到卡顿发生的时间分析主线程:查看主线程状态,找到阻塞原因分析渲染线程:查看RenderThread状态,找到渲染瓶颈分析系统资源:查看CPU、内存、GPU使用情况定位根本原因:综合分析,找到卡顿的根本原因提供优化建议:给出针对性的优化方案通过系统化的分析流程,可以高效地定位和解决应用卡顿问题。最后更新:2024年。
2026-02-25 00:41:14
561
原创 Perfetto看trace冷启动HQ
使用SQL查询丢帧:-- 查询所有掉帧(> 16.67ms)SELECT COUNT(*) AS jank_count, AVG(dur) / 1000000.0 AS avg_duration_ms, MAX(dur) / 1000000.0 AS max_duration_msFROM slice WHERE name = 'Choreographer#doFrame' AND dur > 16666667;// 开始标记Trace.beginSection("my_custom_section");
2026-02-13 09:04:20
792
原创 Perfetto分析Trace提效HQ
usr/bin/env python3"""与性能基准对比"""def load_baseline(baseline_file): """加载性能基准""" with open(baseline_file, 'r') as f: return json.load(f)def compare_with_baseline(trace_file, baseline): """与基准对比""" # 分析Trace文件 # 与基准对比 # 生成对比报告 pass。-- 报告内容 --></body></html>
2026-02-12 17:13:25
723
原创 Perfetto看Trace关键词HQ
1. 搜索 startProcess,找到进程启动时间 2. 搜索 handleBindApplication,找到Application初始化时间 3. 搜索 performLaunchActivity,找到Activity创建时间 4. 搜索 Choreographer#doFrame,找到首帧时间 5. 计算各阶段耗时。1. 搜索 GC,查看GC频率 2. 搜索 HeapTaskDaemon,查看GC线程活动 3. 搜索 Alloc,查看内存分配模式 4. 搜索 kswapd,查看内存压力。
2026-02-12 09:16:58
580
原创 一个可以增减的带EditText的RecyclerView列表
Log.e("执行的数据", str);android:hint="请输入包名"android:hint="请输入签名"android:hint="包名输入项" />android:hint="签名输入项" />android:text="包名:"android:text="签名:"// 添加按钮点击事件。
2023-07-30 16:59:55
207
1
原创 2020-11-02
AndroidStudio4.1稳定版,网络请求成功的回调中debug调试,发现没有反应,但是程序里面的接口是正常返回数据执行的。于是百度查找问题,也有人遇到同样问题的。推测是studio的bug,果断重新下载4.2版本,下面是下载地址https://www.androiddevtools.cn/...
2020-11-02 18:00:37
214
原创 单例模式,建造者模式,观察者模式,原型模式,策略模式
对于开发人员来说,设计模式有时候就是一道坎,但是设计模式又非常有用,过了这道坎,它可以让你水平提高一个档次。而在android开发中,必要的了解一些设计模式又是非常有必要的。对于想系统的学习设计模式的同学,这里推荐2本书。一本是Head First系列的Head Hirst Design Pattern,英文好的可以看英文,可以多读几遍。另外一本是大话设计模式。单例模式首先了解一些单例模式的概念。确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这样做有以下几个优点对于那些比较耗内
2020-10-26 18:12:36
418
转载 java设计模式(一):桥接模式
桥接模式桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。我们通过下面的实例来演示桥接模式(Bridge Pattern)的用法。其中,可以使用相同的抽象类方法但是不同的桥接实现类,来画出不同颜色的圆。介绍**意图:**将抽象部分与实现部分分离,使它们都可以独立的变化。**主要解
2020-10-26 16:38:05
219
原创 回顾java基础知识
讽德诵功电饭锅电饭锅<font## 标题 color=#999AAA >提示:这里可以添加学习目标例如:水电费闻风丧胆学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例
2020-10-26 00:36:00
220
1
原创 TextView.setText()方法里面的内容如果为null不会报空指针异常
调试数据发现一个字段是null,却不报空指针。接口返回的unit是null,如果执行下面的log就会报空指针,TextView直接setText不会报空指针。
2019-09-29 11:04:16
2031
原创 android图片压缩工具Luban的使用
导入依赖implementation 'top.zibin:Luban:1.1.8'循环压缩多张图片ArrayList<String> resultImagePath = new ArrayList<>();//获取到的图片路径集合ArrayList<File> bPicList = new ArrayList<>();//压缩后保存...
2019-09-28 15:45:26
1756
原创 解决采用知乎图片上传框架Matisse上传图片时候,点击拍照闪退的一个小bug和android7.0以上的机型调用系统相机的权限处理
添加知乎图片图片框架依赖:implementation 'com.zhihu.android:matisse:0.5.1'问题描述:Stack trace: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.con...
2019-09-27 16:55:56
3074
1
原创 记一次android项目编译错误的解决过程
好好的项目,Invalidate and Restart 后,再运行就报编译报错org.gradle.tooling.BuildException: Failed to execute aapt at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidRe...
2019-09-24 17:05:34
6763
转载 遇到的异常问题Error:Failed to resolve: com.android.support:support-annotations:27.0.1
这个问题可以通过修改project的gradle,添加maven { url “https://maven.google.com” }即可,如图
2018-04-04 12:04:56
843
android地区选择demo.rar
2020-08-20
TabLayoutDemo
2018-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅