正题:
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. Hibernate常用API以及使用说明

    1===>Hibernate常用的aip有Configuration,SessionFactory,Transaction,Session Configuration主要用于加载配置文件,使用 ...

  2. sql leetcode -Duplicate Emails

    第一种解法: select distinct p1.Email as Email from Person p1, Person p2 where p1.Email=p2.Email and p1.Id ...

  3. addEventListener() 和 removeEventListener()

    addEventListener() 方法用于向指定元素添加事件句柄. 提示: 使用 removeEventListener() 方法来移除 addEventListener() 方法添加的事件句柄. ...

  4. PHP7语法知识(四):目录文件操作、Cookie与Session、MySQL数据库的使用、Redis数据库、PHP处理XML与JSON

    目录文件操作 一.目录 1.判断文件类型: 2.创建和删除目录: 3.打开读取和关闭目录 4.获得路径中目录部分 5.目录磁盘空间 二.文件操作 1.打开文件: 2.读取文件: 3.获得文件属性: 4 ...

  5. byte数组和int之间相互转化的方法

    Java中byte数组和int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送者接收的数据都是byte数组,但是int类型是4个byte组成的,如何把一个整形in ...

  6. [Ynoi2016]这是我自己的发明 莫队

    传送门:here 很棒的莫队题啊..... 题意: 有一棵$ n$个点的树,树上每个点有点权,有$ m$次询问: 操作1:给定两个点$ x,y$,求二元组$ (a,b)$的数量,要求$ a$在$ x$ ...

  7. 使用Docker部署javaWeb应用

    1. 安装Dcoker http://www.cnblogs.com/zhangqian27/p/9089815.html 2. 查看镜像 $ docker images 3. 搜索镜像 $ dock ...

  8. Nginx(二) nginx 无法启动

    有时候在客户端输入:nginx 但是终端会输出以下,显示启动失败 nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already i ...

  9. Maven配置 和创建一个Maven项目

    Maven的好处: maven的两大核心: **依赖管理:对jar包管理过程 **项目构建:项目在编码完成后,对项目进行编译.测试.打包.部署等一系列的操作都通过命令来实现 maven项目的生命周期( ...

  10. Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器

    1.下载nginx nginx官网:nginx.org tar.gz文件 解压缩命令: wget https://nginx.org/download/nginx-1.14.2.tar.gz #下载n ...