首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
性能优化
订阅
Dusan
更多收藏集
微信扫码分享
微信
新浪微博
QQ
14篇文章 · 0订阅
OOM的起点到终点
线上日志反馈内存溢出问题。根据用户反馈,客户操作一段时间之后,APP 内存溢出崩溃。 这两种情况下都无法定位问题所在。 通过观察发生的版本信息,是从V9.5.6开始的,于是就开始查那期改动的功能(主要是webview优化,其他的是SDK更新),由于没有线上出问题的机型,就找个类…
04.Android崩溃Crash库之Loop拦截崩溃和ANR
上一篇整体介绍了crash崩溃库崩溃重启,崩溃记录记录,查看以及分享日志等功能。 能否基于 Handler 和 Looper 拦截全局崩溃(主线程),避免 APP 退出。 能否基于 Handler 和 Looper 实现 ANR 监控。 通过上面的代码就可以就可以实现拦截UI线…
OOM 常见原因及解决方案
当 JVM 内存严重不足时,就会抛出 java.lang.OutOfMemoryError 错误。本文总结了常见的 OOM 原因及其解决方法,如下图所示。如有遗漏或错误,欢迎补充指正。 当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 java.lang…
深度探索 Gradle 自动化构建技术(一、Gradle 核心配置篇)
成为一名优秀的Android开发,需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。 工程构建工具从古老的 mk、make、cmake、qmake, 再到成熟的 ant、maven、ivy,最后到如今互联网时代的 sbt、gradle,经历了长久的历史演化与变…
Android性能优化(一)-启动优化
应用有三种启动状态,每种状态都会影响应用向用户显示所需的时间:冷启动、温启动和热启动。在冷启动中,应用从头开始启动。在另外两种状态中,系统需要将后台运行的应用带入前台。 一旦应用进程完成首帧绘制,系统进程就会换掉当前显示的后台窗口,替换为主Activity。此时,用户可以开始使…
Android卡顿检测及优化
之前在项目中做过一些Android卡顿以及性能优化的工作,但是一直没时间总结,趁着这段时间把这部分总结一下。 在大部分Android平台的设备上,Android系统是16ms刷新一次,也就是一秒钟60帧。要达到这种刷新速度就要求在ui线程中处理的任务时间必须要小于16ms,如果…
Java/Android中的引用类型及WeakReference应用实践
一般意义上而言,Java/Android中的引用类型包括强引用、软引用、弱引用、虚引用。不同的引用类型具有各自适用的应用场景,并与JVM的GC直接相关。 作为Java/Android中的引用类型之一,WeakReference被大量的使用到系统源码、基础工具甚至具体的业务逻辑中…
Android进阶知识:ANR的定位与解决
ANR对于Android开发者来说一定不会陌生,从刚开始学习Android时的一不注意就ANR,到后来知道主线程不能进行耗时操作注意到这点后,程序出现ANR的情况就大大减少了,甚至于消失了。那么真的是只要在主线程做耗时操作就会产生ANR吗?为什么在有时候明明觉得自己没在主线程做…
RN拆包解决方案(一) bundle拆分
require定义的代码块,找到 __d 定义的代码块并执行,其中require中的数字即为 __d定义行中最后出现的那个数字。 从上述源码也可以看出,系统使用整数型的方式,从0开始遍历所有模块,并依次使 Id 增加 1。所以我们可以修改此处逻辑,以模块路径名称的方式作为Id即…
LeakCanary2.4源码分析
LeakCanary是一个Android端用于内存泄露检测开源工具,可以很方便的自动检测销毁的Activity、Fragment的实例、Fragment中View的实例、清除的ViewModel实例的内存泄露。本篇基于2.4版本进行分析。 在2.0之后,LeakCanary只需…