native層的定製,一般是為了滿足framework層程式碼的呼叫需求,Native層分為兩部分,JNI和native。JNI層是native層C/C++與framework層java互動的橋樑。
- 在列印日誌TAG="hpp"的時候,在JNI層和native層分別修改Log的輸出結果。
JNI層修改Log的輸出結果
1、查詢android_util_Log.cpp檔案
2、查詢android_util_Log_println_native方法
3、加入下面程式碼
if (strcmp(tag, "hpp")) {
msg = "JNI changed";
} 複製程式碼
4、進入android_util_Log.cpp目錄
godir android_util_Log.cpp複製程式碼
5、執行mm
6、輸出
Install: out/target/product/generic/system/lib/libandroid_runtime.so複製程式碼
7、將檔案push到手機
adb push $(gettop)/out/target/product/generic/system/lib/libandroid_runtime.so /system/lib/複製程式碼
8、重啟系統
stop;start複製程式碼
native層修改Log的輸出結果
1、查詢logd_write.c檔案
2、查詢__android_log_buf_write方法
3、加入下面程式碼
if (strcmp(tag, "hpp")) {
msg = "Native changed";
} 複製程式碼
4、進入logd_write.c目錄
godir logd_write.c複製程式碼
5、執行mm
https://www.365yg.com/i6436857259367596545/#mid=1565254704995330