dalvik中Java类库有许多本地类(全本地方法)

当(Java/C++)调用(Java类库中)本地类的本地方法时,ResolveNativeMethod:查映射表-->本地类的本地函数集-->本地函数指针

类库的本地函数集

static DalvikNativeClass gDvmNativeMethodSet[] = {
    { "Ljava/lang/Object;",               dvm_java_lang_Object, 0 },
    { "Ljava/lang/Class;",                dvm_java_lang_Class, 0 },
    { "Ljava/lang/Runtime;",              dvm_java_lang_Runtime, 0 },
    { "Ljava/lang/String;",               dvm_java_lang_String, 0 },
    { "Ljava/lang/System;",               dvm_java_lang_System, 0 },
    { "Ljava/lang/SystemProperties;",     dvm_java_lang_SystemProperties, 0 },
    { "Ljava/lang/Throwable;",            dvm_java_lang_Throwable, 0 },
    { "Ljava/lang/VMClassLoader;",        dvm_java_lang_VMClassLoader, 0 },
    { "Ljava/lang/VMThread;",             dvm_java_lang_VMThread, 0 },
    { "Ljava/lang/reflect/AccessibleObject;",dvm_java_lang_reflect_AccessibleObject, 0 },
    { "Ljava/lang/reflect/Array;",        dvm_java_lang_reflect_Array, 0 },
    { "Ljava/lang/reflect/Constructor;",dvm_java_lang_reflect_Constructor, 0 },
    { "Ljava/lang/reflect/Field;",        dvm_java_lang_reflect_Field, 0 },
    { "Ljava/lang/reflect/Method;",       dvm_java_lang_reflect_Method, 0 },
    { "Ljava/lang/reflect/Proxy;",        dvm_java_lang_reflect_Proxy, 0 },
    { "Ljava/security/AccessController;",dvm_java_security_AccessController, 0 },
    { "Ljava/util/concurrent/atomic/AtomicLong;",dvm_java_util_concurrent_atomic_AtomicLong, 0 },
    { "Ldalvik/system/VMDebug;",          dvm_dalvik_system_VMDebug, 0 },
    { "Ldalvik/system/DexFile;",          dvm_dalvik_system_DexFile, 0 },
    { "Ldalvik/system/VMRuntime;",        dvm_dalvik_system_VMRuntime, 0 },
    { "Ldalvik/system/Zygote;",           dvm_dalvik_system_Zygote, 0 },
    { "Ldalvik/system/VMStack;",          dvm_dalvik_system_VMStack, 0 },
    { "Lorg/apache/harmony/dalvik/ddmc/DdmServer;",dvm_org_apache_harmony_dalvik_ddmc_DdmServer, 0 },
    { "Lorg/apache/harmony/dalvik/ddmc/DdmVmInternal;", dvm_org_apache_harmony_dalvik_ddmc_DdmVmInternal, 0 },
    { "Lorg/apache/harmony/dalvik/NativeTestTarget;",dvm_org_apache_harmony_dalvik_NativeTestTarget, 0 },
    { "Lsun/misc/Unsafe;",                dvm_sun_misc_Unsafe, 0 },
    { "Ldalvik/CAR/CARCallbackFunc;",     dvm_dalvik_CAR_CARCallbackFunc, 0 },
    { NULL, NULL, 0 },
};

具体的本地类(java.lang.Class)的本地函数集

const DalvikNativeMethod dvm_java_lang_Class[] = {
    { "classForName",       "(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;",
        Dalvik_java_lang_Class_classForName },
    { "getClassLoader",     "(Ljava/lang/Class;)Ljava/lang/ClassLoader;",
        Dalvik_java_lang_Class_getClassLoader },
    ......,
};

