android 支持user版本,android 7.0 user版本调试方法

ifeq (true,$(strip $(enable_target_debugging)))

# Target is more debuggable and adbd is on by default

ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1

# Enable Dalvik lock contention logging.

ADDITIONAL_BUILD_PROPERTIES += dalvik.vm.lockprof.threshold=500

# Include the debugging/testing OTA keys in this build.

INCLUDE_TEST_OTA_KEYS := true

else # !enable_target_debugging

# Target is less debuggable and adbd is off by default

ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1//0-->1

endif # !enable_target_debugging

jni中添加Log打印方法:

参考:https://blog.csdn.net/yf210yf/article/details/9305623

1. 导入log头文件

在你使用的 .c/ .cpp 文件中

导入 log.h 头文件

#include

2.在Android.mk 中

加上

LOCAL_LDLIBS :=-llog

注意Android.mk里有一行include $(CLEAR_VARS)

必须把LOCAL_LDLIBS :=-llog放在它后面才有用,

否则相当于没写。

3. 定义LOG 函数

先定义一个全局变量,再定义一些输出的LOG函数:

#define TAG "myDemo-jni" // 这个是自定义的LOG的标识

#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG ,__VA_ARGS__) // 定义LOGD类型

#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG ,__VA_ARGS__) // 定义LOGI类型

#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,TAG ,__VA_ARGS__) // 定义LOGW类型

#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG ,__VA_ARGS__) // 定义LOGE类型

#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,TAG ,__VA_ARGS__) // 定义LOGF类型

上述代码中定义的函数

分别对应于Android 的Java代码中的

Log.d(), Log.i(), Log.w(),Log.e(), Log.f()等方法.

4.举例

#include 

#include 

#include 

#define TAG    "myhello-jni-test" // 这个是自定义的LOG的标识

#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,TAG,__VA_ARGS__) // 定义LOGD类型

extern"C"{

JNIEXPORT jstring JNICALL Java_com_snail_helloworld_MainActivity_myhello(JNIEnv * env, jobject obj);

};

JNIEXPORT jstring JNICALL Java_com_snail_helloworld_MainActivity_myhello(JNIEnv * env, jobject obj)

{

inti = 0;

LOGD("########## i = %d", i);

returnenv->NewStringUTF("Hello From CPP");

}

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hello

LOCAL_SRC_FILES := hello.cpp

LOCAL_LDLIBS :=-llog

include $(BUILD_SHARED_LIBRARY)

8db20145c9d778edf5b06db7c1032471.png

实际使用情况如下:

#define LOG_TAG "SysPropJNI"

#include "cutils/properties.h"

#include "utils/misc.h"

#include

#include "jni.h"

#include "core_jni_helpers.h"

#include

#include

#define TAG    "SysPropJNI" // 这个是自定义的LOG的标识

#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,TAG,__VA_ARGS__) // 定义LOGD类型

namespace android

{

static jstring SystemProperties_getSS(JNIEnv *env, jobject clazz,

jstring keyJ, jstring defJ)

{

int len;

const char* key;

char buf[PROPERTY_VALUE_MAX];

jstring rvJ = NULL;

if (keyJ == NULL) {

jniThrowNullPointerException(env, "key must not be null.");

goto error;

}

key = env->GetStringUTFChars(keyJ, NULL);

LOGD("lucky SystemProperties_getSS");

LOGD("lucky SystemProperties_getSS 22key = [%s]", key);

len = property_get(key, buf, "");

LOGD("lucky SystemProperties_getSS len = [%d],[%s]", len,buf);

if ((len <= 0) && (defJ != NULL)) {

rvJ = defJ;

} else if (len >= 0) {

rvJ = env->NewStringUTF(buf);

} else {

rvJ = env->NewStringUTF("");

}

env->ReleaseStringUTFChars(keyJ, key);

error:

return rvJ;

}

....

结果:

logcat |grep lucky

04-01 20:01:28.240 D/SysPropJNI( 5610): lucky SystemProperties_getSS04-01 20:01:28.240 D/SysPropJNI( 5610): lucky SystemProperties_getSS 22key = [ro.serialno]04-01 20:01:28.240 D/SysPropJNI( 5610): lucky SystemProperties_getSS len = [19],[ABC0M0A1S19000008]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值