android java加密_Android Java字符串加密

Java字符串加密学习笔记

Java字节码

字节码生成Java2bitcode

由Java源代码生成字节码的过程如下图(图片来源于网络)

6ed0df71a9674b1509a3cb5cb75b0adc.pngJVM执行不是热代码直接走字节码解释器

热代码:多次调用,多次执行的循环体,会被JIT优化成机器码

c9c4dbfd38f9718ee9130e2b6a8f5cc9.png

字节码执行

方法调用在JVM中即是字节码执行,而字节码指令执行的树结构是栈帧(stack frame),也就是在虚拟机栈中的栈元素。虚拟机会给每个方法分配一个栈帧,因为虚拟机栈是LIFO(后进先出)的,所以当前线程正在活动的栈帧,也就是栈顶的栈帧,JVM规范中称之为“CurrentFrame”,这个当前栈帧对应的方法就是“CurrentMethod”。字节码的执行操作,指的就是对当前栈帧数据结构进行的操作。

JVM的运行时数据区结构如下:

bb8012d5bcdf8136338553c12e62767a.png

ASM入门

环境:Ubuntu14.10 + AndroidStudio3.2.1

插件:ASM Bytecode Outline

安装方法file->setting->Plugins->输入ASM Bytecode Outline->Search in repositories

安装并重启

打开Java项目后效果如下:

93b5c2c434a4953c13ed36a12a48a3bf.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值