方法一

修改Android.mk文件。
在Android.mk文件中加入如下一行代码:(注意:这行代码一定要在加载include $(BUILD_SHARED_LIBRARY)之前。)

LOCAL_LDLIBS += -llog

例如:
Android.mk文件文件的配置如下:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := hello
LOCAL_SRC_FILES := hello.cLOCAL_LDLIBS += -lloginclude $(BUILD_SHARED_LIBRARY)

2、修改hello.c文件

#include <android/log.h>
#define LOG_TAG "System.out"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)

然后在C方法中利用LOGI或者LOGD方法打印Log,

LOGI(" …hello c…");
LOGD(" …hello c…");

hello.c完整代码如下:

#include <stdio.h>
#include <jni.h>
#include "com_lyz_hdk_helloworld_MainActivity.h"#include <android/log.h>
#define LOG_TAG "System.out"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)JNIEXPORT jstring JNICALL Java_com_lyz_hdk_helloworld_MainActivity_helloFromC(JNIEnv *env , jobject obj){LOGI("czd: ......hello c.....");char *str = "hello from c";jstring jstr = (**env).NewStringUTF(env, str);return jstr;
}

如果方法一操作不能实现的话,则按照下面的方法来:

方法二

1、Android.mk添加如下内容:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_MODULE := wm105_serviceLOCAL_SRC_FILES := $(call all-subdir-c-files)LOCAL_LDLIBS += -lloginclude $(BUILD_EXECUTABLE)

2、添加头文件到你的c文件,然后添加LOG_TAG 宏定义,即你的模块标志

#include "cutils/log.h"
#define LOG_TAG "hxd019d" //logcat打印的时候可以通过这个关键字来筛选ALOGD("hxd019: %s,line(%d)\n", __func__, __LINE__); //你的打印就会输出到logcat去了

方法三

1、Android.mk添加如下内容

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_SHARED_LIBRARIES := liblog libcutils
LOCAL_MODULE_TAGS := optionalLOCAL_MODULE := cec_ctrlLOCAL_SRC_FILES := $(call all-subdir-c-files)include $(BUILD_EXECUTABLE)

2、c文件添加头文件

#include <cutils/properties.h> //属性值设置的接口函数的头文件#include <cutils/log.h>
#include <cutils/config_utils.h>

3、可以定义为下面的格式的形式,一个是程序执行到出错的打印,一个是可以通过用户调试打开或者关闭的打印:

int dbg_on = 0;#define FL_LD(fmt, args...)  { if(dbg_on==1)ALOGD("\n##[%s():%d] " fmt, __FUNCTION__, __LINE__, ## args); }
#define FL_LE(fmt, args...)  { ALOGE("\n##[%s():%d] " fmt, __FUNCTION__, __LINE__, ## args); }FL_LD(" open buz beep 5s, j: %d\n", j); //打印语句的例子char value[PROPERTY_VALUE_MAX] = "";//FL_LE("prop[%s] setprop [ persist.sys.cec.args ]", value);memset(value, 0, PROPERTY_VALUE_MAX);property_get("persist.sys.cec.args", value, "0");if (atoi(value) >= 1)args_on = atoi(value);//FL_LE("prop[%s] setprop [ persist.sys.cec.dbg ]", value);memset(value, 0, PROPERTY_VALUE_MAX);property_get("persist.sys.cec.dbg", value, "0"); // default : 0if (atoi(value) == 1)dbg_on = 1;elsedbg_on = atoi(value);}

设置为1打开logcat打印FL_LD,设置为0关闭打印【persist.开头的属性值,重启还会保留,除非用户设置为别的值】:

setprop persist.sys.cec.dbg 1 //打开(1)或者关闭(0) logcat相关打印值

获取该属性值:

gtt92e:/ # getprop persist.sys.cec.dbg
1

