首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
优化
订阅
DaveBoy
更多收藏集
微信扫码分享
微信
新浪微博
QQ
7篇文章 · 0订阅
减少RxJava中多余的线程调度
对于一次可观察序列中的多次 subscribeOn 或者 observeOn 操作,哪怕指定在相同的 Schedulers.io 调度器上,观察者操作也会在不同的线程上执行,即发生从io线程到io线程的切换。 上面模拟的操作中,download unZip checkMd5 都…
Android Lint代码检查实践
1. 为啥用Lint 平时开发中我们在提mr的时候都会进行review,但有些问题通过人眼去看很难发现,比如Fragment必须有空参构造函数,因为在内存不足的时候Fragment恢复默认是通过反射调用空参构造函数重建Fragment、又或者直接使用了kt的扩展函数String…
一线大厂大型APP性能优化系列-自定义启动器(三)
但是如果有的方法自己需要依赖的方法执行完毕才能执行,比如 initJPushInterface() 可能需要先执行完毕 GetDeviceID() 执行完毕才能进行再执行,那么把它们都放入线程池里面并行执行就会产生问题,另外有的方法比如initBugly(); 必须先执行完它之…
Gradle Transform + ASM 探索
使用 Gradle Transform + ASM 实现代码插桩的使用已经非常普遍。本文试图探索如何更加快速简洁的利用 Transform 实现代码插桩,并尝试实现 ...... 简单来说就是利用 AGP 提供的 Transform 接口,在应用打包的流程中,对 java/ko…
和我一起用 ASM 实现编译期字节码织入
这两天摸鱼的时候,突然发现 Jake Wharton 大神写的 Hugo 非常有意思,通过这个库可以实现对方法调用的一些相关数据进行记录。比如它可以通过在方法前加上 DebugLog 注解使得该方法执行时在 Logcat 中打印这个方法的入参、耗时时间、返回值等等。 这个库的设…
深入探索Android布局优化(下)
成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。 在上篇文章中,笔者带领大家学习了布局优化涉及到的绘制原理、优化工具、监测手段等等知识。如果对这块内容还不了解的建议先看看《深入探索Android布局优化(上)》、深入探索And…
一线大厂资深APP性能优化系列-异步优化与拓扑排序(二)
通过上期的学习(一线大厂资深APP性能优化系列-卡顿定位(一)),我们学会了 定位及获取程序的耗费时间 并找到卡顿的地方。这期我们来谈谈具体的优化方案,首先是 异步优化 想到异步首先想到的就是开线程,但是需要注意的是不要直接就去开线程,因为线程缺乏统一管理,可能无限制新建线程,…