在开源库中输出log到adb logcat

在开发集成了开源库的Android app时,有时想获得开源库运行的log。但开源库并没有将log输出到adb logcat中,那怎么办呢?只需简单的修改开源库的代码,并重新编译开源库就可以了。

1.生成standalone的toolchain

android-ndk-r8e/build/tools/make-standalone-toolchain.sh \
  --platform=android-8 \
  --toolchain=arm-linux-androideabi-4.7 \
  --install-dir=/tmp/android-8-toolchain \
  --system=linux-x86_64


2.导入环境变量

export CC=/tmp/android-8-toolchain/bin/arm-linux-androideabi-gcc
export CXX=/tmp/android-8-toolchain/bin/arm-linux-androideabi-g++
export AR=/tmp/android-8-toolchain/bin/arm-linux-androideabi-ar
export RANLIB=/tmp/android-8-toolchain/bin/arm-linux-androideabi-ranlib
export PATH=/tmp/android-8-toolchain/bin:$PATH


3.设置LDFLAGS,否则会出现“undefined reference to '__android_log_print'”

export LDFLAGS='-L/tmp/android-8-toolchain/sysroot/usr/lib -llog'


4.在需要的地方输出log的源文件中

(1)  #include <android/log.h>

(2) 调用__android_log_print函数

__android_log_print(ANDROID_LOG_DEBUG, "YourTag", "Write your debug log here");
__android_log_print(ANDROID_LOG_ERROR, "YourTag", "Write your error log here");

5.重新编译开源库,就可以在adb logcat中看到上面加入的log了

你可能感兴趣的:(在开源库中输出log到adb logcat)