码迷,mamicode.com
首页 > 编程语言 > 详细

Dalvik指令分析(二) 从java文件到dex

时间:2015-02-23 23:41:40      阅读:514      评论:0      收藏:0      [点我收藏+]

标签:dalvik


        写这个系列文章是想了很久但是一直没有时间付诸行动,趁着这两天假期还没有结束,

赶紧动笔,怕上班了就没有时间再静下心来写这些文章,所以有点赶,表现在系列文章的

内容安排上就不是很合理,有些内容还需要丰富,但是聊胜于无吧,先写下再修改,如果

有一些反馈也可以根据反馈来修改。好了,开始第二篇文章。

       这篇文章可以成为dx的HelloWorld,在这篇文章里我会介绍如果将一个java文件编译

成一个dex文件。ok,go!

step1: 准备java文件,文件名HelloWorld.java,内容如下

public class HelloWorld {
    public void sayHello() {
        System.out.println("Hello World!");
    }
}
        多么熟悉的HelloWorld  :)


step2:编写脚本,内容如下:

mkdir classes
javac -d classes src/*.java

dx -JXmx500m --debug --dex --no-optimize --positions=none --no-locals     --dump-to=classes.lst --output=classes.dex classes
zip test.jar classes.dex
        这里需要做一些解释,首先利用javac编译java源文件,生成class文件,然后利用dx将

class文件转换成dalvik指令,并打包生成classes.dex,最后将dex打包成jar包。虽然只是

短短的几句话,但是dx进程的内部逻辑其实非常复杂,后续我会单独写一篇文章介绍dx的

过程。简单总结一下上面的编译过程:

         .java  ------------->    .class   ---------->   .dex
                     javac                             dx


        对应的逆向过程如下:

         .java  <-------------    .class   <------------   .dex

                      JD-GUI                         dex2jar


step3: 执行上述脚本就会生成classes.dex文件

          

这篇文章主要是通过脚本来介绍java to dex的过程,后续文章会详细介绍dx的过程,以及dex

文件的结构。

Dalvik指令分析(二) 从java文件到dex

标签:dalvik

原文地址:http://blog.csdn.net/jiang_lostcode/article/details/43918851

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!