Android NDK 的学习之旅-----JNI LOG 打印

1.创建android 工程
android create project -n ndk002 -t 8 -p /Users/zhaoshun/android/android-ndk-r8/samples/ndk002 -a Test002 -k killqq.net.ndk

2.编写应用层项目文件 Test002.java文件:

public class Test002 extends Activity{

private static final String libSoName = "helloLog";
private EditText getStr;
private Button send_btn;
private String getCstr = null;

@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

getStr = (EditText)findViewById(R.id.input);
send_btn = (Button)findViewById(R.id.send);

send_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
getCstr = setParamToJNI(getStr()); // 取得c传过来的字符串
if (getCstr == null) {
//Log.i("info","load error");
}else {
//Log.i("info",getCstr);
}
}
});

}

//定义本地方法 由C实现
public native String setParamToJNI(String msg);

//取得用户发送的字符串
private String getStr(){
String str = getStr.getText().toString();
return str.trim().length()>0?str:"default";
}

//加载库文件
static
{
System.loadLibrary(libSoName);
}
}


3. 在工程目录中创建jni 目录及文件
Android.mk文件内容:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
LOCAL_MODULE := helloLog
LOCAL_SRC_FILES := \
HelloLog.c
include $(BUILD_SHARED_LIBRARY)


[color=red]LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog[/color]
这句话打印log信息

HelloLog.c文件:

#include <string.h>
#include <jni.h>
#include <android/log.h> //加载log头文件
//jstring msg 接受参数 用户发送的字符串
jstring Java_killqq_net_ndk_Test002_setParamToJNI( JNIEnv* env,jobject thiz,jstring msg)
{
if (msg == NULL) {
//该方法为打印的方法
__android_log_print(ANDROID_LOG_INFO, "JNIMsg", "Your params is null");
return (*env)->NewStringUTF(env, "Your params is null");
}
char data[128];
memset(data, 0, sizeof(data));
char *c_msg = NULL;
c_msg = (*env)->GetStringUTFChars(env, msg, 0);
//该方法为打印的方法
__android_log_print(ANDROID_LOG_INFO, "JNIMsg", "Get Param: %s From Java", c_msg);
return (*env)->NewStringUTF(env, "success");
}

/**
__android_log_print(ANDROID_LOG_INFO, "JNIMsg", " Log Content ");
JNIMsg 为 你想输出到的过滤标签
Log Content 为你 想输出的相关信息,用法与C的Printf一样

*/


4.编译运行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值