91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

景宁| 四平市| 扎囊县| 东宁县| 屯昌县| 弋阳县| 会宁县| 福贡县| 望江县| 江津市| 太原市| 青神县| 平定县| 建阳市| 湟源县| 临城县| 镇江市| 惠东县| 长沙市| 陆良县| 华亭县| 磐石市| 尚志市| 合肥市| 邢台市| 武强县| 竹北市| 玉屏| 榆中县| 尉犁县| 东安县| 卢氏县| 高密市| 建阳市| 轮台县| 望都县| 东乌| 江阴市| 江口县| 义乌市| 巨鹿县|