早就知道Java有个jni可以调用本地化代码,一直没有动力去研究它,现在公司想通过在Android中调用本地化代码来申请较多的内存以突破Android对单个进程的内存限制,这确实是可行的:我的Nexus4内存2G,Android限制每个进程64M内存,而我用NDK写代码申请到了1,276,641,280字节。在学NDK开发的过程中遇到了各种问题,现在我将在解决问题过程中收集到的一些链接贴出来以助后人。


android NDK与Cygwin配置

ndk不大,只有400多M;Cygwin很大,全选有6G,安装后17G,我下了一天才下好的大哭,所以不要全选。

Android NDK开发入门实例

这篇文章给我这种零基础的jni使用者大概地描述了NDK开发的全程,文中例子的例子改编自$(NDK)/samples/hello-jni,另注意:-classpath bin/classes(作者的开发工具可能比较老)

Android JNI知识简介

这篇文章更深入地介绍了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:recipefortarget`clean-cocos_curl_static-armeabi'failed

百度到了解决方案:http://bbs.csdn.net/topics/390415433?page=1

Android NDK编译带STL的 C/C++ 程序

APP_CFLAGS+=-fexceptions,以及LOCAL_SRC_FILES 也可以是树形结构的多源文件

java学习之JNI 学习五 处理数组

这篇文章讲了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: .

不知道什么时候,ndk-build遇到了这个错误,解决方案: http://www.02521.com/cod/29738.html

JNI Tips

android官方的Tips,这篇文章是我看得最放心的文章,解开了不少疑惑。

深入了解android平台的jni(二)

这篇文章对Android.mk解释得相当深入。

更多相关文章

  1. Android 内存浅析【一】【管理、机制、分析】
  2. android 可用内存的阀值
  3. Facebook推出强大Android图片库Fresco 自动释放内存 图片缓存 内
  4. Android 系统内存扫盲点
  5. android 可用内存的阀值--转载
  6. 【Android 内存优化】Bitmap 硬盘缓存 ( Google 官方 Bitmap 示
  7. Android HelloWorld 例子
  8. 【Android Training - Performance】 - 管理应用的内存

随机推荐

  1. Android 将APK文件安装到AVD中并分析其界
  2. android客户端向服务器提交请求的中文乱
  3. 招募Android手机游戏开发团队成员(学员)
  4. 移动开发:fb的-app.xml文件
  5. android中的单位
  6. android 调用图库中选择的图片
  7. Android:theme="@android:style/Theme.Di
  8. 记一次趣头条 Android(安卓)面试经历!
  9. Android一分钟环境搭建,包含Mac、Linux、W
  10. 那两年炼就的Android内功修养