java
文章平均质量分 92
痕迹丶
对代码不满足,是任何真正有天才的程序员的根本特征。
展开
-
android 方法字节码插桩hook插件分享,全埋点,性能监控,线程,IO创建监控,一站式搞定,高可定制化,使用非常简单!
项目地址:https://github.com/miqt/android-plugin/blob/master/plugin/hook-method-plugin/readme.md这是一个 android 方法字节码插桩hook的插件,在方法进入和方法退出时,将当前运行的所有参数回调到固定的接口中,利用这一点,可以进行方法切片式开发,通过配置Hook点,达到Hook监控的目的。利用这个插件,可以实现:Android 全埋点,页面浏览,点击,等无痕埋点,按需配置Hook点即可,配置方法见下文And原创 2021-08-10 15:30:09 · 1132 阅读 · 6 评论 -
位操作使用一个参数标记多个开关
例如一个手机,可能有以下标记位:flag = 手机属性屏幕是否破损 case1电池是否有电 case2是否有摄像头 case3是否能打电话 case4是否是苹果手机 case5是否在保修期内 case6正常大家可能使用bool类型来存储n多个参数,但也可以使用一个int或者是long来存储,在java中int占4字节每个字节占8位一共32位,也就是说能存储 32个标记为,省下32个bool值。使用位运算来操作一个int值的标记,int原创 2020-08-31 14:17:49 · 400 阅读 · 0 评论 -
分享一个RSA加解密工具类,公钥加密私钥解密、私钥加密公钥解密、私钥签名公钥验签、生成公钥私钥
测试: public static void main(String[] args) { try { //生成公钥私钥 Map<String, Object> map = RSAUtil.initKey(2048); String PrivateKey = RSAUtil.getPrivateKey(map); String PublicKey = RSAUtil.getPubli原创 2020-08-04 11:02:22 · 1194 阅读 · 1 评论 -
android免root运行adb高级权限命令,例如修改手机设置等(转)
免Root实现静默安装和点击任意位置0 前言最近有了个需求:免 root 实现任意位置点击和静默安装。这个做过的小伙伴应该都知道正常情况下是不可能实现的。无障碍只能实现对已知控件的点击,并不能指定坐标。但是确实有人另辟蹊径做出来了,譬如做游戏手柄的飞智,他们是用一个激活器,手机开 usb 调试,然后插在激活器上并授权,飞智游戏厅就被「激活」了,然后可以实现任意位置点击。如果不了解的可以去他们官网了解下,在这里不多赘述了。无独有偶,黑域也使用了类似的手段,也可以用电脑的usb调试激活。我们知道,任意位.转载 2020-07-28 15:32:03 · 11992 阅读 · 7 评论 -
Android-ASM字节码插桩技术跳坑指南
经验总是不停刨坑刨出来的,最近结合工作需要并熟悉学习android ASM 字节码插桩的环境下,开发了一个方法 hook 的插件,虽然在各方其他开源项目的参考下,还是刨了不少坑,下面就来记录下。gradle 知识点记录–dry-run 查看gradle task执行顺序,验证插件是否被执行时有用。–stacktrace 查看详细堆栈,报错时可以看到插件代码错误的位置。ASM开发相关注意基本类型中的long 类型 和double 类型,占8个字节,在方法堆栈中占两个slot,不可以用ALOAD原创 2020-07-21 19:21:03 · 2126 阅读 · 0 评论 -
java支持优先级的线程池 同步 异步
支持设置任务的优先级来顺序的执行任务import java.util.concurrent.Callable;import java.util.concurrent.Future;import java.util.concurrent.FutureTask;import java.util.concurrent.PriorityBlockingQueue;import java.util...原创 2020-04-14 19:02:09 · 326 阅读 · 0 评论 -
android 性能分析(优化)-利用AOP技术,字节码方法插桩,实现 android 耗时统计
在android开发的过程中,不管是开发SDK还是开发App,我们时常有这么一个需求,性能优化,或者卡顿优化,通常进行这项工作的时候,我们可能会凭着主观的一些观点,去定位排查某一部分代码,常用的手段就是在可疑代码前后加时间戳相减来手动统计,或者在运行的过程中,通过看android 自带的性能分析工具来进行优化。但这种方式难免会有疏漏,而且每段代码的执行过程也是不容易追踪的。今天就来给大家介绍一个...原创 2020-03-18 17:48:25 · 1704 阅读 · 1 评论 -
记录在使用类加载器的时候遇到的一个错误:java.lang.LinkageError
报错信息是这样的:java.lang.LinkageError: Class com.lm.process.CheckProcess method void com.lm.process.CheckProcess.observer(com.lm.bean.HhInfo, android.view.View) resolves differently in interface com.lm.pro...原创 2019-07-08 17:48:45 · 4108 阅读 · 0 评论 -
记一次java.lang.IllegalAccessError错误
java.lang.IllegalAccessError: Field 'com.lm.presenter.LmViewPresenter.view' is inaccessible to class 'com.lm.presenter.SplashPresenter' (declaration of 'com.lm.presenter.SplashPresenter' appears in /d...原创 2019-07-08 17:47:59 · 31921 阅读 · 5 评论 -
java 注解使用与注意事项
想拥有一个star过千的项目好难啊,费劲巴力的整出来star几天才有一个[捂脸],不过咱也不气馁,毕竟开发个东西出来对自己的技术也是个帮助不是。wandfix开发了有一段时间了,在开发和使用的过程中也发现了一些问题,特别是帮助了我学习对于java 注解的使用。今天就打算分享我在这个项目中对于注解使用。java注解在部分情况下是个可以帮助我们提升开发效率的东西,比如大名鼎鼎的控件绑定库 Butt...原创 2019-04-16 14:10:19 · 603 阅读 · 0 评论 -
java实现计算复杂数学表达式
用过python或者PHP的同学应该知道,它们都有个eval函数,这个函数真的是好用啊,比如我算数的时候就喜欢用python的控制台来当做计算器。比如:Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32Type "copyright", "credits" or...原创 2018-10-09 14:53:56 · 10643 阅读 · 10 评论 -
Java Socket通信及TCP/UDP实现
记得上一次接触socket这一块还是在大三抓耳挠腮的整毕设的时候,两年后的今天又用到了它,那就把Socket实现组播什么的做一个记录吧。原创 2017-08-15 11:29:43 · 7763 阅读 · 2 评论 -
Javah生成JNI头文件极简跳坑
① Javac helloword.java② javah -classpath 包名文件夹路径 -d 头文件输出路径 -jni 包名.类名(不带.class)-classpath <路径> 用于装入类的路径。注意是包名文件夹的路径,不是class的路径,如果没有包名的话就是class的路径。-d <目录> 输出目录-jni 生成 JNI样式的头文件(默认)如果报无法确定xxx.xxx.xxx原创 2017-06-07 15:59:56 · 8902 阅读 · 0 评论 -
AtomicInteger简介
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。翻译 2016-08-29 17:11:05 · 6279 阅读 · 0 评论