jni 学习
来源:互联网 发布:加工中心四轴怎么编程 编辑:程序博客网 时间:2024/05/29 15:29
1. 用Eclipse 创建 HellJni 项目 。
2. 编写本地方法 。
package com.demo; public class AESEncrypt {public native void encryp_data(byte[] key, byte[] buff, byte[] out);public native String decryp_data(byte[] key, byte[] buff);static{System.loadLibrary("AES");}}
到src 目录 src root$ javah -classpath . -jni com.demo.AESEncrypt , 之后生产 com_demo_AESEncrypt.h 文件。
4.
注:
1. fatal error: string: No such file or directory compilation terminated.
1.在jni目录下新建Application.mk; 加入 APP_STL := stlport_static 右边的值还可以换成下面几个:
system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持
stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的
stlport_shared - STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。
gnustl_static - 使用 GNU libstdc++ 作为静态库
默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或 -frtti ,如果真的需要可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。
支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS += -fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS += -frtti,这里再次提醒大家,第二条说的使用gnustl静态库,而不是stlport。
强制重新编译 STLPort ,在Application.mk中加入 STLPORT_FORCE_REBUILD := true 可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项
2. 在要使用STL的cpp文件中包含相关的头文件,并且使用using namespace std;
- 学习JNI
- jni学习
- 学习JNI
- jni学习
- JNI学习
- JNI学习
- jni学习
- JNI学习
- jni学习
- JNI学习
- JNI学习
- 学习JNI
- jni学习
- JNI学习
- JNI学习
- JNI学习
- JNI学习
- jni 学习
- unity3d移动平台性能优化专题(3):减少面数
- 关于Linux静态库和动态库的分析
- Coin3D与Qt的安装
- Android 中使用Pull解析XML文件
- Appium和Robotium在文字输入上的区别
- jni 学习
- cocos2dx replaceScene、popScene、pushScene的区别
- 完整java开发中JDBC连接数据库代码和步骤
- OJ输出n以内的所有素数
- apache 服务器配置
- php计算时间差,输出友好时间显示
- 搞笑程序员段子
- Appium中文输入问题的一些探索
- 台湾网友学计算机的经历