Android JNI(NDK)开发总结
早就知道Java有个jni可以调用本地化代码,一直没有动力去研究它,现在公司想通过在Android中调用本地化代码来申请较多的内存以突破Android对单个进程的内存限制,这确实是可行的:我的Nexus4内存2G,Android限制每个进程64M内存,而我用NDK写代码申请到了1,276,641,280字节。在学NDK开发的过程中遇到了各种问题,现在我将在解决问题过程中收集到的一些链接贴出来以助后人。
ndk不大,只有400多M;Cygwin很大,全选有6G,安装后17G,我下了一天才下好的
,所以不要全选。
这篇文章给我这种零基础的jni使用者大概地描述了NDK开发的全程,文中例子的例子改编自$(NDK)/samples/hello-jni,另注意: -classpath bin/classes(作者的开发工具可能比较老)
这篇文章更深入地介绍了jni
Android平台Native开发与JNI机制详解
这篇文章有调用java成员方法的例子,取成员变量的值也类似
JNI怎么使用stl
可以用stl的话,map/list/vector都有了,方便啊。
在上面这篇文章中我学到了ndk-build clean,可是clean的时候报错了:
/cygdrive/d/android-ndk-r8e/build/core/build-binary.mk:52: recipe for target `clean-cocos_curl_static-armeabi' failed
百度到了解决方案:http://bbs.csdn.net/topics/390415433?page=1
APP_CFLAGS += -fexceptions,以及LOCAL_SRC_FILES 也可以是树形结构的多源文件
这篇文章讲了native中怎么操作java中的数组,jni真的是无所不能啊!
基于 Android NDK 的学习之旅-----资源释放
C/C++中没有gc,我们还要注意内存资源的释放,不过这篇文章有一处错误:jmethodID、jfieldID是不用释放的,它们是结构体指针,而非_jobject子类指针,不能通过DeleteLocalRef来释放,我们一般是用全局变量保存它们(它们在相应的class存在期间都是有效的),它们应该是dalvik自己负责释放的。
android开发--- jni使用RegisterNatives注册本地方法
RegisterNatives最好不要用,经过试验它没有提高调用native方法的效率,还经常导致无法解释的UnsatisfiedLinkError,但是这篇文章的宏定义值得COPY。
numeric second argument to `wordlist function: .
http://www.02521.com/cod/29738.html
JNI Tips
android官方的Tips,这篇文章是我看得最放心的文章,解开了不少疑惑。
Android JNI(NDK)开发总结的更多相关文章
- android Jni NDK开发环境搭建及其简单实例的编写
android Jni NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...
- Android JNI/NDK开发教程
JNI/NDK开发指南:http://blog.csdn.net/xyang81/article/details/41759643
- Android SDK NDK开发总结
描述:http://talent.baidu.com/external/baidu/index.html#/jobDetail/2/1237247043 android studio实现Jni(C/C ...
- Android之NDK开发(转)
Android之NDK开发 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第 ...
- Android之NDK开发
转自:http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html 一.NDK产生的背景 Android平台从诞生起,就已经支持C ...
- 【转】Android之NDK开发
原文网址:http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html 一.NDK产生的背景 Android平台从诞生起,就已经支 ...
- JNI/NDK开发指南(开山篇)
转载请注明出处:http://blog.csdn.net/xyang81/article/details/41759643 相信很多做过Java或Android开发的朋友经常会接触到JNI方面的技术, ...
- JNI/NDK开发
公司的新需求终于解决完了,离测试和发布还有段时间,第一次体验了下没需求没bug的感觉,真是舒爽~然后翻了翻有什么可以学的.无意翻到了Android后期发展的五大趋势.一.性能优化.二.高级UI.三.J ...
- Android JNI&NDK编程小结及建议
前言 由于网上关于JNI/NDK相关的知识点介绍的比较零散而且不具备参照性,所以写了这篇JNI/NDK笔记,便于作为随时查阅的工具类型的文章,本文主要的介绍了在平时项目中常用的命令.JNI数据类型.签 ...
随机推荐
- [转]JS中的prototype
JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...
- 多线程相互排斥--mutex(二)
不知道大家对多线程或多进程间的同步相互排斥的控制机制了解的怎么样,事实上有非常多种方法能够实现这个目的,可是这些方法事实上由4种最主要的方法实现.这4种最主要的方法详细定义例如以下:在这有讲得不正确的 ...
- HDU-4862-Jump
比今年第二个问题,第一个田间学校更多.在游戏中可以做不做,卡在K一旦有.阅读解决一个问题后,才做.内置图所示k这的确是很聪明倍. 代码: #include<cstdio> #include ...
- SEO要领:8文章主持技巧(两)
续篇:搜索引擎优化要领:8条辅助技巧(一) 四.检查你的robots.txt文件 与谷歌的蜘蛛通信的经常用法是使用robots.txt文件. 这是一个文本文件.同意你告诉搜索引擎,你的站点的网页上抓取 ...
- hdu 新生晚会
Problem Description 开学了,杭电又迎来了好多新生.ACMer想为新生准备一个节目.来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法? ...
- Android启动第三方应用程序
主要是开始通过包名的第三方应用程序,获取的方法的包名是非常在线.不是说. 两种方式启动: 第一: Intent intent = new Intent(); intent.setClassName(& ...
- LogMaster4Net
使用LogMaster4Net实现应用程序日志的集中管理 日志在软件系统中的重要性我在此也不赘述了,几乎所有程序员每天都会更日志打交道. 那么你是否曾今为这样的一些事情而困扰过: - 远程登录到不同的 ...
- 使用SignalR打造消息总线
使用SignalR为FineUI/Webform打造消息总线 第一次写博客,语言组织能力不好,请大家多多包涵! 效果图如下: 图片的右下角即为SignalR消息总线的消息框. 一.建立SignalR服 ...
- linux open
一直记住不打开文件时候的mode,今天发现原来可以直接用0644这样的八进制数字代替,好开森 #include <stdio.h> #include <sys/types.h> ...
- RF1001: 各浏览器对 '@font-face' 规则支持的字体格式不同,IE 支持 EOT 字体,Firefox Safari Opera 支持 TrueType 等字体
http://w3help.org/zh-cn/causes/RF1001 http://blog.csdn.net/agileclipse/article/details/12450949 http ...