当前位置: 首页 > news >正文

Android NDK环境搭建(Windows环境)

from:http://hi.baidu.com/chinmoka/blo ... bebf31f9dc6168.html
Android NDK环境搭建
一、Android NDK 简介 

     Android NDK 是运行于Android 平台上的Native Development Kit 的缩写。它跟NDK( 日本电波工业株式会社) 一点关系都没有O(∩_∩)O~ 。 

Android 应用开发者可以通过NDK 调用C 或C++ 本地代码。 

更多介绍参见:http://developer.android.com/sdk/ndk/1.5_r1/index.html 

不过国内的朋友暂时只有用代理访问。 

给个国内可以下载NDK 的地址:http://dl.google.com/android/ndk/android-ndk-1.5_r1-windows.zip 

二、搭建环境 

    NDK 编译需要用到Cygwin 中的make 和gcc, 所以先来下载并安装Cygwin 。先进入www.cygwin.com ,点击其中的Install or update now 链接。 

这将下载一个名为setup.exe 的安装文件,下载后双击启动安装。 

    Cygwin 的安装有两种方式,一种是本地安装,这里采用另一种在线安装方式。 

1 .启动安装 

2 .下一步 

3 .选择在线安装方式 

4. 选择安装路径 

5. 选择下载文件存放的目录 

6. 选择网络连接方式 

7. 选择下载镜像站点 

8 .开始下载安装 

9 .选择安装项 

10 .启动Cygwin, 测试安装 

输入命令检查 

出现以上版本信息则表明make 和gcc 已经安装成功。 

11. 赶紧用NDK 来编译简单例子 

    A ). 设置环境变量 

先找到安装路径下的.bash_profile 文件,我的环境位于:C:/cygwin/home/Administrator 。用UltraEdit 打开,添加以下两句: 

ANDROID_NDK_ROOT=/cygdrive/e/develop/android/android-NDK/android-ndk-1.5_r1 

export ANDROID_NDK_ROOT 

其中前一句需要修改为你自己的路径,保存后,重新启动Cygwin 。 

注意:这里如果是中文OS 使用记事本或者写字板打开编辑后,重新启动Cygwin 会报错。可以按照下图方式转换: 


B ). 配置NDK 

C). 编译例子 

    先拷贝build/out 下的host 目录以及其下的config.mk 文件到NDK 根目录的out 目录下。然后参照下图编译hello-jni 例子。 

编辑完成可以看到NDK 根目录下的out 目录多出了apps 子目录,其他有编译好的共享文件库。 

         NDK 来势汹汹,着实为 C 或 C++ 编写商业保密程序、高性能代码提供了有效方式,针对个人开发者可能用处不大。同时发布说明文档指出:使用 NDK 可能会带来设备兼容性问题,希望用户慎用。当然 NDK 才刚刚起步,它的未来会怎样?让我们拭目以待!

相关文章:

  • 查看Android进程内存资源信息
  • Android NDK学习笔记
  • android常用控件(三)- ProgressBar、ListView
  • 【Android2D游戏开发之二】剖析游戏开发用view还是sarfaceView
  • android中 自定义两个View进行画图,如何让其各自刷新重绘
  • ActivityGroup实现Tab分页标签
  • 自定义Menu(TabMenu)
  • Android上图像处理-倒影,圆角,渐变
  • Activity的任务堆栈学习笔记(一)
  • activity的任务堆栈学习笔记二
  • Android 简史
  • android textview 中超出屏幕宽度的字符 省略号显示
  • 【原创·视频·教程】大话优酷、酷六类视频网站Android端软件开发
  • Android线程相关
  • 横竖屏切换时候activity的生命周期 android:configChanges
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • AngularJS指令开发(1)——参数详解
  • Codepen 每日精选(2018-3-25)
  • docker-consul
  • egg(89)--egg之redis的发布和订阅
  • emacs初体验
  • fetch 从初识到应用
  • HTTP中GET与POST的区别 99%的错误认识
  • Kibana配置logstash,报表一体化
  • leetcode388. Longest Absolute File Path
  • Mysql数据库的条件查询语句
  • Next.js之基础概念(二)
  • nodejs实现webservice问题总结
  • PHP变量
  • Promise面试题,控制异步流程
  • SpiderData 2019年2月23日 DApp数据排行榜
  • ubuntu 下nginx安装 并支持https协议
  • Webpack 4 学习01(基础配置)
  • 删除表内多余的重复数据
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 网络应用优化——时延与带宽
  • 微信小程序--------语音识别(前端自己也能玩)
  • 一道闭包题引发的思考
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • #QT(串口助手-界面)
  • (23)Linux的软硬连接
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (笔试题)分解质因式
  • (二十四)Flask之flask-session组件
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一一四)第九章编程练习
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .NET CLR基本术语
  • .NET处理HTTP请求
  • [ABC294Ex] K-Coloring
  • [Android]使用Git将项目提交到GitHub
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [C#] 我的log4net使用手册
  • [C++]:for循环for(int num : nums)