NDK 开发记录
来源:互联网 发布:苏州 矩阵光电 新三板 编辑:程序博客网 时间:2024/06/06 17:21
NDK 开发记录
写这篇博文也就是记录下用 eclipse NDK开发的点滴,以便积累,后续再总结Studio的。
1.环境搭建:
下载最新版的NDK,NDK官网下载地址
2.配置环境变量:
添加 ANDROID_NDK_HOME; path
测试:
3.配置项目编译项:
项目右键-->properties-->Builders-->New...-->Program-->OK-->如图配置
4.新建 Android 项目:
5.在项目根目录下新建 jni 文件夹(固定格式),用来存放jni相关文件
6.新建 java 文件,声明 native 方法,用来生成头文件
7.此时eclipse已经将HelloJni.java 编译成了 HelloJni.class,打开CMD,cd 到 工程目录下的bin/classes,输入 javah com.jni.HelloJni 生成 com_jni_HelloJni.h 头文件
8.将 com_jni_HelloJni.h 拷贝到 项目下的 jni 目录下,新建 com_jni_HelloJni.c 文件(此时这个文件名可以自由命名,但为了可读性,不要更改),实现头文件中声明的函数:
9.在jni目录下新建 Android.mk 和 Application.mk 文件:
10.此时保存一下,控制台就会生成相关so信息(这和CMD运行 ndk-build 一样):
11.到此,so文件生成完毕,看下工程结构目录:
12.之后就是正常调用了。这里提一下动态加载so库,一般我们在修改native层代码后重新生成so,那么之前集成了该so的项目就得重新替换so,再打包发版,很是麻烦。那么我们可不可以在so更新之后,APP自动替换so,并加载呢?答案是肯定的,在加载so库的时候有两个方法:
System.loadLibrary(String libName); 该方法为一般加载,so需要放到项目libs下,只需传入so的模块名即可(与在 Android.mk 中定义的 LOCAL_MODULE 一致);
System.load(String pathName); 该方法需要传入so的完整的,可执行的目录。有两个路径:/system/lib/ (该路径的读写需要root权限) 和 /data/data/<packageName>/ (应用的私有目录,无需权限)
那么我们使用第二种方法实现动态加载so,就需要将外部网络下载到sd卡上的so拷贝到私有目录下,即可。具体操作请看我的之前博客:Android 动态加载so
到此,基本的NDK开发就算完成了,后续将继续研究上传。
路漫漫其修远兮,吾将上下而求索!
0 0
- ndk开发问题记录
- NDK开发学习记录
- NDK 开发记录
- ndk开发问题记录(2012/10/12)
- android ndk开发,fatal错误记录
- Android NDK开发环境搭建记录
- 记录一下Android Studio下NDK开发
- Android Studio NDK JNI开发入门记录
- ndk开发问题记录(2012/04/24)
- ndk开发问题记录(2012/04/25)
- NDK 开发环境配置,个人记录小细节
- Android NDK开发环境搭建与软件优化方法记录
- Java Curl 开发记录(三) 使用ndk编译libcurl
- android studio ndk开发中错误记录求救
- NDK开发-初识NDK
- NDK开发
- NDK开发
- NDK开发
- 隐藏UITableView和UIScrollView的滚动条以及修改滚动条的颜色
- 快捷键记录
- Ibatis中xml文件的常用配置
- 如何在多个LunearLayout中添加分割线
- 小记录
- NDK 开发记录
- 手撸ListView弹性下拉刷新和上拉加载更多
- ES6简介
- redis
- JavaSE_按行读取文件
- 奇偶排序
- 免费混合虚拟化OVM数据中心解决方案
- Android自定义控件基础
- hdu ---2031做题笔记(c++)