java - Android如何在不调用System.loadLibrary的情况下找到native implementations?

标签 java android native-methods

我正在深入研究 Android 的内核,以了解 Binder 在内核级别的实现方式以及它如何用于实现 Java 的 API。

目前我正在查看 android/os/Parcel.java ,有很多声明为原型(prototype)的 native 函数,如下所示:

public final native int dataSize();
public final native int dataAvail();
...

但是没有 System.loadLibrary 所以我不知道这些原型(prototype)的实现写在哪里。

我的问题与这些不同:

最佳答案

库不必由使用 native 库的类加载。在某个地方,在某个库中,需要有一个 C 函数 Java_android_os_Parcel_dataSize()。它在哪里并不重要,它只需要在某个地方。您应该能够使用 grep 找到它。

关于java - Android如何在不调用System.loadLibrary的情况下找到native implementations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469487/

相关文章:

java - 将 CSV 文件合并为一个没有重复标题的文件

java - 以编程方式从 Android 使用首选语言打开 Google Play

java - 日期时间解析错误

javascript - 有没有办法通过javascript找出Chrome的媒体设置环境?

java - NullPointerExcetion native 方法访问器...哈希词问题

javascript - 根据 querySelector 检查元素? (使用 native 方法,而不是 JQuery)

java - 如何在 Flowable 中执行高效的卸载过程

java - 如何在工作空间中永久添加 Selenium Firefox 配置文件

android 9-patch 渐变

java - Mockito - 使用本地方法模拟类