创建工程:结构如下


代码如下:
package com.tcl.testjni;public class MyJNI {public native void fun();}

package com.tcl.testjni;import android.R.integer;import android.app.Activity;import android.os.Bundle;import android.text.StaticLayout;public class TestJNIActivity extends Activity {static{System.loadLibrary("kang");}    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);       MyJNI jni = new MyJNI();       jni.fun();            }}


这样在工程的bin目录下就生成了.class文件,这时切换到src目录,用javah生成头文件:




根据头文件创建.c文件

/* DO NOT EDIT THIS FILE - it is machine generated */#include "com_tcl_testjni_MyJNI.h"JNIEXPORT void JNICALL Java_com_tcl_testjni_MyJNI_fun  (JNIEnv *, jobject){printf("%s","here is jni");}


创建 Android.mk文件

## Copyright (C) 2008 The Android Open Source Project## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at##      http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.# LOCAL_PATH:= $(call my-dir)    include $(CLEAR_VARS)    LOCAL_SRC_FILES:= \   com_tcl_testjni_MyJNI.c   LOCAL_C_INCLUDES := \    $(JNI_H_INCLUDE)    LOCAL_SHARED_LIBRARIES := libutils    LOCAL_PRELINK_MODULE := false    LOCAL_MODULE := libkang   include $(BUILD_SHARED_LIBRARY)


将.h .c Android.mk文件放入一个文件夹,复制到Android源码 2.2source/external/XXX,然后编译下这个文件夹就会生成so库啦,将so放到工程的libs/armeabi下,再运行试试,可以了吧。

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android(安卓)背光流程小结
  4. [Android(安卓)Pro] proguard.cfg 配置文件
  5. android WebView载入本地html及css文件
  6. 设置android系统时间
  7. Android(安卓)SDK下载和更新失败的解决方法!!!
  8. Android(安卓)将文件保存到SD卡中
  9. 编译NotificationManagerService.java文件的方法

随机推荐

  1. android两种方法操作Sqlite数据库
  2. android内部类
  3. Android(安卓)之 国际化与资源自适应
  4. 常用的android 框架收藏
  5. Android应用程序剖析
  6. Android(安卓)Fragment
  7. android ViewFlipper
  8. android TextView 改变颜色
  9. Android(安卓)关闭/打开多点触控
  10. Android的本地网络组件