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 实例子源代码文件下载地址380个合集
  2. Android基本控件常用属性及方法
  3. android 布局文件中xmlns:android="http://schemas.android.com/
  4. Android——导入已存在的android工程时出现红叉错误“AndroidMan
  5. android中xml文件的使用详解
  6. Android中一个Activity多个intent-filter的调用方法
  7. [摘]android 入门xml布局文件
  8. Android 选择文件并返回路径

随机推荐

  1. ListView中显示圆形图像
  2. android Input系统事件分发流程
  3. Android回部古剑之ViewFlipper之仙人指路
  4. Android开发 ADB配置调试命令图解
  5. Android原理揭秘系列之View、ViewGroup
  6. WebView 使用Android(安卓)原生ToolBar
  7. android应用程序签名详解
  8. NDK开发 环境搭建 与 JNI的编写
  9. Android绘图之Canvas变换(6)
  10. 蓝牙Socket通讯