文档章节

dalvik:java2class2dex2jar

RyaneLuo
 RyaneLuo
发布于 2013/08/30 18:09
字数 325
阅读 74
收藏 0


ryanel@ryaneVM:~/SDK/my-java-test$ echo 'class Foo {''public static void main(String[] args) {''System.out.println("Hello, world");}}' > Foo.java


ryanel@ryaneVM:~/SDK/my-java-test$ javac Foo.java  -verbose
[parsing started Foo.java]
[parsing completed 16ms]
[search path for source files: .]
[search path for class files: /usr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/resources.jar,/usr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/rt.jar,/usr/lib/jvm                                             /java-6-sun-1.6.0.45/jre/lib/sunrsasign.jar,/usr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/jsse.jar,/usr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/jce.jar,/u                                             sr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/charsets.jar,/usr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/modules/jdk.boot.jar,/usr/lib/jvm/java-6-sun-1.6.0.4                                             5/jre/classes,/usr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/ext/dnsns.jar,/usr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/ext/sunjce_provider.jar,/usr/lib/jv                                             m/java-6-sun-1.6.0.45/jre/lib/ext/localedata.jar,/usr/lib/jvm/java-6-sun-1.6.0.45/jre/lib/ext/sunpkcs11.jar,.]
[loading java/lang/Object.class(java/lang:Object.class)]
[loading java/lang/String.class(java/lang:String.class)]
[checking Foo]
[loading java/lang/System.class(java/lang:System.class)]
[loading java/io/PrintStream.class(java/io:PrintStream.class)]
[loading java/io/FilterOutputStream.class(java/io:FilterOutputStream.class)]
[loading java/io/OutputStream.class(java/io:OutputStream.class)]
[wrote Foo.class]
[total 546ms]


ryanel@ryaneVM:~/SDK/my-java-test$ dx --dex --output=foo.jar Foo.class


ryanel@ryaneVM:~/SDK/my-java-test$ ll
total 12
drwxrwxr-x  2 ryanel 999   0 Aug 30  2013 ./
drwxr-xr-x 30 ryanel 999   0 Aug 30 17:20 ../
-rw-r--r--  1 ryanel 999 412 Aug 30  2013 Foo.class
-rw-r--r--  1 ryanel 999 750 Aug 30  2013 foo.jar
-rw-r--r--  1 ryanel 999 100 Aug 30  2013 Foo.java


ryanel@ryaneVM:~/SDK/my-java-test$ adb push foo.jar /data/
13 KB/s (750 bytes in 0.055s)


ryanel@ryaneVM:~/SDK/my-java-test$ adb shell dalvikvm -cp /data/foo.jar
Dalvik VM requires a class name


ryanel@ryaneVM:~/SDK/my-java-test$ adb shell dalvikvm -cp /data/foo.jar Foo
Hello, world

© 著作权归作者所有

RyaneLuo

RyaneLuo

粉丝 13
博文 140
码字总数 28387
作品 0
深圳
高级程序员
私信 提问
加载中

评论(1)

RyaneLuo
RyaneLuo 博主
http://milk.com/kodebase/dalvik-docs-mirror/docs/hello-world.html
下一版本的Android移除了Dalvik并默认使用ART

就在昨晚,AOSP 代码的 master 分支上的提交显示 Dalvik 被开除,然后 ART 接替了默认的位置。这个变更是以提交 98553 和 98618 被合并的形式展现的。 前者负责把 Dalvik 从 AOSP 的 master...

91porn
2014/06/20
7K
35
JVM、Dalvik与ART

Dalvik与JVM之间的主要区别 JVM是基于栈的,Dalvik是基于寄存器的,所以Dalvik速度会更快一点 Dalvik中的线程对应到Linux中的线程,所已这里线程的调度依赖的是Linux系统,而非Dalvik虚拟机管...

skyfly
2016/06/19
38
0
Jvm、Dalvik和Art的区别

JVM Java虚拟机 JVM(Java Virtual Machine)是一种软件实现,执行像物理程序的机器。JVM并是不专为Java所实现运行的,只要其他编程语言的编译器能生成Java字节码,那这个语言也能实现在JVM上运...

翻滚吧李博
2017/12/20
0
0
Dalvik虚拟机进程和线程的创建过程分析

我们知道,在Android系统中,Dalvik虚拟机是运行Linux内核之上的。如果我们把Dalvik虚拟机看作是一台机器,那么它也有进程和线程的概念。事实上,我们的确是可以在Java代码中创建进程和线程,...

Luoshengyang
2018/06/26
0
0
Dalvik虚拟机的运行过程分析

在前面一篇文章中,我们分析了Dalvik虚拟机在Zygote进程中的启动过程。Dalvik虚拟机启动完成之后,也就是在各个子模块初始化完成以及加载了相应的Java核心类库之后,就是可以执行Java代码了。...

Luoshengyang
2013/05/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

抽象同步队列AQS——AbstractQueuedSynchronizer锁详解

AQS——锁的底层支持 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资...

须臾之余
今天
3
0
springboot配置百度UEditor 富文本详解

富文本简介 UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 准备工作 ueditor需要单独文...

wotrd
昨天
4
0
mysql 5.7之my.cnf配置大全

[client]port = 3306socket = /tmp/mysql.sock[mysqld]###############################基础设置######################################Mysql服务的唯一编号 每个mysql服务...

Online_Reus
昨天
3
0
MAVEN打包时引入外部链接的包

1.项目引入了ORACLE的jar包,MAVEN配置如下 2.打jar包的时候需要指定下main入口函数mainClass <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> ......

Cobbage
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部