Android:编译java程序成可执行文件放到真机运行
一、在android源码里面如何编译java程序?
1、Androidsourcecode/hardware/下新建目录java_exe,增加Android.mk、Hello.java两个文件。
2、Android.mk
# Copyright 2008 The Android Open Source Project
#
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_MODULE := hello
include $(BUILD_JAVA_LIBRARY)
3、Hello.java
class Hello {
public static void main(String args[]) {
System.out.println("hello java!biada!\n");
}
}
4、在android源码里面编译,先执行. build 和 lunch 配置环境变量后mmm编译。
5、在out目录下生成hello.jar
二、adb push hello.jar到/data/真机运行
1、执行
:/ # dalvikvm -cp /data/hello.jar Hello
hello java!biada!
或者
:/ # CLASSPATH=/data/hello.jar app_process . Hello
2、运行效果图
三、android source code 下面有很多这样的可执行程序,比较常用的input,就是java写的。
Android.mk
# Copyright 2008 The Android Open Source Project
#
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_MODULE := input
include $(BUILD_JAVA_LIBRARY)
include $(CLEAR_VARS)
ALL_PREBUILT += $(TARGET_OUT)/bin/input
$(TARGET_OUT)/bin/input : $(LOCAL_PATH)/input | $(ACP)
$(transform-prebuilt-to-target)
input
# Script to start "input" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/input.jar
exec app_process $base/bin com.android.commands.input.Input "$@"