2012-03-16 1 views
6

Il sistema operativo Android ha una classe chiamata BinderProxy all'interno di android.os.Binder.java. Questa classe ha la seguente dichiarazione di funzione:Come trovare il codice sorgente della funzione nativa chiamata java

public native boolean transact(int code, Parcel data, Parcel reply, int flags) throws RemoteException; 

Desidero scoprire che codice viene eseguito quando viene chiamata questa funzione.

Come faccio?

risposta

4

Guarda su here, questo è il codice sorgente di Binder.cpp, che include questa funzione.

0

In questo caso viene chiamato il metodo chiamato onTransact di una classe Stub corrispondente. Basandosi su code passa al corrispondente brunch di esecuzione.

+0

Sono nuovo di java, voglio chiarire che quando si dice classe stub, intendi la classe Binder? – Jake

+0

Cosa vuoi capire dov'è la funzione chiamata o come funziona il raccoglitore? Se provi a cercare dov'è il codice del metodo transact, è qui: frameworks/base/libs/binder/Binder.cpp – Yury