- 博客(17)
- 资源 (31)
- 收藏
- 关注
原创 dex2jar源码解析----smail转dex
SmaliCmd用来将smail文件转换为dex文件smail转dex用到了一个ANTLR 语言识别的一个工具 (ANother Tool for Language Recognition ) 来识别 smail语法,它定义了一个smail的文法文件这里的Smail.g4就是定义的文法文件,使用的是g4版本,另外几个java文件是根据文法文件自动生成的这是文法文件的一部分关于ANTLR我也不是特别
2016-12-23 16:48:02 3083 3
原创 android5.0上去掉按钮阴影
android 5.0以上默认给按钮添加了阴影,我们可以通过如下两方式去掉阴影1、style/Widget.AppCompat.Button.Borderless 这个需要用在我们需要给按钮添加自定义的样式的时候 match_parent @dimen/item_height center 2、style=”?android:at
2016-12-22 20:26:17 3840 1
原创 dex2jar源码解析----dex转smail
我们以BaksmaliTest为例,查看一下Dex转smail的流程public class BaksmaliTest { @Test public void t() throws Exception { File dir = new File("../dex-translator/src/test/resources/dexes"); File
2016-12-22 11:40:25 1532 2
转载 关于java字节码框架ASM的学习
原文:http://www.cnblogs.com/liuling/archive/2013/05/25/asm.html 一、什么是ASM ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件里,这些类文件
2016-12-21 21:03:15 1049
原创 dex2jar源码解析----解析dex文件<三>
接上篇,我们从convertCode开始看 public void convertCode(DexMethodNode methodNode, MethodVisitor mv) { IrMethod irMethod = dex2ir(methodNode);//主要是创建了它的stmts 把dex类型的指令转换为ir类型的指令 optimize(irMet
2016-12-21 20:57:00 2214
原创 dex2jar源码解析----解析dex文件<二>
接上面,我们继续分析doTranslate的下一部分private void doTranslate(final Path dist) throws IOException { DexFileNode fileNode = new DexFileNode();//创建一个DexFileNode的访问者 try { reader.accept
2016-12-21 15:16:25 1767
原创 dex2jar源码解析----总体介绍
dex2jar这个源码包,听名字是用来将dex文件转换为java文件,在githup上面的地址是https://github.com/pxb1988/dex2jar但我们分析这个源码可以看到,里面的功能不只是将dex转换为jar包,也可以转换dex为smail文件等,这个后面在分析dex2jar就是将dex文件转换为class文件,然后class文件打成jar包dex转换为class文件过程中会先
2016-12-19 13:02:00 3773
转载 JVM指令集
原文:http://blog.csdn.net/lm2302293/article/details/6713147 JVM指令集(指令码、助记符、功能描述)指令码助记符功能描述0x00nop无操作 0x01aconst_null 指令格式: aconst_null 功能描述: null进栈。 指令执行前指令执行后栈底...... null栈顶 注意:JVM并没有为null指派一个具体的值。
2016-12-17 22:57:04 2131
转载 Android-Dalvik指令集
原文:http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html表中的Vx代表一个寄存器,根据指令的不同,可以有16,256或者是64k个寄存器。对long或者是double的操作都会使用2个寄存器,比如,v0寄存器里面的double实际会占据v0和v1寄存器。boolean值用1带包true,0代表false。对boolean值的操作会转化为
2016-12-17 22:55:27 933
原创 有关C++模版
前面看老罗文章时看到里面有很多的模版,不是很了解,这里做个笔记typedef 类型 定义名;类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型。定义名表示这个类型的新名字。例如: 用下面语句定义整型数的新名字:typedef int SIGNED_INT;typedef函数指针用法typedef 返回类型(*新类型)(参数表)typedef char (*PTRFUN)(int);
2016-12-17 12:31:54 970
原创 有关viewPager item数量相同数据不同时显示问题
当我们使用viewPager 设置数据后,如果只是更新了数据,但数据项数没变,那么当我们调用notifyDataSetChanged();里面的内容并不会刷新跟踪下ViewPager的源码,主要是在下面这个函数void dataSetChanged() { // This method only gets called if our observer is attached, so
2016-12-16 17:31:28 900
原创 dalvik执行流程
Dalvik虚拟机运行时,同样为每个线层维护一个PC计数器和调用栈,与Java虚拟机不同的是,这个调用栈维护一份寄存器列表,寄存器的数量在方法结构体的register字段中给出,Dalvik虚拟机会根据这个值来创建一份虚拟的寄存器列表由此可见,给予寄存器架构的Dalvik虚拟机与基于栈架构的Java虚拟机相比,由于生成的代码指令少了,程序执行速度会更快一些
2016-12-16 08:26:45 948
原创 smail格式
Smali代码是Android的Dalvik虚拟机的可执行文件DEX文件反汇编后的代码。所以Smali语言就是Dalvik的反汇编语言。?使用Apktool反编译apk?文件后,会在反编译工程目录下生成一个smali?文件夹,里面存放着所有反编译出的smali?文件,这些文件会根据程序包的层次结构生成相应的目录,程序中所有的类都会在相应的目录下生成独立的smali?文件Smali语法格式可参考:h
2016-12-14 11:01:10 1258
原创 dex文件结构
上文分析了class文件的结构,这里我们分析dex的文件结构通过如下命令把上文的.class文件生成dex文件 dx --dex --output Test33.dex .\Test2.class首先我们来看下dex文件整体的一个结构DEX文件的基本结构如下图headerstring_idstype_idsproto_idsfield_idsmethod_idsclass_defdatalink_
2016-12-10 23:05:58 861
原创 java class文件结构
要深入理解class文件结构,请移步:http://blog.csdn.net/column/details/zhangjg-java-blog.htmlpackage a;/** * Created by leaves on 2016/11/8. */public class Test2 { public static final int mStatic = 111111111
2016-12-07 10:06:25 406
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人