位置: 编程技术 - 正文

android NDK总结及注意事项(android ndk+jni初步)(android ndk cmake)

编辑:rootadmin

推荐整理分享android NDK总结及注意事项(android ndk+jni初步)(android ndk cmake),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android ndk视频教程,android ndk mediacodec,android ndk jni,android ndk sdk,android ndk开发教程,android ndk开发教程,android ndk jni,android ndk的理解,内容如对您有帮助,希望把文章链接给更多的朋友!

最近几天看了有关android NDK方面的开发博客,相对此对一下总结:实验平台:操作系统:win7开发环境:Eclipse&#;ADT&#;AVD&#;JDK1.6&#;Cygwin&#;android NDK1.6_r1android开发环境的搭建,可以参考[1].android NDK环境搭建可以参考[2].注:1.JDK1.6安装的时候,没有发现问题,用Eclipse很久了,也没有发现什么问题,正常使用。当在命令行cmd.exe中运行java时也正常,运行javac和javah时,出现问题。后来发现,原来是jdk的lib目录下缺少tools.jar工具包。下载后才解决问题。2.Cygwin的安装:有些教程为了省事,在安装Cygwin的时候,让你选择安装所有的包,结果G的硬盘空间都不够。其实,我们用不到这么多的包,只需要gcc和make相关的个包就行了。(autoconf2.1、automake1.、binutils、gcc-core、gcc- g&#;&#;、gcc4-core、gcc4-g&#;&#;、gdb、pcre、pcre-devel、gawk、make)NDK编写流程:1.编写java代码,在其中声明native函数,也即是我们要用c/c&#;&#;实现的函数。2.用javah将生产的.class文件编译成.h文件,即native函数对应的头文件3.用c&#;&#;编辑器或记事本,编写实现c/c&#;&#;的代码4.使用Cygwin工具,用android NDK工具编译第2,3步中的c/c&#;&#;文件。编译成.so库文件5.复制.so文件到工程目录(lib)6.在java中,载入.so库。即可使用natvie声明的函数。注意事项:配置:我用的NDK是android NDK1.6_r1,不是最新的。不同版本之间有差别!新手还是先用1.6的,等熟练之后用最新的。在Cygwin的home[你的用户名].bash_profile中加入NDK的路径,并导出NDKROOT变量。NDKROOT=/cygdrive/[你的NDK路径]/android-ndk-1.6_r1 export NDKROOT可以用make APP=hello-jni命令,编辑NDK自带的项目。测试一下是否安装正确了。第一步:声明的方式为public native void write();第二步:编译时用javah命令,Eclipse已经在工程目录的bin/classes/[包名]/生成了class文件。我们就要用javah编译声明有native方法的class文件注意,要将工作路径切换到工程目录的bin/classes/。在编译时要加上包名,javah [包名].[类名]。尽量将整个项目拷贝到NDK的apps目录下。第三步:以第二步生产的.h文件,编写c/c&#;&#;文件,在工程目录下新建jni文件夹,将c/c&#;&#;源文件拷贝过去。注意:产生函数的参数!我编辑之后,函数参数竟然为:(JNIEnv *, jobject),只有参数类型没有参数变量!导致第四步出错。还好,参考了一下hello-jni中的例子,改为了(JNIEnv *env, jobject thiz)第四步:编译之前要写2个.mk&#;式的文件。

android NDK总结及注意事项(android ndk+jni初步)(android ndk cmake)

一个是Application.mk。这个文件放在工程(要编译的工程)目录下,内容为:APP_PROJECT_PATH := $(call my-dir)APP_MODULES := MyJNItest第一句是你的项目的路径,$(call my-dir)是获得Application.mk的路径。我们的项目就是和Application在同一个目录下。因此,上述配置就可以。但是也有人发现了,在hello-jni中,他们配置的是APP_PROJECT_PATH := $(call my-dir)/project这是因为,他们的项目在project文件夹里,而他们的Application.mk和project文件夹在同一级里面APP_MODULES指的是Application.mk所在的文件夹。第二个.mk文件时Android.mk文件,将它与源文件放在一起,都在第二步中jni文件夹下,内容如下:LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=MyJNItestLOCAL_SRC_FILES:=com_example_testjni_JNIClass.cinclude $(BUILD_SHARED_LIBRARY)第一句话是写明c/c&#;&#;文件的路径第二句话是清空第三句话是项目的名称第四句话是源文件的名称第五句话是指编辑成共享的库(.so)将Cygwin切换到NDK的目录下;输入命令:make APP=MyJNItestMyJNItest即是Application.mk和Android.mk中的MOBULE的&#;。一般都是指工程名。第五步:如果你是将整个项目都拷贝到了NDK目录下,那么.so库文件已经在libs的armeabi文件夹下。第六步:定义一个static块,载入库文件System.loadLibrary("库名");注意,.so库必须以lib开头,如果生成的库名为libMyJNItest.so那么,载入时只能这样写:System.loadLibrary("MyJNItest");lib和.so都不能带。

