代码结构
以下是编译时代码的目录结构的截图
java程序
以下是编写一个java程序,命令为Test.java,在主函数中输出输入的参数,以及打印简单的log
package com.example.test;
import android.util.Log;
public class Test {
private static final String TAG = "Test";
public static void main(String[] args) {
for (String arg : args) {
Log.d(TAG, "arg = " + arg);
}
Log.d(TAG, "execute test main method");
}
}
命令
编写一个shell脚本命令语句,命名为clienttest
base=/system
export CLASSPATH=$base/framework/test.jar
exec app_process $base/bin com.example.test.Test "$@"
编译文件
编写一个Android.mk的文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
$(call all-java-files-under, src)
LOCAL_MODULE := test
LOCAL_PROTOC_OPTIMIZE_TYPE := stream
include $(BUILD_JAVA_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := clienttest
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)
当执行完编译后会生成test.jar文件,可执行的bin文件test,其中要将test.jar文件push到/system/framework下,test可执行文件push到/system/bin,然后运行./test
输出打印
执行./test
04-23 09:37:25.134 4584 4584 D Test : execute test main method
执行./test param1 --status2
04-23 09:37:55.337 4603 4603 D Test : arg = param1
04-23 09:37:55.337 4603 4603 D Test : arg = --status2
04-23 09:37:55.337 4603 4603 D Test : execute test main method