我正在深入研究 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/