天天看點

如何檢視Java中的native源碼?

2021年8月8日更新 谷歌官方開源線上代碼檢視

在java開發中我們經常會看源碼對底層原理進行學習,大多數源碼如下所示能讓我們看到整個函數内部處理的過程:

如何檢視Java中的native源碼?

但是有一些源碼卻是标明了native,在java中是找不到具體實作的

如何檢視Java中的native源碼?

native方法的具體實作是用C語言實作的,因為jdk就是用C語言編寫的。當有一些需要和硬體打交道的方法,java是做不了的,于是它就偷懶聲明一個native方法讓c去寫一個方法去和硬體打交道,c寫好之後java直接調用即可。

如何檢視這些native方法的源碼呢?

1 登入AndroidXRef網站

官網位址

2 選擇SDK版本

如何檢視Java中的native源碼?

3 進入搜尋界面

如何檢視Java中的native源碼?

4 如何檢視native源碼

4.1 如果你的native方法聲明了static,例如下面
private static native String getDlWarning();
           

直接在3中的搜尋頁面Full Search中輸入“getDlWarning”,右邊的In Projects選擇“select all”,接着點選“search”,從搜尋結果中找到字尾名帶有c的檔案(.cpp,.cc等等)即可

如何檢視Java中的native源碼?
4.2 如果你的native方法沒有聲明static,例如下面
public native char charAt(int index);
           

這個時候要注意了,搜尋詞就不是charAt而是“類名_方法名”,我這個類是String類,是以搜尋的時候就是“String_charAt”,其他的步驟和4.1一緻

如何檢視Java中的native源碼?

好了以上就是檢視native源碼的方法,歡迎大家在評論區交流使用心得~