2021年8月8日更新 谷歌官方開源線上代碼檢視
在java開發中我們經常會看源碼對底層原理進行學習,大多數源碼如下所示能讓我們看到整個函數内部處理的過程:
但是有一些源碼卻是标明了native,在java中是找不到具體實作的
native方法的具體實作是用C語言實作的,因為jdk就是用C語言編寫的。當有一些需要和硬體打交道的方法,java是做不了的,于是它就偷懶聲明一個native方法讓c去寫一個方法去和硬體打交道,c寫好之後java直接調用即可。
如何檢視這些native方法的源碼呢?
1 登入AndroidXRef網站
官網位址
2 選擇SDK版本
3 進入搜尋界面
4 如何檢視native源碼
4.1 如果你的native方法聲明了static,例如下面
private static native String getDlWarning();
直接在3中的搜尋頁面Full Search中輸入“getDlWarning”,右邊的In Projects選擇“select all”,接着點選“search”,從搜尋結果中找到字尾名帶有c的檔案(.cpp,.cc等等)即可
4.2 如果你的native方法沒有聲明static,例如下面
public native char charAt(int index);
這個時候要注意了,搜尋詞就不是charAt而是“類名_方法名”,我這個類是String類,是以搜尋的時候就是“String_charAt”,其他的步驟和4.1一緻
好了以上就是檢視native源碼的方法,歡迎大家在評論區交流使用心得~