真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

創(chuàng)新互聯(lián)建站-云計算及IDC服務(wù)提供商,涵蓋公有云、IDC機房租用、服務(wù)器機柜租用、等保安全、私有云建設(shè)等企業(yè)級互聯(lián)網(wǎng)基礎(chǔ)服務(wù),聯(lián)系電話:18980820575

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

實現(xiàn)方法    

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

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

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

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

代碼實現(xiàn)  

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


在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__)

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

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

extern "C"JNIEXPORT jint JNICALLJava_dem_vac_vaccaendk_MainActivity_plusFromJNI(JNIEnv *env, jobject instance, jint a, jint b) {
   //首先獲取class,這里傳入的參數(shù)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參數(shù)    LOGI("a=%d",a);    LOGI("b=%d",b);
   //調(diào)用訪法    //第一個參數(shù)為jobject的這是傳入的是jobject是Mainactivity,    //如果在CallIntMethod里面直接用傳入的肯定會出錯,因為我們的    //方法是在VaccaeJNI的類里面,所以我們首先要實例化那個類,再調(diào)用    jobject jobj = env->AllocObject(jcls);    jint retint = env->CallIntMethod(jobj, jmethod, a, b);
   //輸出調(diào)用相乘方法得到的結(jié)果    LOGI("result=%d",retint);
   return retint;}

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


接下來我們看一下運行后的結(jié)果

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

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

看完上述內(nèi)容,你們對C/C++中如何使用LOG輸出進行跟蹤有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網(wǎng)站題目:C/C++中如何使用LOG輸出進行跟蹤
本文鏈接:http://weahome.cn/article/jsedpg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部