正题:
android开发中,时长会遇到os文件的使用,那么os文件到底是什么?在这篇文章中会进行说明。

.os文件在android中意味着C语言书写的方法,经android提供的ndk进行编译,从而供android方法调用,实现业务需求。

由于android使用的是java语言,无法直接调用C语言函数。同理,C也无法直接使用java语言。但是C可以操作驱动,硬件等。所以android支持C语言操作。但又无法直接调用。便有了我们见到的os文件了。

那么os文件在android开发中可以 说是很重要的。如果只满足与FrameWork层业务的开发,那么os文件对于你来讲真的不重要,但是如果你想要开发NFC,BlueTooth等于终端硬件有关的东西,就必须知道os文件,以及如何开发和使用它们。

android JNI 开发配置
说到正题,那么如何开发并生成os文件,在接下来我将自己的实践内容进行整理。希望能对大家有所帮助。

先介绍两个 名词 JNI,JDK

JNI:Java Native Interface :

java与C语言调用的协议
1
NDK:Native Develop kit

谷歌提供的工具包,来支持JNI
1
工欲善其事,必先利其器。我们现配置自己开发JNI 的开发换将

step1:androidstudio —->setting—->android sdk

下载ndk,勾选图中的2的选择框。我的这个是已经下载好了,只是不是最新版本。这个下载速度就要看你自己网络了。

下载好的ndk,androidstudio会将其解压在你androidstudio的sdk目录下:如图:

如果你使用上述的方法下载ndk比较慢的话,可以在下面的网址中进行下载:

https://dl.google.com/android/repository/android-ndk-r16-windows-x86_64.zip
http://www.androiddevtools.cn
http://developer.android.com/intl/zh-cn/ndk/downloads/index.html
使用这种方式下载的ndk,那么你就需要自己解药ndk,放在你计算机中的磁盘下。不过建议跟你的sdk放在一起

step2:windows环境path下添加ndk本地路径

step3:cmd下测试是否安装成功。运行:ndk-build

step4:restart Androidstudio

step5: 重启后,在工程中local.properties文件下查看

ndk.dir=E\:\\AndroidStudioSDK\\Android\\sdk\\ndk-bundle
sdk.dir=E\:\\AndroidStudioSDK\\Android\\sdk
1
2
如果没有ndk的信息,你需要自己进行配置一下

ndk.dir=E\:\\你计算机中ndk的本地路径(注意要使用转义字符)
1
step6: 在工程中gradle.properties中添加

android.useDeprecatedNdk=true
1
作用为兼容来版本ndk
1
至此,我们的开发环境安装OK,那么后面会继续整理关于Android 中如何在java中调用C文件。

JNI 开发基础篇:Android开发中os文件的探索的更多相关文章

  1. iOS开发——基础篇——iOS开发 Xcode8中遇到的问题及改动

      iOS开发 Xcode8中遇到的问题及改动 新版本发布总会有很多坑,也会有很多改动. 一个一个填吧... 一.遇到的问题 1.权限以及相关设置 iOS10系统下调用系统相册.相机功能,或者苹果健康 ...

  2. Android应用开发基础篇(1)-----Button

    Android应用开发基础篇(1)-----Button   一.概述        Button,顾名思义就是按钮的意思,它主要的功能是响应用户按下按钮时的动作. 二.应用      新建一个工程, ...

  3. 【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!

    [COCOS2DX-LUA 脚本开发之一]在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途! 分类: [Cocos2dx Lua 脚本开发 ] 2012-04-1 ...

  4. iOS开发UI篇—iOS开发中三种简单的动画设置

    iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...

  5. 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》

    一.课程笔记 1.1  软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...

  6. PHP实现微信公众平台开发—基础篇

    PHP实现微信公众平台开发—基础篇 2 1课程介绍 2 2. 微信公众号账号介绍的申请流程详解 2 2.1微信三角色关系 2 2.2信息流的过程 2 2.4微信公众账号的认证 3 2.5订阅号的申请流 ...

  7. Linux 网络协议栈开发基础篇—— 网桥br0

    一.桥接的概念 简单来说,桥接就是把一台机器上的若干个网络接口"连接"起来.其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去.以使得网口之间的报文能够互相转发. 交换机 ...

  8. iOS开发UI篇—在UIImageView中添加按钮以及Tag的参数说明

    ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwi ...

  9. iOS开发UI篇—IOS开发中Xcode的一些使用技巧

    iOS开发UI篇—IOS开发中Xcode的一些使用技巧 一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文 ...

随机推荐

  1. Spring IoC 依赖注入的方法大全 XML配置方式

    Spring 依赖注入 构造方法注入 ①   根据索引注入 <bean name="student" class="cn.bdqn.SpringDI.Student ...

  2. 浅谈style.,currentStyle,getComputedStyle,getAttribute

    xxx为属性. ele为元素. 1.style.是针对于样式 在前面的一篇博客中我也有说到,ele.style.xxx; 通常用于赋值,赋值也是针对于行内样式,用它来取值的话,它只能取到内联样式. 今 ...

  3. pycharm活动模板

    1.复制模板内容 2.文件设置: 点击+号:

  4. luogu P3312 [SDOI2014]数表

    传送门 我们看要求的东西\[\sum_{i=1}^{n}\sum_{j=1}^{m}[\sigma(gcd(i,j))\le a]\sigma(gcd(i,j))\] 然而\(\le a\)比较烦,可 ...

  5. PHP7语法知识(二):流程控制语句、函数、字符串、数组

    流程控制: 一.条件控制语句 1.if条件控制语句: 2.switch分支语句: 二.循环控制语句 1.while循环: 2.do while循环: 3.for循环: 4.foreach循环: 三.跳 ...

  6. 【tmos】创建自定义400、500页面

    解决方案

  7. 在IntelliJ IDEA 中配置Ueditor富文本插件

    这是我自学的配置教程,刚刚学习不太完善请谅解! 我会根据我的学习进程对此进行更贴,欢迎关注哦 ! 第一步:下载插件,地址:http://ueditor.baidu.com/website/downlo ...

  8. 列式数据库~clickhouse日常管理

    clickhouse日常管理一 变量相关  1 查看变量     system.setting相关表  2 设置变量     set variables= 请注意这里是session级别,如果想永久生 ...

  9. 请求神器 postman安装

    1. 先下载postman(http://pan.baidu.com/s/1pLERz5p 密码:aqy2) 2.将你的包存放在文件夹中 列如名称为postman 3.在Chrome的地址栏中输入:c ...

  10. SpringCloud知识点20190313

    1.SpringBoot和SpringCloud的关系(面试题) Spring Boot 可以离开 Spring Cloud 单独使用开发项目,但是Spring Cloud离不开SpringBoot, ...