- 浏览: 120014 次
- 性别:
- 来自: 成都
文章分类
创建工程:结构如下
代码如下:
这样在工程的bin目录下就生成了.class文件,这时切换到src目录,用javah生成头文件:
根据头文件创建.c文件
创建 Android.mk文件
将.h .c Android.mk文件放入一个文件夹,复制到Android源码 2.2source/external/XXX,然后编译下这个文件夹就会生成so库啦,将so放到工程的libs/armeabi下,再运行试试,可以了吧。
代码如下:
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下,再运行试试,可以了吧。
发表评论
-
ubuntu16 OpenGrok配置多项目
2019-03-29 14:26 1206以前的博客介绍过OpenGrok配置一个项目,这里介绍下 ... -
android adb shell su设置密码
2019-03-26 14:02 25951.打开su源码在system/extras/su/su. ... -
make日志同时输出到控制台和文件
2019-03-22 10:23 12730 标准输入 stdin = standard in ... -
增加自定义property目录
2019-03-18 10:04 365打开文件system/core/init/property ... -
recovery增加打印到串口和增加复制代码
2019-03-07 09:49 634项目里需要调试recover,网上查了部分资料,增加了 ... -
android adb shell命令启动应用
2019-03-01 13:33 13961.执行adb shell 2.这里以打开设置为例: ... -
android HAL层例子
2019-02-27 11:15 1200上一篇文章已经写了led驱动,这篇文章我们再封装HAL层 ... -
FireFlay开发板点亮LED驱动开发
2019-02-22 11:09 518实现功能,点亮LED,参考了网上部分代码。 1.在目 ... -
RK3288 默认打开adb调试
2019-02-19 14:03 2225在文件:vendor/rockchip/firefly/us ... -
RK3288 修改开机动画和开机图片
2019-02-18 11:25 1829开机动画: 1.创建一个目录frameworks/ba ... -
android系统修改默认语言为中文
2019-02-18 11:19 884修改 build/target/product/full_b ... -
ubuntu OpenGrok的搭建
2019-02-18 11:15 1018下载apache-tomcat-8.5.37和opengro ... -
gradleview错误定位
2019-01-08 14:39 3851、打开cmd,进入项目的gradle所在目录 2、键入gra ... -
安卓系统签名转keystore
2017-11-23 10:53 1230./keytool-importkeypair -k ./de ... -
抓jni日志
2017-11-16 14:29 378建一个sh文件,内容如下,将crash内容复制到crash.t ... -
android使用ffmpeg库
2017-03-15 09:42 6391.建立一个安卓工程,创建jni目录,将上一篇文章中的库和头文 ... -
FFMPEG android 库编译
2017-03-14 13:57 6501.首先下载ffmpeg源码:http://www.ffmpe ... -
Windows搭建OpenGrok
2014-12-08 11:33 16691.下载opengrok-0.11.1.tar.gz 二进制包 ... -
怎么给apk签名
2014-11-08 21:51 674jarsigner -verbose -keystore 证书 ... -
OpenGrok搜索技巧
2014-09-26 15:59 2733+ 表示包含此字符串,- 表示包含此字符串。例如在 Full ...
相关推荐
Android JNI(Java Native Interface)编程是Android应用开发中的一个重要领域,它允许Java代码与本地C/C++代码交互,从而利用C/C++库的高性能和低级别控制能力。在这个"Android jni 编程实例"中,我们将探讨如何在...
Android JNI编程实战手册
综上所述,Android JNI编程涉及到Android应用的本地化扩展,涉及C/C++编程、NDK工具链的使用、Java与C/C++之间的交互,以及内存管理和线程同步等多个方面。正确理解和运用JNI,能够显著提升Android应用的性能和功能...
Android JNI(Java Native Interface)编程是Android开发中的一个重要部分,它允许Java代码和其他语言(如C/C++)编写的代码进行交互。JNI在Android平台上扮演着桥梁的角色,使得开发者能够利用C/C++的强大性能和...
### Android JNI编程详解 #### 一、概述 JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。在Android开发中,JNI常用于调用C/C++编写的本地库代码,以此来实现...
Android JNI(Java Native Interface)是Android开发中的一个重要概念,它为Java代码提供了与本地C/C++代码交互的能力。JNI在Android应用开发中的作用主要体现在以下几个方面: 1. 性能优化:对于计算密集型任务...
最好结合JNI官方教程、官方文档来学习如何在Android中使用JNI技术。 解压后,有3个文件,如下: 【eoe特刊】第七期:NDK.pdf android_jni操作指南.pdf Android史上最强NDK入门项目实战.rar
本教程将深入讲解JNI编程的关键概念和技术,主要涵盖了Java调用C,C调用Java以及参数的传递。 1. **Java调用C**: 在Android应用中,Java代码可以通过JNI函数声明来调用C/C++代码。首先,你需要在Java类中声明一个...
学习《JNI编程指南》将帮助你深入理解如何在Android应用中有效地使用JNI,包括但不限于类型映射、异常处理、线程同步、文件操作、JNI与Java间的对象传递等。通过实践,你可以掌握创建高效、稳定且兼容性强的JNI模块...
通过以上步骤,你已经成功实现了Android Studio中的JNI编程入门。然而,这只是基础,实际开发中可能需要处理更复杂的情况,如多线程、内存管理、错误处理等。同时,CMakeLists.txt作为现代的构建系统,提供了更多...
本话题将深入探讨如何在Android中使用JNI进行多线程编程,并实现native方法对Java函数的回调。 1. **JNI基础知识**: - JNI是Java平台的一部分,为Java应用程序提供了与本地代码交互的能力。开发者可以通过JNI在...
这篇博文“Android中JNI编程的那些事儿”可能涵盖了JNI的基础知识、使用技巧以及常见问题。 1. JNI基础知识: - JNI接口定义:JNI提供了一系列的函数接口,使得Java和本地代码可以互相调用。 - JNIEnv指针:...
它涵盖了JNI编程、Android NDK开发、原生代码与Java代码的交互、串口通信协议以及Android权限管理等多个方面的知识。对于需要进行Android硬件扩展或进行嵌入式开发的工程师来说,这是一个非常有价值的参考案例。
以下是对Android JNI编程的详细指南: 1. **JNI基本概念** - JNI是一种接口,它定义了Java虚拟机(JVM)如何与本地代码(C/C++)交互。 - JNI函数允许Java代码创建本地方法,这些方法可以在C/C++中实现,并被Java...
这个"android_jni.rar"压缩包提供了一份关于Android JNI编程的基本文档,对想要深入学习Android底层开发的朋友们来说,是一份非常有价值的参考资料。 1. **JNI简介**: JNI是Java平台的一部分,为Java程序员提供了...
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编程、图像处理、权限管理和性能优化等多个关键知识点,对于深入理解和实践Android底层操作具有很高的学习价值。
在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他编程语言(如C++)进行交互。JNI在很多场景下都很有用,比如优化性能、调用系统底层库或者像本例中那样,利用C/C++库来实现特定功能。...
Android的JNI(Java Native Interface)调用是Android应用开发中的一个重要技术,允许Java代码与本地C/C++代码交互。在Android NDK(Native Development Kit)的帮助下,开发者可以利用C/C++的强大性能处理复杂的...
这个"android jni实用demo"提供了一个很好的学习平台,帮助开发者深入理解如何在Android应用中使用JNI进行跨语言编程。 JNI允许Android应用在Java代码中调用C/C++函数,反之亦然,这对于性能优化、利用硬件加速、接...