首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
susion
掘友等级
程序员
|
字节跳动
获得徽章 5
动态
文章
专栏
沸点
收藏集
关注
赞
237
文章 229
沸点 8
赞
237
返回
|
搜索文章
文章
热门
最新
dagger从入门到放弃
Dagger是一个依赖注入框架, 它的核心实现原理是在编译期产生依赖注入相关代码, 我们可以通过Dagger提供的注解来描述我们的依赖注入需求。 为了实现依赖注入,Dagger需要知道对象的创建方式, 开发者需要知道怎么获取Dagger创建的对象, 本文会围绕这两点介绍一下Da…
B站弹幕库DanmakuFlameMaster源码浅析
其实就是如果这个DrawingCache中有Bitmap的话,那么就擦干净。如果没有Bitmap,那么就在native heap上创建一个Bitmap,这个Bitmap会和DrawingCache.DrawingCacheHolder的canvas管关联起来。 首先这里的can…
LifeClean : 基于Lifecycle 的MVP编码框架
个人认为MVP主要是用来做职责分离的, 即Presenter负责数据的加载逻辑, View负责数据的展示逻辑。 传统MVP的写法是将Presenter和View都抽取出一个接口,然后实现类之间使用这两个接口做隔离。 LifeClean.createPresenter()会通过反…
开源 | 新一代Android 性能监控框架Rabbit
也提供了完整的数据上报系统。目前包含的主要功能如下图: 通过编译时代码插桩, rabbit可以非常方便的统计应用的冷启动时间与页面渲染时间。测速统计的关键时间点定义如下图: 与网络请求耗时结合后,rabbit可以统计出一个页面的完全渲染耗时。这里的完全渲染耗时是指:从页面cre…
Android应用测速组件实现原理
Rabbit是目前我正在开发的一个框架,它主要用来提高App开发的效率和质量,总体定位上偏向于一个APM框架。 整个测速组件实现的核心思路是:利用Gradle插件在应用编译时动态注入监控代码。因此使用时需要在应用的build.gradle中应用插件: 编译应用时在Applica…
应用卡顿监控
即上面不断循环调用Choreographer.getInstance().postFrameCallback(this)(这样会导致Choreographer不断请求Vsync信号来回调Choreographer.doFrame()方法), 并计算出doFrame方法的执行时间…
应用流畅度(FPS)监控
流畅度是页面在滑动、渲染等过程中的体验, Android系统要求每一帧都要在16.67ms内绘制完成, 即每秒绘制60帧(大部分手机的刷新频率都在60Hz)。本文所说的应用的流畅度监控就是指监控应用每秒刷新的帧率(FPS)。 在Andorid中监控FPS一般使用Choreogr…
Choreographer工作逻辑总结
Choreographer主要是用来协调动画、输入和绘制事件运行的。它通过接收Vsync信号来调度应用下一帧渲染时的动作。 Vsync信号可以理解为底层硬件的一个系统中断,它每16ms会产生一次。上面onVsync()的每个参数的意义为: 上面4个事件会在一次Vsync信号到来…
booster分析-App资源压缩
对于资源编译有哪些步骤我并没有找到比较详细官方文档,不过我们可以通过查看com.android.tools.build:gradle的源码来了解这个过程。构建一个app包所涉及的到GradleTask(比如assembleRelease)的源码大概位于ApplicationTa…
booster分析-线程优化&性能检测
对于这个组件官方是这样描述的: 对于开发者来说,线程管理一直是个头疼的问题,特别是第三方 SDK 中的线程,过多的线程可能会导致内存不足,然而幸运的是,这些问题都能通过 Booster 来解决。 那booster是如何解决的呢? 其实实现思路类似上一篇文章booster分析-修…
下一页
个人成就
文章被点赞
1,116
文章被阅读
143,892
掘力值
4,517
关注了
21
关注者
3,072
收藏集
3
关注标签
23
加入于
2016-08-15