java Android如何在不调用系统的情况下找到本机实现。加载库?
我正在深入研究Android的内核,以了解Binder在内核级别的工作方式,以及它如何用于实现Java的API
目前我正在研究安卓/os/Parcel.java,有很多本机函数声明为如下原型:
public final native int dataSize();
public final native int dataAvail();
...
但是没有System.loadLibrary
,所以我不知道这些原型的实现是在哪里编写的
我的问题与这些不同:
# 1 楼答案
库不必由使用本机库的类加载。在某个地方,在某个库中,需要有一个C函数
Java_android_os_Parcel_dataSize()
。不管它在哪里,它只需要在某个地方。您应该能够使用grep
找到它