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() {@Overridepublic 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 -llogLOCAL_MODULE    := helloLogLOCAL_SRC_FILES := \HelloLog.cinclude $(BUILD_SHARED_LIBRARY)


LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
这句话打印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.编译运行

更多相关文章

  1. android 根据string 获取资源文件的id
  2. 《Android(安卓)群英传》 阅读笔记 第四章~第六章
  3. Android(安卓)实例子源代码文件下载地址380个合集
  4. Android基本控件常用属性及方法
  5. android--RelativeLayout布局的一些理解
  6. android adb shell 命令大全
  7. android 布局文件中xmlns:android="http://schemas.android.com/
  8. Android(安卓)资源文件中@、@android:type、@*、?、@+含义和区别
  9. Android学习笔记3之基本组件API

随机推荐

  1. 解决“Connection to https://dl-ssl.goo
  2. Android(安卓)Studio基于百度SDK实现基础
  3. Android基础知识总结
  4. 修改android日期格式
  5. Android成长(三)——页面布局
  6. react-native-s-alipay -- React Native
  7. Android事件分发机制全解析
  8. Android 9.0 Launcher Workspace 加载
  9. Android的应用程序框架
  10. 高通平台android9.0设置开机默认横屏显示