- 浏览: 124495 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
kingbinchow:
android:tonghuaguanxin 写道请问,这个属 ...
修改EditText的光标颜色 -
tonghuaguanxin:
请问,这个属性在代码中如何设置?
修改EditText的光标颜色
The JNI is designed to handle situations where you need to combine Java applications with native code. As a two-way interface, the JNI can support two types of native code: native libraries and native applications.
JNI就是让Java代码与native代码(比如C和C++)交互的一种机制。
《The JNI Programmer's Guide and Specification》
--http://java.sun.com/docs/books/jni/html/intro.html#994
首先编辑一个Java文件Prompt.java
其中native用来声明一个方法,而方法的实现则交给C代码。static代码块用来加载接下来即将生成的libPrompt.so
然后编译刚才的Prompt.java,并通过javah生成一个C语言的头文件
这样就生成了一个Prompt.h文件,接下来编辑Prompt.c
编译Prompt.c来生成libPromt.so,虽然有些warning,不过还是能编译通过的
于是,可以运行了
JNI就是让Java代码与native代码(比如C和C++)交互的一种机制。
《The JNI Programmer's Guide and Specification》
--http://java.sun.com/docs/books/jni/html/intro.html#994
首先编辑一个Java文件Prompt.java
public class Prompt { private native String getLine(String prompt); public static void main(String[] args) { Prompt p = new Prompt(); String input = p.getLine("Type a line: "); System.out.println("User typed: " + input); } static { System.loadLibrary("Prompt"); } }
其中native用来声明一个方法,而方法的实现则交给C代码。static代码块用来加载接下来即将生成的libPrompt.so
然后编译刚才的Prompt.java,并通过javah生成一个C语言的头文件
javac Prompt.java javah -jni Prompt
这样就生成了一个Prompt.h文件,接下来编辑Prompt.c
#include <stdio.h> #include <jni.h> #include "Prompt.h" JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *env, jobject obj, jstring prompt) { char buf[128]; const jbyte *str; str = (*env)->GetStringUTFChars(env, prompt, NULL); if (str == NULL) { return NULL; } printf("%s", str); (*env)->ReleaseStringUTFChars(env, prompt, str); scanf("%s", buf); return (*env)->NewStringUTF(env, buf); }
编译Prompt.c来生成libPromt.so,虽然有些warning,不过还是能编译通过的
gcc -shared -fPIC -I /opt/java/include/ -I /opt/java/include/linux/ Prompt.c -o libPrompt.so
于是,可以运行了
java -Djava.library.path=. Prompt
发表评论
-
android studio debug 一直加载so文件
2017-06-24 16:15 568以前在debug时,一直很快就可以成功,但最近电脑卡,加上更新 ... -
心形vector drawable
2016-04-21 10:44 605<vector xmlns:android ... -
Gridview的第一个Item点击没反应,点击其他的item OK
2015-08-07 14:56 1661遇到一个前人挖下的大坑,各种没响应的呀,后来发现以下代码有问题 ... -
仿iOS 的AssistiveTouch 按键 Floating Action Button
2015-04-16 14:50 1303FloatButton fb = new FloatBu ... -
Android 常见错误处理
2015-04-03 16:03 9571.could not find "com.baid ... -
Android GirdView 最后一行显示不完整
2015-03-20 18:19 3486Android GridView 设置wrap_content ... -
import android eclipse project to android studio
2014-11-13 11:09 917Export from Eclipse 1.Update y ... -
关于android应用退出的问题(转)
2014-10-06 15:48 1244看到很多关于应用退出的问题,今天在这里为大家简单总结一下,如果 ... -
Canvas.drawTextOnPath 2D绘图
2014-07-23 17:18 699绘制文字效果,如下图 protected void onD ... -
android SAX parse xml
2014-07-17 16:22 619<?xml version="1.0&qu ... -
自定义menu,用PopupWindow截获KeyEvent
2014-07-17 15:49 1241public boolean onKeyDown(int ke ... -
Android 自动结束本层activity,回退到上一层 的intent 设置
2014-06-27 13:08 1976Intent intent = new Intent(); ... -
Android Custom View , can not use custom tag in xml file
2014-06-27 13:04 607add this line: xmlns:custom=&qu ... -
onMeasure()--典型视图度量时间
2013-02-18 15:42 981@Override protected void onMe ... -
AsynTask
2013-02-07 16:25 709... -
修改EditText的光标颜色
2013-01-29 15:02 4173在使用EditText的XML 文件中加入一个属性: and ... -
PopupWindow 的BadTokenException
2012-11-05 15:10 1315进入Activity就弹出PopupWindow 来,结果编译 ... -
android sqlite3 数据类型
2012-08-20 09:54 7094sqlite3中的数据类型 大多数的数据库引擎(到现在据我 ... -
android 入门xml布局文件--转
2012-07-10 15:58 908LinearLayout和RelativeLayout共有属性 ... -
Syntax error, static imports are only available if source level is 1.5
2012-06-05 10:20 1584Question: 工程之前一直正常运行,今早上 突然报出 S ...
相关推荐
在这个"webrtc-android-jni.rar"压缩包中,我们可以推测其内容可能与Android应用开发中集成WebRTC以及使用JNI进行性能优化有关。下面将详细介绍WebRTC在Android上的实现和JNI的相关知识点。 1. **WebRTC架构**:...
android-aes-jni, 用于 jni& Java的Android AES示例 android-aes-jni git clone https://github.com/panxw/android-aes-jni.git cd android-aes-jni ndk-build
这个“Android--JNI-Device.zip”文件显然是一个关于Android平台上使用JNI与硬件设备驱动进行交互的教程资料。通过分析描述和标签,我们可以深入探讨JNI在Android中的应用以及如何利用它来调用驱动代码。 1. **JNI...
See dlib-android for JNI lib. Refer to dlib-android/jni/jnilib_ex Grap the source $ git clone https://github.com/tzutalin/dlib-android-app.git Features Support HOG detector HOG Face detection ...
在Android平台上,FFmpeg 可以通过JNI(Java Native Interface)来调用,实现对音视频的处理,比如解码、编码、转码、裁剪、合并等操作。 "ffmpeg-android-jni.zip" 是一个包含了FFmpeg编译后针对Android平台的本地...
JNI在Android开发中扮演着重要的角色,特别是在需要高效计算、调用系统底层库或者利用硬件特性时。这份“Android--开发--_jni操作指南”很可能是详细解释了如何在Android应用开发中使用JNI技术的教程。 JNI的核心...
标签"webrtc"表示与WebRTC项目有关,"android"指明了目标平台,"jni"意味着使用了JNI技术,"so"通常指的是Shared Object,是Linux系统下的动态链接库文件,对于Android来说,就是.so文件,其中包含了libwebrtc的原生...
标题“android-custom-jni-namespace.zip”提示我们这个压缩包可能包含了关于Android平台下自定义JNI(Java Native Interface)命名空间的源代码或教程。JNI是Java与本地代码(如C/C++)交互的一种机制,它允许Java...
本知识点主要聚焦于如何在Android NDK(Native Development Kit)环境下,通过JNI(Java Native Interface)来实现AES(Advanced Encryption Standard)加解密。以下是关于这一主题的详细阐述。 **AES加解密简介** ...
Android NDK和JNI是Android应用开发中的重要工具,它们允许开发者使用C++或者其他原生语言编写部分代码,以实现性能优化、利用硬件加速或者集成已有的C/C++库。本示例代码“android-ndk-jni”是针对这一主题的具体...
Android Studio 3.4 配置 Android-JNI 开发基础教程详解 Android Studio 3.4 配置 Android-JNI 开发基础是 Android 应用程序开发中的一项重要技术,能够帮助开发者更好地编写 Android 应用程序。本文将详细介绍如何...
Android JNI,全称为Java Native Interface,是Android系统中用于连接Java层和原生代码(C/C++)的一个关键技术。JNI允许开发者在Android应用中调用本地方法,从而利用C和C++的强大性能和库来解决特定问题,比如优化...
"Sand"是一个专门为Android设计的开源库,它使用JNI(Java Native Interface)技术实现了Sobel算子来执行图像边缘检测。JNI是一种让Java代码调用C/C++原生代码的技术,能够提高图像处理的效率,因为本地代码通常比...
2. **JNI接口**:Java Native Interface (JNI) 是Android平台上Java与原生代码交互的桥梁。NDK提供了头文件和编译工具,使得开发者可以轻松地在Java代码中调用C/C++函数,反之亦然。 3. **交叉编译**:NDK包含了一...
在Android开发中,JNI的使用非常广泛,主要用于实现Java无法高效或直接处理的功能,如利用C/C++进行性能优化、调用系统底层库、与硬件设备通信等。以下是对Android JNI编程的详细指南: 1. **JNI基本概念** - JNI...
在Android中,JNI是Android应用与NDK之间的重要桥梁,使得Java应用程序可以调用C/C++编写的本地库,同时C/C++代码也能调用Java的方法。 2. **NDK的优势**: - **性能优化**:对于计算密集型任务,例如图形处理、...
《深入理解w2m-fdfsclient-jni:FastDFS在Android平台上的应用》 在IT领域,文件存储和管理是至关重要的环节,尤其在大数据时代,高效、安全的文件系统显得尤为重要。FastDFS是一个轻量级的开源分布式文件系统,它...
在Android开发中,JNI(Java Native Interface)是一个关键的组件,它允许Java代码与其他编程语言(如C++)交互。JNI在很多场景下都非常重要,比如优化性能、使用硬件加速功能、接入第三方库或者实现与操作系统更...
### Android开发书籍 - JNI详解_导航版 #### 知识点概述 1. **JNI (Java Native Interface)**:这是Sun Microsystems定义的一个标准接口,允许Java代码与其他语言(主要是C/C++)编写的本地代码进行交互。例如,...
在NDK中,开发者可以编写JNI接口,然后在Android应用的Java层通过这些接口来调用本地代码。 Android-ndk-r23b包含了一系列的编译器、链接器和其他工具,用于将C/C++源代码编译成可以在Android设备上运行的机器码。...