亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C/C++中如何使用LOG輸出進行跟蹤

發布時間:2021-11-09 18:11:33 來源:億速云 閱讀:587 作者:柒染 欄目:大數據

今天就跟大家聊聊有關C/C++中如何使用LOG輸出進行跟蹤,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

我們在JAVA的調試中經常會用到Log.i什么的方法進行輸出跟蹤,這一篇我主要來說一下在NDK開發中,C++的代碼中怎么實現日志輸出。

實現方法    

  1. 在c++文件中引用android/log.h頭文件。

  2. 頭文件中__android_log_print方法就是我們的日志輸出方法。

  3. 通過#define的宏定義組裝我們的__android_log_print方法。

  4. 在想輸出日志的地方直接進行輸出即可。

代碼實現  

我們還是用原來的那個Demo程序,按照我們的實現方法來進行


在c++文件中引用android/log.h頭文件

我們打開native-lib.cpp文件,在頂部加入引用android/log.h,如下圖

C/C++中如何使用LOG輸出進行跟蹤


通過#define的宏定義組裝我們的__android_log_print方法

C/C++中如何使用LOG輸出進行跟蹤

代碼為:

#define LOG_TAG "System.out"#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)

在想輸出日志的地方直接進行輸出即可

我們直接在上一章的兩個數相乘的方法中進行日志輸出看看結果,改造一下

extern "C"JNIEXPORT jint JNICALLJava_dem_vac_vaccaendk_MainActivity_plusFromJNI(JNIEnv *env, jobject instance, jint a, jint b) {
   //首先獲取class,這里傳入的參數jobject是代表了Mainactivity,所以我們要自己查找    jclass jcls=env->FindClass("dem/vac/vaccaendk/VaccaeJNI");    if (jcls == NULL) {        return 0;    }
   //獲取方法    jmethodID jmethod = env->GetMethodID(jcls, "Plus", "(II)I");    if(jmethod==NULL) {        return 0;    }
   //輸出傳入的a和b參數    LOGI("a=%d",a);    LOGI("b=%d",b);
   //調用訪法    //第一個參數為jobject的這是傳入的是jobject是Mainactivity,    //如果在CallIntMethod里面直接用傳入的肯定會出錯,因為我們的    //方法是在VaccaeJNI的類里面,所以我們首先要實例化那個類,再調用    jobject jobj = env->AllocObject(jcls);    jint retint = env->CallIntMethod(jobj, jmethod, a, b);
   //輸出調用相乘方法得到的結果    LOGI("result=%d",retint);
   return retint;}

C/C++中如何使用LOG輸出進行跟蹤


接下來我們看一下運行后的結果

C/C++中如何使用LOG輸出進行跟蹤

從上圖中我們可以看到,在Logcat的日志中已經輸出我們每一步的輸出,這樣在調試C/C++的代碼中可以通過輸出方式找到哪一步出的問題,方便我們開發,提高效率。

看完上述內容,你們對C/C++中如何使用LOG輸出進行跟蹤有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

雷州市| 正镶白旗| 上蔡县| 旅游| 防城港市| 芜湖市| 乐亭县| 仲巴县| 永顺县| 肇州县| 芒康县| 曲阳县| 聂荣县| 如东县| 同德县| 凤阳县| 马关县| 红桥区| 会东县| 乌拉特后旗| 临高县| 山阳县| 德安县| 郓城县| 泰兴市| 陕西省| 寻甸| 台中县| 麟游县| 大姚县| 冕宁县| 通江县| 金乡县| 烟台市| 五寨县| 得荣县| 建阳市| 商都县| 纳雍县| 历史| 仪征市|