2013-03-18 68 views
1

我正在挖掘Android的内核,以找出Binder在内核级别完成的方式以及如何使用它来实现Java的API。Android如何在不调用System.loadLibrary的情况下找到本地实现?

目前我正在看android/os/Parcel.java,有很多的声明为原型,像这样的原生功能:

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

但没有System.loadLibrary,所以我不知道那些原型的实现都写。

我的问题是从这些不同的:

回答

1

图书馆不必通过使用本机库的类加载。在某些图书馆的某处,需要有一个C函数Java_android_os_Parcel_dataSize()。不管它在哪里,它只是需要在某个地方。你应该可以使用grep找到它。

+0

我不能,没有结果“Java_android_os_Parcel_dataSize()” – 2013-03-18 04:05:58

+1

@crazyfffan甚至没有必要这样做,只是一个函数的某个地方有正确的签名,通过该名称向JNI注册。尝试搜索“Java_android_os_Parcel_dataSize”。 – EJP 2013-03-18 04:16:48

+0

@EJP嗨,谢谢你的回复。 “Java_android_os_Parcel_dataSize”也没有结果... – 2013-03-18 04:24:26

相关问题