Android NDK-helloJNI
项目目录结构
CMakeLists.txt
cmake_minimum_required(VERSION 3.4.1)add_library(hello-jni SHAREDhello-jni.c)# Include libraries needed for hello-jni lib target_link_libraries(hello-jniandroidlog)
编译一个shared library,hello-jin.so.
target_link_libraries中链接需要库
hello-jni.c
#include <string.h> #include <jni.h>/* This is a trivial JNI example where we use a native method* to return a new VM String. See the corresponding Java source* file located at:** hello-jni/app/src/main/java/com/example/hellojni/HelloJni.java*/ JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,jobject thiz ) { #if defined(__arm__)#if defined(__ARM_ARCH_7A__)#if defined(__ARM_NEON__)#if defined(__ARM_PCS_VFP)#define ABI "armeabi-v7a/NEON (hard-float)"#else#define ABI "armeabi-v7a/NEON"#endif#else#if defined(__ARM_PCS_VFP)#define ABI "armeabi-v7a (hard-float)"#else#define ABI "armeabi-v7a"#endif#endif#else#define ABI "armeabi"#endif #elif defined(__i386__) #define ABI "x86" #elif defined(__x86_64__) #define ABI "x86_64" #elif defined(__mips64) /* mips64el-* toolchain defines __mips__ too */ #define ABI "mips64" #elif defined(__mips__) #define ABI "mips" #elif defined(__aarch64__) #define ABI "arm64-v8a" #else #define ABI "unknown" #endifreturn (*env)->NewStringUTF(env, "Hello from JNI ! Compiled with ABI " ABI ".");//把C的字符串,转换为Java的字符串 }
hello-jni.java
TextView tv = (TextView)findViewById(R.id.hello_textview);tv.setText( stringFromJNI() ); } /* A native method that is implemented by the* 'hello-jni' native library, which is packaged* with this application.*/ public native String stringFromJNI();/* This is another native method declaration that is *not** implemented by 'hello-jni'. This is simply to show that* you can declare as many native methods in your Java code* as you want, their implementation is searched in the* currently loaded native libraries only the first time* you call them.** Trying to call this function will result in a* java.lang.UnsatisfiedLinkError exception !*/ public native String unimplementedStringFromJNI();/* this is used to load the 'hello-jni' library on application* startup. The library has already been unpacked into* /data/data/com.example.hellojni/lib/libhello-jni.so at* installation time by the package manager.*/ static {System.loadLibrary("hello-jni"); }
1)定义native的方法
2)loadLibray
Android NDK-helloJNI相关推荐
- windows系统上安装与使用Android NDK
转自http://www.cnblogs.com/luxiaofeng54/archive/2011/02/12/1952391.html 很早就听说了android的NDK应用,只是一直没有时间去研 ...
- Android NDK开发篇(一):新版NDK环境搭建(免Cygwin,超级快)
以前做Android的项目要用到NDK就必须要 下载NDK,下载安装Cygwin(模拟Linux环境用的),下载CDT(Eclipse C/C++开发插件),还要配置编译器,环境变量... 麻烦到不想 ...
- android ndk r8d,(Android) NDK
從 Android NDK | Android Developers 下载 Android NDK (我在 Ubuntu 所以下载 android-ndk-r5c-linux-x86.tar.bz2) ...
- linux android ndk r9b JNI 开发过程(COCOS2D-X配置)
我是小白 折腾了两天了. 终于成功第一次运行- 网上一堆教程乱死了然后其实现在android官方已经认定NDK为必要开发环境所以现在的配置其实很简单 另外Cocos2d-x的编译真是奇怪死了对一个只把 ...
- android ndk 界面开发教程,Android NDK开发之入门教程
JNI(Java Native Interface, Java本地化方法)使得Java能与其它语言(如C.C++)的动态库进行交互. 在Android 项目中,经常看到地图,统计,推送之类的第三方平台 ...
- Android NDK开发method GetStringUTFChars’could not be resolved
Android NDK开发method GetStringUTFChars'could not be resolved 图1 最近用到android的ndk,但在eclipse中提示method Ge ...
- Android NDK 编译选项设置[zhuan]
http://crash.163.com/#news/!newsId=24 在Android NDK开发中,有两个重要的文件:Android.mk和Application.mk,各尽其责,指导编译器如 ...
- 今天终于将第一个 Android NDK 程序编译、运行成功
今天终于将第一个 NDK 程序编译.运行成功. 起先看资料和书籍时,都要求安装 CygWin.我也安装了,并将 Sample: hello-jni 编译成功.编译的 LOG 如下: LeoZheng ...
- Android NDK编译中在libs\armeabi中加入第三方so库文件的方法
Android NDK编译中在libs\armeabi中加入第三方so库文件的方法 假设要加入库文件的名字为libffmpeg.so文件 1.要在project\jni目录下新建一目录prebuilt ...
- android NDK 知识汇总
原汇总: [eoeAndroid社区索引]android开发环境NDK教程问题汇总帖 http://www.eoeandroid.com/thread-165553-1-1.html 环境: Wind ...
最新文章
- Python 到底该怎么学才好?你关心的答案来了
- CCNA200-120章节关系
- 5G手机太贵?三星欲推Galaxy R系列新机 或成售价最低的5G机型
- 面试准备每日五题:C++(四)——typedefdefine、指针常量、队列栈、地址赋值、C和C++结构体
- django(一)——在PyCharm下搭建开发环境
- 一文剖析电影“流浪地球”推广营销方式
- java多线程5大框架_实现 Java 多线程并发控制框架
- R语言——双因素方差分析
- UWB定位系统油库人员定位解决方案
- Python 之心有猛虎,细嗅蔷薇
- 缺陷检测End-to-end training of a two-stage neural networkfor defect detection(端到端的两步神经网络的缺陷检测)
- 股票涨跌的心理学原理: 前景理论
- C++: 猴子选大王
- vue 下载文件流和捕获后端返回的状态码和错误信息的方法
- Python实现淘宝爬取——奶粉销售信息爬取及其数据可视化
- 网站建设(4)——服务器的选择和购买
- 一、手把手教你 Vue2+Ts
- 条码扫描仪超商零售PDA手持打印机
- 天翼云盘php插件,天翼云盘直接下载
- 【RDMA】infiniband网卡安装|InfiniBand 连接和状态诊断工具|测试RDMA网卡是否正常工作...
热门文章
- [当人工智能遇上安全] 1.人工智能真的安全吗?浙大团队外滩大会分享AI对抗样本技术
- [LeetCode] Remove Duplicates from Sorted List - 链表问题
- 【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解
- hive -e ,hive -f 用法
- 1134:合法C标识符查
- 2018年第九届省赛C/C++A组第2题——星期一
- 笔记本控制机器人方法
- 【ARM】Tiny4412裸板编程之静态库(libc.a)
- 【嵌入式】C语言高级编程-变参函数(08)
- 图片和input不对齐_pdf到png再到mp4短视频:不需要工具,2个指令1键搞定