位置: 编程技术 - 正文

JNI开发入门(ja开发)

编辑:rootadmin
声明:转载请注明出处: native interface:Java本地接口 2.ndk:native development kit:本地开发工具集 3.jni和ndk的关系:ndk是个工具包,就像是sdk一样,为jni开发提供许多的工具。

二.Android开发中,jdk加sdk这么强大的API支持,为何还需要jni呢。

推荐整理分享JNI开发入门(ja开发),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java开发快速入门,java开发从入门到精通,jni ndk 开发,jni开发教程,java开发入门教程,java开发入门教程,ja开发,jni开发教程,内容如对您有帮助,希望把文章链接给更多的朋友!

1.jni用c/c++语言开发,执行效率比Java高一些。 2.用jni实现的逻辑代码很难被反编译破解,是Android中加密操作的首选。 3.用jni开发的代码可移植性非常好。

三.jni开发流程(用一个小项目讲解)

1.我们选用eclipse进行开发。首先,需要做两件事情:

下载并解压ndk。 密码:5gtw配置环境变量。 打开环境变量“path”,在末尾添加ndk的路径(如果末尾没有分号,需要先添加一个分号,然后再添加ndk的路径) 比如我的路径是:D:android-ndk-windows

2.第二我们要开始写代码了。。(实现的功能:点击button,调用c代码弹出一个Toast)

创建一个工程,打开MainActivity:在MainActivity中定义native方法,并监听点击事件。实现本地c语言方法。 看一看使用了jni之后的工程目录,是不是多了几个文件夹:jni,libs,obj

这些东西可以用命令行实现:

但是往往命令行操作是一件令人头疼的事,这里详细说一下另外一种比较简单的方式: 为了实现这个功能,我们需要先去下载一个eclipse插件:ndk.jar. 但是这个jar包是需要翻墙下载的,这里给提供一个已经下载好的,密码:uw8l,把它直接放到你的这个路径下,然后重启eclipse即可。adt-bundle-windowseclipseplugins

上面的东西整好之后,我们只需要一步,就能做到和命令行一样的效果。对着项目名点击右键-》Android Tools-》add native support; 出现如下对话框。

注意:这里要生成一个.so文件,这个.so文件里就是c语言实现的逻辑,它难以反编译,所以比较安全

随便输入一个名字,比如hello,点击确认。(这个名字就是你的c语言文件的名字,不重要);

好了,到此,就可以开始写c代码了,比如:

JNI开发入门(ja开发)

恩,没错,这就是c代码,看着是不是非常无语,咱们先不管这个,先把功能实现了,回过头来仔细讲一下这个c代码的意思,以及为何要这么写。

3.最后三行代码。。。

上面的内容,主要说明了一下如何创建jni环境,如何写Java代码,如何写c代码。然后剩下的就是调用了,在MainActivity.java中添加下面的代码,来引入c代码库

ok ,完事了,如果大家跟上了节奏的话,应该是已经可以实现调用了,至于结果的截图,发一个静态的吧,

四.遗留问题的解决。

我们还剩下两个问题: 1.上面的c代码还没说明 2.上面的程序只能在arm机器上运行,不能在x的机器上运行;

解决问题一:

先把c代码拷一份:

1.首先,Java语言和C语言本来就是不通的语言,一些数据类型完全不同,比如Java中有String的概念,而c中没有String的概念,所以,需要进行相应的转换。

2.库函数 #include

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用Android Studio遇到JAVA (TM) Platform SE binary stop working的问题 使用AndroidStudio编译项目时总提示:JAVA(TM)PlatformSEbinarystopworking,导致编译出错。如题遇到该问题,费劲脑汁,百思不得其解。百般尝试后找到办法:原

Android布局中layout_gravity与gravity的使用总结 layout_gravity与gravity用途:设置控件LinearLayout布局中的对齐方式。layout_gravity:设置该控件相对于父容器对齐方式。gravity:设置子元素在该容器内的对其

Android中调用天气预报 下面我介绍比较简单的两种方式来完成在Android中调用天气预报。1.Weatherweather=newWeather();StringurlStr=

标签: ja开发

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

上一篇:Android Apk病毒查杀(安卓病毒查杀软件)

下一篇:使用Android Studio遇到JAVA (TM) Platform SE binary stop working的问题(使用灭火器人要站在上风口还是下风口)

  • 我可以通过什么知道明天的天气情况
  • 长期待摊费用对方科目
  • 发票的规格和型号有哪些
  • 开具红字发票的当月就要进项税额转出吗
  • 一般纳税人净利润如何计算
  • 收到对方红字发票如何做账
  • 生产企业购进的用于生产的机器设备
  • 资产减值损失确认后,减值资产的折旧
  • 企业平时计提的税费分录
  • 未认证发票先入账可以吗
  • 培训相关的场地租赁费可以列入职工教育经费税前扣除吗?
  • 购买银行理财产品被骗怎么办
  • 外购的货物用于集体福利是销售吗
  • 税盘忘记清盘了怎么办
  • 收购发票盖章盖谁的
  • 小微企业免征增值税政策2023
  • 应交税费借方余额填列资产负债表
  • 保险公司代收车船税完税证明在哪里打印
  • 消费税税目是否含税
  • 境外投资亏损是否可以抵减境内盈利
  • 工资扣员工的罚款入什么科目
  • 新版edge浏览器兼容性视图怎么设置
  • 会计折算是什么意思
  • 异地工程预缴增值税怎么计算
  • 电脑重装系统怎么激活
  • 只交社保不发工资可以吗
  • 招标场地费怎么收
  • 酒店损益类科目包括哪些
  • 固定资产内部抵消例题
  • hptlbxfx.exe
  • php特性包括
  • 月底资产负债表不平怎么找原因
  • nginx for linux
  • 附有退回条件的销售商
  • 10分钟学会万用表
  • 对公收费明细入账计入什么科目
  • transformer模型包含哪些结构
  • matlab进行图像处理
  • vmstat命令 监视系统资源状态
  • php如何入门
  • fstrim命令
  • 电信收款收据可以入账吗
  • 微信小程序分包中插件样式丢失
  • 以前年度未入账固定资产账务处理
  • 增值税发票怎么领取
  • 劳务报酬的个人所得税
  • 集团内部借款利率如何确定
  • 备用金有发票抵扣吗
  • 公司注销实收资本怎么处理
  • 工程施工人工费,材料费,机械费占多少比例
  • 包装物押金怎么计算
  • 利润总额包括什么项目
  • 黄金入账如何做会计分录
  • 增资扩股对原股东的影响
  • 租房期间损坏应赔偿多少
  • 主营业务收入为负数是什么意思
  • 应收账款坏账的说明
  • 主营业务成本做多了怎么办
  • 财务会计的基本概念
  • 数电怎么增加开票员
  • mysql数据库查看是否区分大小写
  • win8隐藏任务栏怎么恢复
  • pavsrv50.exe - pavsrv50进程管理信息
  • Win7中TrustedInstaller.exe进程占用内存高该怎么解决?
  • linux给文件赋予权限
  • JavaScript数组去重
  • 输出语句的执行过程
  • Node.js中的什么模块是用于处理文件和目录的
  • [置顶]bilinovel
  • javascript函数调用函数
  • 图片旋转鼠标键盘怎么弄
  • python pil库官网
  • listview.items.add
  • js实现省份和市级联动
  • jquery创建map集合
  • 云南省国家税务局APP
  • 个人经营所得税怎么做账务处理
  • 营改增后土地增值税
  • 如何在个税app中设置企业登录密码
  • 乌鲁木齐交通服务电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设