Android性能优化
文章平均质量分 91
紫气东来_life
没有谁的努力会被辜负
展开
-
字节码插桩技术---Transform配合ASM进行插桩(三)
上篇文章介绍了在build.gradle中如何使用ASM进行字节码处理。在build.gradle中进行插桩的话,会存在几个问题(1)对groovy语法要有一些了解(2)不同的gradle版本,所做的处理会有不同,比如打包dex的指令,对class文件的处理方式上等。这些问题上篇文章都有说过。今天将介绍一种新的方式使用Transform的相关API配合ASM进行插桩。.........原创 2022-07-18 17:39:24 · 1238 阅读 · 1 评论 -
字节码插桩技术---Android项目实操(二)
上篇博客简单介绍了使用ASM进行字节码插桩的过程,但是仅仅依靠上篇博客的技术点,是无法在Android项目中使用的,有一个阻碍点就是由于class文件最后被打包到了dex文件中,无法像上篇文章那样,拿到准确的class文件路径。这篇文章,我会详细介绍如何在Android项目中进行字节码插桩............原创 2022-07-16 23:05:56 · 1175 阅读 · 0 评论 -
字节码插桩技术---ASM的使用(一)
字节码插桩技术简单来讲就是通过操作class文件的字节码,对class文件进行改造。在很多三方框架都有应用,比如路由框架ARouter,热修复框架Robust等。而字节码插桩一般都会使用ASM工具进行操作,这篇文章会简单介绍下篇博客会详细介绍,Android项目中如何进行字节码插桩。...............原创 2022-07-14 23:13:26 · 1738 阅读 · 1 评论 -
Android---Native层崩溃的监听工具BreakPad
做Android开发的同学,基本上都遇到过程序崩溃,大部分的崩溃问题都存在于Java层。在开发过程中,如果遇到崩溃,我们可以在logcat中找到相关的信息进行修改;如果是线上出现的问题,我们可以使用Bugly,友盟等三方工具进行错误上报,或者自己做监控,生成错误文件进行上报分析,这时候需要用到UncaughtExceptionHandler接口如果是Native层发生的崩溃怎么办?基本这个问题我们都会略过,第一:看不懂,第二:三方的so库发生了问题我们也解决不了。所以Native层的崩溃监听与解析,主要针对原创 2022-06-08 19:24:49 · 2403 阅读 · 6 评论 -
Android---LeakCanary源码分析
LeakCanary不用多说,学过Android的同学都知道它。LeakCanary2.x相对于LeakCanary1.x有两个比较明显的改变:(1)源码全部使用了Kotlin进行编写(2)不需要再Application中进行install操作。今天我就从LeakCanary的启动以及各个对象的回收监听两个方面来解析这个框架上面我们说了,2.x的版本,我们不用在Application中调用install方法了,那LeakCanary是如何启动的呢?首先,我们先找到AppWatcherInstaller.kt原创 2022-06-07 14:55:43 · 879 阅读 · 0 评论 -
Battery Historian2.0 配置及遇坑
Battery Historian是App电量调优的工具,最近安装了这个工具,在安装过程中,不断遇坑,最后也总算是坑里调了出来,我们一步一步来看安装Battery Historian到底需要注意些什么?一、环境配置官网地址:https://github.com/google/battery-historian相关博客:https://www.jianshu.com/p/378cf678bdeb我贴了两个网址,一个是官网的,一个是某博主翻译后的,内容基本差不多哦。安装Battery His原创 2021-09-23 19:10:25 · 1703 阅读 · 5 评论 -
Android内存优化————加载长图
项目中总会遇到加载长图的需求,图片的长度可能是手机长度的很多倍,也就是需要通过滑动来查看图片。比较简单的实现方式就是使用ScrollView来加载长图,但是这样做有一个很严重的问题,就是内存消耗严重。我这里有一张长图,宽高为440*10260,大小为477KB,使用ScrollView加载的话,总内存消耗为97M,是相当恐怖的。而使用优化后的自定View加载长图,内存消耗为46M,极大的减少了内存...原创 2019-05-21 17:57:06 · 1246 阅读 · 0 评论 -
Bitmap内存压缩与管理
Android中有很多优秀的图片加载框架,比如Glide,Fresco,Picasoo,ImageLoader等。这些框架在性能上和使用上虽然有着差异,也有着各自框架的优缺点,但是在基本原理上都大同小异(Fresco没有研究过源码,具体实现不太清楚)。那就是对Bitmap的处理基本上都使用三级缓存或者四级缓存。可能很多人刚开始学Android的时候就知道或者手写过三级缓存,metoo。但是最近在复...原创 2019-05-13 17:45:53 · 325 阅读 · 0 评论 -
Android内存优化——虚引用,弱引用,软引用的使用及内存分析工具
一、虚引用虚引用在实际的开发过程中应用的比较少。虚引用有一下几个特点:(1)虚引用在垃圾回收器回收的时候被回收(2)虚引用在通过get()方法获取的对象都为空,所以也被称为幽灵引用(3)虚引用不会决定一个对象的生命周期,如果一个对象持有一个虚引用,那么它就和没有任何引用是一样的。所以,根据上述的三个特点可以知道,虚引用主要用来监听所关联的对象什么时候被回收。操作如下: .........原创 2019-05-04 17:38:54 · 5100 阅读 · 2 评论 -
Android性能优化——APP启动优化及Trace使用
开发Android的程序员都知道,自己开发APP时候,如果不做任何处理,在用户打开应用时总会先出现黑屏或者白屏,之后才进入MainActivity中。这是加载程序时间过长造成的。具体的启动原理我就不再这里叙述了,可以百度一下,很多博客讲的都很清楚。我这里只说主要的部分。简单来说,从用户点击应用时,程序会执行Application的onCreate和Activity(入口Activity)的onCr...原创 2019-04-24 14:25:44 · 929 阅读 · 0 评论