Android驱动入门-在Android系统上运行JAVA程序
在linux上运行java程序,直接用javac编译,再用java运行就行了。但是在Android上,由于虚拟机和pc端的不同,所以操作方法也是不一样的。
如果想在Android上运行Hello world!。则需要一下步骤。
/* File Name: Hello.java */ public class Hello { public static void main(String[] args) { System.out.println("Hello world!"); } }
首先在pc上编译: javac Hello.java
生成 Hello.class 文件。
然后执行下面的指令(Hello.class保存在/work目录下):
dx --dex --output=Hello.jar Hello.class
(如果提示找不到dx指令,则需要设置一下环境变量。 . setenv)
生成Hello.jar文件。
在Android系统的控制台上,运行下面指令中的一个即可运行java程序。
dalvikvm -cp /mnt/Hello.jar Hello
CLASSPATH=/mnt/Hello.jar app_process ./ Hello
当涉及到多个文件时:
/* File Name: Pack.java */ package a.b.c.d; public class Pack { public static void main(String[] args) { System.out.println("Pack Java!"); } }
运行指令:
javac Pack.java -d . //在当前目录下生成 a/b/c/d/Pack.class
java a.b.c.d.Pack //在pc上运行
dx --dex --output=pack.jar ./
dalvikvm -cp /mnt/pack.jar a.b.c.d.Pack
CLASSPATH=/mnt/pack.jar app_process ./ a.b.c.d.Pack
如果涉及到多个文件,则可以借助Android.mk来实现。
/* File Name:Android.mk 参考: frameworks/base/cmds/am/Android.mk */ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_MODULE := pack include $(BUILD_JAVA_LIBRARY)
把代码放到 framework/testing目录下。,然后执行 mmm . 命令。 会生成一个 pack.jar
用 dalvikvm 或 app_process 两种启动方式来运行。
启动方式的差别:
app_proces会创建两个Binder线程: Binder_1, Binder_2
u-boot下载地址: ftp://ftp.denx.de/pub/u-boot/
linux内核下载地址: https://www.kernel.org/pub/linux/kernel
linux内核下载地址: https://www.kernel.org/pub/linux/kernel