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

  • 相关阅读:
    大组合取模之:1<=n<=m<=1e6,1<=p<=1e9
    大组合数取模之lucas定理模板,1<=n<=m<=1e9,1<p<=1e6,p必须为素数
    fzu2020( c(n,m)%p,其中n, m, p (1 <= m <= n <= 10^9, m <= 10^4, m < p < 10^9, p是素数) )
    lucas定理证明
    各类小公式
    x^a=b(mod c)求解x在[0,c-1]上解的个数模板+原根求法
    快速幂+乘模 模板
    hdu1695(容斥 or 莫比乌斯反演)
    poj1845(二分快速求等比数列模M和)
    2018JAVA面试题附答案
  • 原文地址:https://www.cnblogs.com/ynxf/p/6923639.html
Copyright © 2011-2022 走看看