dalvik Java类库中本地类相关推荐

  1. java栈顶元素_栈在Java类库中的实现

    栈是一种后进先出的数据结构.在它之上,主要有三种操作: (1)判断栈是否为空--empty(): (2)在栈顶添加一个元素--push(E): (3)删除并返回栈顶元素--pop(). 在Java类库 ...

  2. 多线程编程进阶——Java类库中的锁

    在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,在JDK1.5以后,Java类库中新增了Lock接口用来实现类似的锁功能.下面会逐一介绍关于Java类库中所提供的锁功 ...

  3. java 栈的输出顺序,栈在Java类库中的顺序表示及实现——Stack

    栈是一种后进先出的数据结构.在它之上,主要有三种操作: (1)判断栈是否为空--empty(): (2)在栈顶添加一个元素--push(E): (3)删除并返回栈顶元素--pop(). 在Java类库 ...

  4. Java黑皮书课后题第9章:*9.5(使用GregorianCalendar类)Java API中有一个位于包java.util中的类GregorianCalendar

    Java黑皮书课后题第9章:*9.5(使用GregorianCalendar类)Java API中有一个位于包java.util中的类GregorianCalendar 题目 代码 题目 代码 imp ...

  5. Java快速入门学习笔记7 | Java语言中的类与对象

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  6. Java NIO中Charset类源码

    Java NIO中Charset类源码 public abstract class Charsetimplements Comparable<Charset> {private stati ...

  7. Java程序中AB类可调用_19年【石油大学】《Java语言程序设计》二次在线作业(100分)...

    试卷总分:100    得分:100 第1题,1.(2.5分)对象使用时,下面描述错误的是 A.通过"."运算符调用成员变量和方法 B.通过成员变量的访问权限设定限制自身对这些变量 ...

  8. scala java 区别_Scala(和Java)中的类和类型之间有什么区别?

    当您说"类型"时,我将假设您主要是指静态类型. 但是我将在短期内讨论动态类型. 静态类型是可以被静态证明的程序一部分的属性(静态表示"不运行它"). 在静态类型 ...

  9. java 方法中定义类_在Java方法中使用类定义

    小编典典 这称为本地课程. 2很简单:是的,将生成一个类文件. 1和3是同一个问题.你可以使用本地类,而无需使用一种方法来实例化一个本地类,也无需在任何地方知道实现细节. 典型的用途是创建某些接口的一 ...

最新文章

  1. 洛谷——P1183 多边形的面积
  2. 关于Linux平台视频采集程序的修改
  3. 数据库主从延迟导致查询不准确的解决思路
  4. 【转载】C++操作符的优先级
  5. IIS6/IIS7无法打开IIS管理器的解决方法。
  6. 计算机组装与维修教学工作总结,计算机组装与维护教师工作总结
  7. 使用 Sublime 比较文档差异
  8. 大一学生HTML5期末大作业——基于HTML+CSS中国传统节日-清明节 8页
  9. python交易是什么意思_py交易什么意思
  10. 力扣(83.643)补8.29
  11. 计算机键盘句号,句号怎么打_键盘句号怎么打_句号怎么打在电脑上-Guide信息网...
  12. 【C语言】两个变量值的交换——指针
  13. 【STM32】NVIC 中断优先级管理,抢占优先级,响应优先级,中断寄存器
  14. 微型计算机原理与接口技术考试附录
  15. 有没有这样的后浪,月薪3000
  16. uniapp踩坑系列之二
  17. 赠书 | 十年运维经验总结出的智能运维系统落地方案,不得不赞
  18. 网站建设需要注意哪些(网站建设流程)
  19. LOJ#3054. 「HNOI 2019」鱼
  20. 如何使用windows自带远程桌面连接linux,使用Windows自带远程桌面应用连接CentOS8远程桌面...

热门文章

  1. 谭浩强C语言程序设计 学习辅导练习题
  2. 附加数据库时出错。有关详细信息,请单击“消息”列中的超链接。
  3. python多线程--theading模块
  4. sqlserver常用函数/存储过程/数据库角色
  5. 外企面试官最爱提的10个问题
  6. Spring学习(八)AOP详解
  7. 算法分类整理+模板②:字符串处理
  8. 程序员也要寻找贸易的机会,要参加研讨会
  9. VS2012 生成项目报 Lc.exe已退出,代码为-1 错误
  10. 技术驱动还是产品驱动