zoukankan      html  css  js  c++  java
  • 9.9 Binder系统_Java实现_Android里java程序的编译启动

    如果知道了进程号:通过ls /proc/进程号/task 可以看到所有线程    cat /proc/进程号/task/线程号/comm  可以达到线程名字(主线程是main,主线程号就是进程号)

    dalvikvm //android上运行的虚拟机,其接受的是dex格式的文件,所以在android上运行的时候class文件需要转换成dex才能执行
    达尔维克

    CLASSPATH=...

    app_process [java-options] cmd-dir start-class-name [options]


    Java源码: 01th_hello
    javac Hello.java //编译得到Hello.class
    dx --dex --output=Hello.jar Hello.class

    PC:
    java Hello  //运行java程序的指令
    Android:
    dalvikvm -cp /mnt/Android_fs/Hello.jar Hello  //运行java程序的程序

    //或者通过下面两条指令在android环境下运行java程序,首先设置在哪里找这个类
    CLASSPATH=/mnt/android_fs/Hello.jar

    app_process /mnt/android_fs Hello///mnt/android_fs是设置的父目录,指定Java程序从哪里找需要的文件

    Java源码: 11th_package/01
    javac -d . Pack.java
    dx --dex --output=pack.jar ./
    PC:
    java a.b.c.d.Pack
    Android:
    dalvikvm -cp /mnt/android_fs/pack.jar a.b.c.d.Pack

    或者
    CLASSPATH=/mnt/android_fs/pack.jar

    app_process /mnt/android_fs a.b.c.d.Pack

    Java源码: 11th_package/02
    javac -d . lisi/Math.java
    javac -d . zhangsan/Math.java
    javac -d . zhangsan/Print.java
    javac Pack.java

    dx --dex --output=pack.jar ./
    PC:
    java Pack
    Android:
    dalvikvm -cp /mnt/android_fs/pack.jar Pack
    CLASSPATH=/mnt/android_fs/pack.jar

    app_process /mnt/android_fs Pack


    把代码放到android源码中编译:
    添加Androd.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)

    启动方式的差别:
    dalvikvm
    app_process :会多创建2个binder线程: Binder_1, Binder_2

    app_process 对应的应用程序是app_main.cpp

  • 相关阅读:
    springboot 入门
    json-lib 的 maven dependency 引入及Jar包下载
    DataGridView 使用技巧精华
    SqlServer无备份下误删数据恢复
    Reflector 已经out了,试试ILSpy
    C# 反射,动态编译
    windows8和windows server2012不联网安装.net 3.5(包括2.0和3.0)
    如何附加被分离的质疑数据库? [转]
    easyui validatebox 验证类型
    所见即所得:七大无需编程的DIY开发工具
  • 原文地址:https://www.cnblogs.com/liusiluandzhangkun/p/9155437.html
Copyright © 2011-2022 走看看