如果你不需要使用NDK开发,只是需要使用第三方用NDK开发的库,那么你只需要这样做:把第三方提供的libxxx.so放到你的<project>/libs/armeabi/下, 然后在程序随便什么地方中加入static { System.loadLibray("xxx");}就可以使用该库了。项目源码: NDK环境搭建: NDK入门:

《基于C/S模式的android手机与PC机通信系统的开发》项目 基于C/S模式的android手机与PC机通信系统的开发作者:郑海波单位:南京邮电大学通信与信息工程学院信号与信息处理6班学号:邮箱:zhb@

android从服务器下载文件(php+apache+win7+MySql) 举例:android从apache服务器获取文件(图像),保存到相应的目录中,并从目录中将图像转变为Bitmap/**参数:将要获取的服务器文件名filename*如果成功,返

c++服务器与android客户端进行文件传输功能的实现 c服务器与android通过socket网络编程进行文件传输解决方案项目最新成品:

标签: android ndk cmake

本文链接地址:https://www.jiuchutong.com/biancheng/371317.html 转载请保留说明!

上一篇:android打开前置摄像头和后置摄像头(安卓打开前置摄像头)

下一篇:《基于C/S模式的android手机与PC机通信系统的开发》项目(c/s模式的例子)

  • 红字发票的数电票号码是啥
  • 事业单位存货发生盘亏或盘盈处理
  • 股东费用如何入账
  • 个人出租不动产税率
  • 转登记小规模纳税人转让固定资产
  • 常见的税收优惠
  • 资本回收系数等于什么系数与利率之和
  • 手续费及佣金收入
  • 经营租赁是主营业务收入吗
  • 专票的税金
  • 应付税款法账务处理
  • 行政事业单位培训伙食补助报销规定
  • 金税盘最高限额怎么修改
  • 境外派遣员工境外所得税是什么时候申报?
  • 什么情况下发票不能冲红
  • 税控服务费抵扣的文件
  • 企业如何避免风险
  • 哪些进项税额不允许从销售额中抵扣?
  • 纳税申报方式怎么修改
  • 母公司向分公司收取管理费
  • 个人房源出租
  • 小微企业免税销售额一栏怎么填
  • 试用期可以不交五险一金吗
  • 工会经费返还账务处理,另记账么
  • 财务刻章属于什么行业
  • 盘盈入库和其他入库
  • 没有收到发票的费用怎么入账
  • 怎么获得最新医学类指南
  • 往来款作为投资款的影响
  • 收到外单位委托办事的资金应该计入
  • 办理发票缴销需要提供的资料
  • yolov5网络优化
  • Sandilands省级森林中被白霜覆盖的番红花,加拿大曼尼托巴 (© Jaynes Gallery/Danita Delimont)
  • 政府会计主体资产有哪些
  • 限定性收入跟非限定性收入的区别
  • visual studio code怎么创建vue项目
  • 交通费补贴与报销的区别
  • gpib-usb驱动
  • 中药饮片盘点误差范围
  • 非居民纳税人工资个人所得税税率
  • 水利基金补申报怎么操作
  • 当月已付款, 没收到发票怎么做账
  • SQLite教程(十):内存数据库和临时数据库
  • 准则对()、()和()等作出基本规定
  • 残保金由哪个部门负责稽查
  • 印花税如何记账入账
  • mongodb查询操作
  • 个体户怎么申请电子营业执照
  • 简易计税差额抵扣
  • 企业找审计是为了什么
  • 如何编制试算平衡表图示
  • 补充登记法的操作步骤
  • 企业收到拆迁补偿款
  • 纳税人在工作
  • 公司盈利的钱怎么拿出来
  • 汇算期间取得以下收入
  • 研发支出全部资本化能不能评高企
  • 建筑企业外地预缴
  • 年底未分配利润为负数怎么做分录
  • 视同销售的几种情况
  • windowsxp如何隐藏文件
  • 苹果服务器操作系统
  • win 7系统双独立显卡设置
  • WIN10系统安装EXCEL打开会报警
  • 轻量级java开发工具
  • 如何找回windows删除的文件
  • win7操作系统的主要功能
  • win8取消自动更新
  • cocos jsc
  • cocos2d怎么用
  • javascript字体属性
  • unity3d怎么查看
  • android电话簿
  • javascript面向对象编程指南第三版
  • 北京朝阳地税局电话号码
  • 购进货物计入什么科目
  • 税务安装软件
  • 国家税务总局多少员工
  • 百旺税控人工客服电话
  • 地税局的全称是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设