Android开发过程为C文件或者C++文件配置打印Logcat信息相关推荐

  1. Android开发过程中在sh,py,mk文件中添加log信息的方法

    Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...

  2. Android系统中如何得到各种格式的文件正文(office文件,PDF,邮件,html,zip等)

    在Android平台下,办公系统,ERP,CRM等开发过程中,需要对Doc, docx, xls, xlsx, ppt, ppts, pdf, html等各种格式的文件内容进行搜索和查找,实现这些格式 ...

  3. Android Studio中新建和引用assets文件

    从eclipse转过的朋友们应该不太习惯AS中新建assets文件和对文件内容的引用.我也查找了网上很多资料发现很少有这样的解决答案,于是便把自己解决的方法总结在这里. 1.一般新建project后这 ...

  4. android 使用jar里 aidl,Android Studio中用gradle打包带AIDL文件的jar文件

    关键代码task class_jar(type: Jar) { from "build/intermediates/classes/release/" //核心,将.class 文 ...

  5. android读取SDCard任意路径下的文件

    2019独角兽企业重金招聘Python工程师标准>>> 文件不能太大否则会报内存溢出 [java]  view plain copy package yu.bin; import j ...

  6. Android Studio 使用Gradle引入第三方库文件的总结

    2019独角兽企业重金招聘Python工程师标准>>> 使用Android Studio开发Android应用时,避免不了需要借助Gradle引入各式各样的第三方库文件,帮助我们更好 ...

  7. android 颜色资源文件,android中colors.xml颜色设置资源文件的方法

    1. 打开res目录下的values文件夹,双击打开colors.xml文件进行编辑 上代码 #008577 #00574B #D81B60 #ff0000 #0000ff 2. 在res目录下的la ...

  8. 错误: 找不到android.support.v7.app.AppCompatActivity的类文件

    今天拉取了最新的代码,突然Android Studio 编译报错 错误:无法访问AppCompatActivity找不到android.support.v7.app.AppCompatActivity ...

  9. 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片...

    在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...

  10. (转) Android生成签名文件并用其对apk文件进行签名

    最近编程时遇到问题:写了一个android小程序,打包后用apktool反编译再打包都没问题,安装时出现Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误 ...

最新文章

  1. 活动目录管理之五种常见错误操作
  2. P1801 黑匣子_NOI导刊2010提高(06)
  3. HDU 1010 Tempter of the Bone heuristic 修剪
  4. pypypy python_聊聊Python中的pypy
  5. Zookeeper的多节点集群详细启动步骤(3或5节点)
  6. 技术干货 | 基于 Doris 构建的小程序私域流量增长
  7. 深入理解脚本化CSS系列第二篇——查询计算样式
  8. Linux编程(7)_gdb
  9. paip.DISCUZ道具开发指南-attilax总结-
  10. Linux中的jobs、fg与bg命令
  11. 麦子学院与阿里云战略合作 在线教育领军者技术实力被认可
  12. java中ejb项目_创建EJB项目
  13. 浙大 PAT 甲级 1017 Queueing at Bank C++
  14. iOS虚拟定位原理与预防
  15. 关于穿透冰点还原等还原软件的方法
  16. 10步(**10 step**)天才思维模型
  17. C++实现http客户端连接服务端及客户端json数据的解析
  18. keep T 不是 KG等级_keep的用法
  19. 《我不是潘金莲》所揭示的
  20. pycharm连接服务器方法

热门文章

  1. 嵌入式软件设计第九次
  2. 一步一步理解拖拽Drag(四)
  3. 哪些原因可能导致SQL操作操时呢?
  4. 关于Scikit-Learn你(也许)不知道的10件事
  5. 【BERT】BERT的嵌入层是如何实现的?看完你就明白了
  6. 本科化学 研究生力学 毕业从事销售最后却转行算法
  7. 01_决策树案例一:鸢尾花数据分类
  8. PyTorch学习—18.标准化—Batch Normalization、Layer Normalizatoin、Instance Normalizatoin、Group Normalizatoin
  9. numpy—np.tensordot
  10. 一、1.1 Kaggle中kernel技巧