`

Android JNI编程

 
阅读更多
创建工程:结构如下


代码如下:
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下,再运行试试,可以了吧。
  • 大小: 11.2 KB
  • 大小: 6 KB
分享到:
评论

相关推荐

    Android jni 编程实例

    Android JNI(Java Native Interface)编程是Android应用开发中的一个重要领域,它允许Java代码与本地C/C++代码交互,从而利用C/C++库的高性能和低级别控制能力。在这个"Android jni 编程实例"中,我们将探讨如何在...

    Android JNI编程实战手册.rar

    Android JNI编程实战手册

    Android JNI编程demo

    综上所述,Android JNI编程涉及到Android应用的本地化扩展,涉及C/C++编程、NDK工具链的使用、Java与C/C++之间的交互,以及内存管理和线程同步等多个方面。正确理解和运用JNI,能够显著提升Android应用的性能和功能...

    androidjni编程,java和c层的互相通信传递数据

    Android JNI(Java Native Interface)编程是Android开发中的一个重要部分,它允许Java代码和其他语言(如C/C++)编写的代码进行交互。JNI在Android平台上扮演着桥梁的角色,使得开发者能够利用C/C++的强大性能和...

    android jni 编程

    ### Android JNI编程详解 #### 一、概述 JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。在Android开发中,JNI常用于调用C/C++编写的本地库代码,以此来实现...

    Android JNI demo

    Android JNI(Java Native Interface)是Android开发中的一个重要概念,它为Java代码提供了与本地C/C++代码交互的能力。JNI在Android应用开发中的作用主要体现在以下几个方面: 1. 性能优化:对于计算密集型任务...

    Android JNI 编程资料

    最好结合JNI官方教程、官方文档来学习如何在Android中使用JNI技术。 解压后,有3个文件,如下: 【eoe特刊】第七期:NDK.pdf android_jni操作指南.pdf Android史上最强NDK入门项目实战.rar

    AndroidJNI编程

    本教程将深入讲解JNI编程的关键概念和技术,主要涵盖了Java调用C,C调用Java以及参数的传递。 1. **Java调用C**: 在Android应用中,Java代码可以通过JNI函数声明来调用C/C++代码。首先,你需要在Java类中声明一个...

    android JNI 编程

    学习《JNI编程指南》将帮助你深入理解如何在Android应用中有效地使用JNI,包括但不限于类型映射、异常处理、线程同步、文件操作、JNI与Java间的对象传递等。通过实践,你可以掌握创建高效、稳定且兼容性强的JNI模块...

    Android Studio JNI编程入门实例

    通过以上步骤,你已经成功实现了Android Studio中的JNI编程入门。然而,这只是基础,实际开发中可能需要处理更复杂的情况,如多线程、内存管理、错误处理等。同时,CMakeLists.txt作为现代的构建系统,提供了更多...

    Android JNI多线程编程回调JAVA函数

    本话题将深入探讨如何在Android中使用JNI进行多线程编程,并实现native方法对Java函数的回调。 1. **JNI基础知识**: - JNI是Java平台的一部分,为Java应用程序提供了与本地代码交互的能力。开发者可以通过JNI在...

    Android中JNI编程的那些事儿

    这篇博文“Android中JNI编程的那些事儿”可能涵盖了JNI的基础知识、使用技巧以及常见问题。 1. JNI基础知识: - JNI接口定义:JNI提供了一系列的函数接口,使得Java和本地代码可以互相调用。 - JNIEnv指针:...

    serial_jni_largestgle_Androidjni_Android串口操作JNI代码_android_

    它涵盖了JNI编程、Android NDK开发、原生代码与Java代码的交互、串口通信协议以及Android权限管理等多个方面的知识。对于需要进行Android硬件扩展或进行嵌入式开发的工程师来说,这是一个非常有价值的参考案例。

    Android--开发--JNI编程指南.rar

    以下是对Android JNI编程的详细指南: 1. **JNI基本概念** - JNI是一种接口,它定义了Java虚拟机(JVM)如何与本地代码(C/C++)交互。 - JNI函数允许Java代码创建本地方法,这些方法可以在C/C++中实现,并被Java...

    android_jni.rar_android_android_jni

    这个"android_jni.rar"压缩包提供了一份关于Android JNI编程的基本文档,对想要深入学习Android底层开发的朋友们来说,是一份非常有价值的参考资料。 1. **JNI简介**: JNI是Java平台的一部分,为Java程序员提供了...

    JNI编程指南与规范.zip

    JNI程序员指南与规范.pdf + 06 JNI编程指南.pdf NDK开发汇总 https://blog.csdn.net/baopengjian/article/details/104615972 THIS book covers the Java™ Native Interface (JNI). It will be useful to you if ...

    android jni 屏幕截图 NativeScreenCapture

    综上所述,“android jni 屏幕截图 NativeScreenCapture”项目涵盖了Android开发中的JNI编程、图像处理、权限管理和性能优化等多个关键知识点,对于深入理解和实践Android底层操作具有很高的学习价值。

    android jni使用curl进行http请求和文件下载

    在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他编程语言(如C++)进行交互。JNI在很多场景下都很有用,比如优化性能、调用系统底层库或者像本例中那样,利用C/C++库来实现特定功能。...

    android jni调用demo

    Android的JNI(Java Native Interface)调用是Android应用开发中的一个重要技术,允许Java代码与本地C/C++代码交互。在Android NDK(Native Development Kit)的帮助下,开发者可以利用C/C++的强大性能处理复杂的...

    android jni实用demo

    这个"android jni实用demo"提供了一个很好的学习平台,帮助开发者深入理解如何在Android应用中使用JNI进行跨语言编程。 JNI允许Android应用在Java代码中调用C/C++函数,反之亦然,这对于性能优化、利用硬件加速、接...

Global site tag (gtag.js) - Google Analytics