1、对于很多Android开发人员来说,Android的标准日志打印已经使用的非常习惯,如果在调试C/C++时使用的是printf或者cout这种方式打印日志,那查找起来会非常不舒服,为了使自己舒服起来,还是有必要使用android标准的日志方式打印日志的。先看一下效果:

2、新建一个deleteFile.cpp文件,导入android标准日志打印的头文件,并且通过宏定义简化日志的打印方式,具体实现如下。

#ifndef _DELETE_FILE#define _DELETE_FILE#include #include #include #define LOG_TAG "JPEG_JNI"#define DEBUG#define ANDROID_PLATFORM#ifdef DEBUG#ifdef ANDROID_PLATFORM#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__))#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__))#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__))#else#define LOGD(fmt, ...) printf(fmt"\n", ##__VA_ARGS__)#define LOGI(fmt, ...) printf(fmt"\n", ##__VA_ARGS__)#define LOGW(fmt, ...) printf(fmt"\n", ##__VA_ARGS__)#define LOGE(fmt, ...) printf(fmt"\n", ##__VA_ARGS__)#endif#else#define LOGD(...);#define LOGI(...);#define LOGW(...);#define LOGE(...);#endifint main(int argc, char **argv){int num = 10;char* name = "hello world";printf("start------------------\n");LOGI("[%s(L:%d)] num = %d\n", __FUNCTION__, __LINE__, num);LOGW("name = %s\n", name);LOGD("end------------------\n");return 0;}#endif

3、编写Android.mk文件,这个文件的编写很简单,关键点是要加入跟日志相关的动态库liblog libutils,如下:

LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= deleteFile.cppLOCAL_MODULE:= deletenaviLOCAL_SHARED_LIBRARIES := liblog libutilsLOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -lloginclude $(BUILD_EXECUTABLE)

 

3、将项目拷贝到Android系统的packages/apps目录下编译,编译完后生产deletenavi镜像文件。

4、将编译出来的deletenavi文件push到设备中的/system/bin目录,并且chmod 755 /system/bin/deletenavi赋755的权限,然后执行就会出现步骤1中的效果。

 

更多相关文章

  1. 让Android(安卓)变身回一台真正的Linux系统吧!!!
  2. Android(安卓)平台基础开发简介
  3. 关于获取Android中文件内容有感
  4. Android的init过程详解(一)
  5. Android虚拟平台的编译和整合
  6. iOS开发-Android(安卓)录制的mp4视频文件在IOS中无法播放问题
  7. Android学习手记:第一个应用程序!
  8. Android/安卓存储优化
  9. PopupWindow的应用 2

随机推荐

  1. 王梓晨 | 京东敏捷团队看板与潜在交付物
  2. 阿里Goldeneye业务监控平台之架构演进,如
  3. 周涛教授弟子王军与他的卧龙大数据
  4. linux vim 复制粘贴代码
  5. 卫向军 | 从正交分解架构设计到矩阵式团
  6. DevOps原则,听伍道长细细道来
  7. Docker、Containerd、RunC...:你应该知道
  8. 企业采购正版软件时选择单机版还是浮动版
  9. Leo|20页PPT剖析唯品会API网关设计与实践
  10. DenyHosts的安装与配置Centos7/6