如何开发一款高性能的 gradle transform (mp.weixin.qq.com)

【简介】

对于java开发者来说,大家好像都比较喜欢在编译期间搞事儿,比如为了做到AOP编程,大家都喜欢利用字节码生成技术,常用的有无痕埋点,方法耗时统计等等。那么Android中具体是如何做到这些的呢?所谓字节码插桩技术,其实就是修改已经编译的class文件,往里面添加自己的字节码,然后打包的时候打包的是修改后的class文件。为了便捷的修改编译后的class文件,Google爸爸开发了一套gradle相关的库,也就是gradle-transform-api,利用这个工具,我们可以自己实现class文件修改,下面我们看看具体做法。

点击查看原文 >>

@code小生 2019-08-04 23:51 / 0个评论
赞过的人: @IT技术博客大学习 @技术头条 @code小生
要不要再学学下面的文章?
写给开发人员的实用密码学(六)—— 对称密钥加密算法 (thiscute.world)
在密码学里面,最容易搞混的词估计就是「密码」了,cipher/password/passphrase 都可以被翻译成「密码」,需要注意下其中区别。
by @技术头条 2024-01-14 19:01 查看详情
nginx 防火墙模块开发总结 (www.addesp.com)
那段时间我的站点有时会打不开,起初以为是网络问题,后来越来越严重,进入后台才发现数据库 IO 拉满了。看了看 nginx 的日志才发现站点被疯扫,于是打算做点什么。

然后在 Github 上看了几个防火墙模块,要不然功能不全,要不然使用复杂,于是萌生了自己写模块的想法。
by @技术头条 2023-12-26 22:24 查看详情
系统性能指标:洞察系统运行的关键脉搏 (jokerbai.com)
在当今数字时代,软件系统在我们的生活和工作中发挥着越来越重要的作用。我们需要确保这些系统能够在高负载、高并发的情况下稳定运行,为用户提供良好的体验。为了实现这一目标,我们需要关注系统性能监控指标,洞察系统运行的关键脉搏。本文将从指标分类、指标详细说明等方面介绍系统性能监控指标的相关知识,帮助你更好地理解和应用这些关键数据。
by @技术头条 2023-11-30 23:34 查看详情
写给开发人员的实用密码学(三)—— MAC 与密钥派生函数 KDF (thiscute.world)
我们都更喜欢使用密码来保护自己的数据而不是二进制的密钥,因为相比之下二进制密钥太难记忆了,字符形式的密码才是符合人类思维习惯的东西。

可对计算机而言就刚好相反了,现代密码学的很多算法都要求输入是一个大的数字,二进制的密钥就是这样一个大的数字。
by @技术头条 2023-11-06 23:05 查看详情
写给开发人员的实用密码学(二)—— 哈希函数 (thiscute.world)
更好的哈希函数可以使用这样的方案:它将第一个字节作为状态,然后转换状态(例如,将它乘以像 31 这样的素数),然后将下一个字节添加到状态,然后再次转换状态并添加下一个字节等。 这样的操作可以显着降低碰撞概率并产生更均匀的分布。
by @技术头条 2023-11-06 23:04 查看详情
写给开发人员的实用密码学(一)—— 概览 (thiscute.world)
从开发人员的角度理解密码学概念不需要你是一个厉害的数学家。 这个系列的文章将尽量以最浅显的方式教你应用密码学的基础知识,而且包含大量循序渐进的代码示例和实践练习——就像你学习 Web 开发、数据库或 APP 开发一样。
by @技术头条 2023-11-06 23:03 查看详情
一个任务调度算法引起的性能问题 (blog.codingnow.com)
这两天遇到一个任务调度算法引起的性能问题,花了颇多精力排查和解决。问题出在我写的 ltask 这个 lua 多任务库上。ltask 最初是对 skynet 的一些反思中开始的,最初只是想换一种思路实现 skynet :做一个库而不是框架、更少的锁竞争、避免服务因为消息队列堆积而过载……
by @技术头条 2023-10-24 23:52 查看详情
高性能批量读写网络包 (colobu.com)
虽然网络协议栈提供了丰富的功能,让我们可以方便的实现网络的数据交流,但是有时候我们对协议栈的性能还是不是那么满意的,前几篇文章我也介绍了通过XDP等技术高效处理网络数据的方式,但是毕竟XDP还没有那么广泛的应用,使用起来也还不是那么简单,如果我们通过编程语言提供的标准库来实现数据的读写,还怎么能提高性能呢?今天就介绍一种方式,批量的读写数据包。
by @技术头条 2023-07-23 12:30 查看详情
QNAP 威联通 SMB 掉速及性能提升 (www.lesca.cn)
SMB 掉速和多方面因素有关:磁盘性能、网络吞吐、SMB 设置。

现在将从这三方面介绍如何测试瓶颈,以及提升。
by @技术头条 2023-07-23 11:38 查看详情
关于gradle中plugins依赖未走私服导致编译失败的原因探析 (wiki.eryajf.net)
我们的项目标配使用gradle进行编译,我们也配置了nexus作为私服,理论上来说,不应该再会出现因包依赖的原因导致编译失败的情况,但是这个问题仍旧会偶尔发生,我解决过一两次,只看到通常失败的编译都是在开头的时候去 plugins.gradle.org 拉包的情况,当时将该问题存疑,本文特来探析一下导致这个问题的根因。
by @技术头条 2023-07-02 23:44 查看详情