zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    数据分析淘宝口红评论(男生勿进
    使用BaseMap绘制地图它不香么
    python使用openpyxl操作excel
    pandas之初探index对象
    pandas之IO数据读写
    pandas之DataFramer入门到弃坑
    pandas数据重复,替换和添加处理
    pandas数据缺失处理
    SVG:可伸缩的矢量图形
    20条书写CSS代码
  • 原文地址:https://www.cnblogs.com/ynxf/p/6923639.html
Copyright © 2011-2022 走看看