Jimmy Chen

A Programmer

(原创)在JNI(Native)层调用Android的Log系统

  最近在用Android Studio写JNI程序,发现在写Native层C++代码时貌似没有特别好的打印Log的方法,所以就有了这一篇,这一篇主要是通过查找、记录Android层面的Log方法,然后在Native层进行调用,达到打印Log的效果。下面直接将源码贴上,源码也比较简单,供大家参考

ThrowException.h

  这个类是一个辅助类,当找不到对应类、方法或者字段的时候可以直接调用这个这个方法的类来抛出异常。后续如果可以扩充这个类来完善异常抛出

ThrowException.cpp

  异常抛出类的具体实现如下:

NativeLog.h

  NativeLog类的头文件

NativeLog.cpp

How to use

1. 在使用前将上面四个文件包含到自己的源码中

2. 定义一个全局变量Log,定义如下:std::shared_ptr<NativeLog> native_log;

3. 然后再使用前调用类构造函数进行初始化:Log = std::shared_ptr<NativeLog>(new NativeLog(env));

4. 最后通过Log->d()Log->e()等方法进行Log调用即可

下面是一个小的调用示范

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注