说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Android搭建NDK开发环境

HTML文档下载 WORD文档下载 PDF文档下载
Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编写程序,并在程序封包文件(.apks)中直接嵌入原生库文件。

 

于Android的NDK的概念这里就不解释啦。网上到处都有。这里讲述一下,编程和调试环境的搭建。
 
一,软件下载
    Android SDK :
        http://dl.google.com/android/android-sdk_r08-windows.zip。(2011/02/22可用)
 
    Android NDK :
        只能从百度上找 android-ndk-1.5_r1-windows.zip 官方下载地址不知道。
 
    Cygwin :
        http://cygwin.com/install.html。(2011/02/22可用)
 
二,安装
    Android NDK :
        只要展开就可以啦。
 
    Cygwin :
        要选好 gcc, make vi 等基本开发工具。用下列命令查看版本信息,以确认是否正确安装。
            gcc -v
            make -v
 
三,用 Cygwin + NDK 编译 NDK 带的例子
    1,启动Cygwin控制台。
    2,编辑 Home 目录下 .bash_profile 文件,加入下面两行。

本文作者:yutiansky

于Android的NDK的概念这里就不解释啦。网上到处都有。

  • 什么是Android NDK
  • Android NDK概述

这里讲述一下,编程和调试环境的搭建。

 

一,软件下载

    Android SDK :

        http://dl.google.com/android/android-sdk_r08-windows.zip。(2011/02/22可用)

 

    Android NDK :

        只能从百度上找 android-ndk-1.5_r1-windows.zip 官方下载地址不知道。

 

    Cygwin :

        http://cygwin.com/install.html。(2011/02/22可用)

 

二,安装

    Android NDK :

        只要展开就可以啦。

 

    Cygwin :

        要选好 gcc, make vi 等基本开发工具。用下列命令查看版本信息,以确认是否正确安装。

            gcc -v

            make -v

 

三,用 Cygwin + NDK 编译 NDK 带的例子

    1,启动Cygwin控制台。

    2,编辑 Home 目录下 .bash_profile 文件,加入下面两行。

 

 

NDK=/cygdrive/D/01_Work/01_Android/android-ndk-r5  export NDK 
3,重新启动Cygwin控制台。
4,执行编译命令。
$ cd /cygdrive/d/01_Work/01_Android/android-ndk-r5/samples/hello-jni/TianYu@tianyu-pc /cygdrive/d/01_Work/01_Android/android-ndk-r5/samples/hello-jni$ $NDK/ndk-buildGdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserverGdbsetup       : libs/armeabi/gdb.setupInstall        : libhello-jni.so => libs/armeabi/libhello-jni.soTianYu@tianyu-pc /cygdrive/d/01_Work/01_Android/android-ndk-r5/samples/hello-jni
四,在Eclipse上搭建编译环境。
    有上述基础后,用创建 Eclipse 的外部 Builder 功能,就可以在生成 .so 文件啦。
    1,在 Properties of ProjectName 中加 New_Builder。
    2,配置如下:
        Main>Location : Cygwin的bash.exe
            D:\01_Work\Cygwin\env\bin\bash.exe
        Main>Working Directory : Cygwin的bin目录
            D:\01_Work\Cygwin\env\bin
        Main>Arguments : Cygwin下运行的命令
            --login -c "cd /cygdrive/D/01_Work/02_Kinect/WS/HelloNDK && $NDK/ndk-build"
        Build Options>Specify Resources : Project 的 jni 目录
 
五,实例
在这里用写个NDK的实例。
一,软件环境
    WinXP SP3
    Android SDK 2.2
    Android NDK r5
 
二,调用方的 APP
    非常简单的应用程序,就是简单的调用一下 JNI 的函数。
    HelloNDK.java
package net.dncsoft.android.sample;    import android.app.Activity;  import android.os.Bundle;    public class HelloNDK extends Activity {        /** Called when the activity is first created. */      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);            NDKBoundary ndkBoundary = new NDKBoundary();          int i = ndkBoundary.ndk_add(1, 2);          i++;      }  }  
NDKBoundary.java
package net.dncsoft.android.sample;    public class NDKBoundary {        static {          System.loadLibrary("HelloNDKImpl");      }        public native int ndk_add(int a, int b);  } 
编译生成 .class 文件。直接运行的话肯定出错。呵呵,废话,lib 还没做呢。
 
三,生成接口定义 H 文件
    javah -o d:\HelloNDKImpl.h -classpath d:\WS\HelloNDK\bin net.dncsoft.android.sample.NDKBoundary
 
三,被调用的 LIB
    HelloNDKImpl.cpp
#include <HelloNDKImpl.h>    jint Java_net_dncsoft_android_sample_NDKBoundary_ndk_1add(JNIEnv* env,          jobject thiz, jint x, jint y) {      return x + y;  }
Android.mk
LOCAL_PATH:= $(call my-dir)    include $(CLEAR_VARS)    LOCAL_MODULE    := HelloNDKImpl  LOCAL_CFLAGS    := -Werror  LOCAL_SRC_FILES := HelloNDKImpl.cpp    include $(BUILD_SHARED_LIBRARY)  
用上一讲的方法能编译成 libHelloNDKImpl.so 文件。
 
四,运行看看
    用下面命令启动模拟器,导入 LIB
cd %AndroidRoot%\tools  start emulator -avd avdname -partition-size 512  adb remount  adb -s emulator-5554 push d:\libHelloNDKImpl.so /system/lib 
 第 2 行命令是防止 Out of Memory 错误。
    第 3 行命令是防止 Read-Only 错误。
 
    现在可以运行 APP 啦。
 

 

当64bit遇上8核心:高通发布Snapdragon 615 深圳Maker Faire创客市集:国内外创客组团来参展 腾讯正式发布QQ浏览器微信版 摩托罗拉今年推智能手表,有望提高续航能力 众筹未来必拥抱众智 果合报告:iOS趋势及手游开发六大核心策略 无视OpenStack的前车之鉴,SAP等毅然支持Cloud Foundry 轻松搞定TB级数据,开源GraphLab突破人类图计算“极限值” 英特尔至强E7 v2处理器:2倍性能提升,3倍内存容量,4倍I/O带宽 著名工业设计师Yves B&#233;har:“我们并不需要三星智能手表。” 跨平台的.NET运行环境 Mono 3.2.7发布! Google石博盟:抓住全球化和移动化的机遇 ShareSDK针对Unity发布社交化组件 2014 CocoaChina开发者大会将公布触控奖学金等高校合作计划 中低端智能手机热销,未来市场或主打价格战 Facebook开源flint:一个用D语言编写的C++静态代码分析器 AMD携手BlueStacks,下半年推出零售版双操作系统 历时6年 Github发布基于Web的桌面文本编辑器:Atom Ratchet:构建移动应用原型,新版支持Android 13个最狂帅炫酷的前沿科技研究项目 打动面试官的五大技能 乐视TV和NBA签约三年互联网电视版权 首度披露大屏运营策略 支撑4.5亿活跃用户的WhatsApp架构概览 免费使用Windows?微软推Windows 8.1 with Bing实验项目 C/C++开发者必不可少的15款编译器+IDE Amazon推荐,Facebook追踪,大数据时代的“狗仔队” NewSQL登场,NuoDB告诉你未来数据库什么样 2014 Unity亚洲开发者大会&#183;中国站:技术课程全面解析 与其坐以待毙不如主动出击 软件如何避免惨遭淘汰 一周消息树:程序员想找好工作?那就学好Linux! 移动周报:开发者必须了解的10大跨平台工具 小弟在线等待,一小问题,,大家来帮忙?? 求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)在线 关于多层结构中事务处理的问题. VB6.0升级到VB.NET的问题。 在ASP中使用ActiveX Control ADOTable表名如何在运行时“递进” 这样的待遇能招到人吗? 不好意思,问个技术问题。其他版实在没人气!只好来这问! 不爽,辞职,散分! 在线等待(100)往一个表的字段赋值,怎么不行啊! 急!在线等待! 如何把一个窗体内嵌到另外一个窗体的指定位置? 电源键设置问题 假设有一个变量CString str,调用str.GetBuffer(ncount);上面函数的参数应该为多少,才能取得缓冲中的全部字串值? 如何做局域网中的机子通讯 有关Enumerations的问题 请教英文语法检查的算法. 给些提示或参考资料好吗? 简单的关于对话框关闭的问题 关于新闻联播! 哪位有USB1或2.0的开发文档或相关资料? 关于JAVA的问题!请教高手~! 在delphi中用什么样的函数可以将十六进制数转换成十进制? 在MotoSDK3.1的moto388c上模拟正常,但换成T720出现严重问题。 开发“办公小助手”,我准备用VB开发,各位给点思路! 在2000下telnet到Solaris机器,c++编译的问题 droplist 女人啊女人 无法进入系统了,请大家帮我看看怎么回事。谢谢! 如何通过串口来读写数据? 急!想要得到机器安装的物理内存数量!最好还能得到锁定的内存数量! 如何在编辑框中输入完后,按回车鍵能响应到一个确定按钮 在delphi 程序中 如何控制 sql server 服务器的启动与关闭,也就是把 sql server 的服务停止,也就是屏幕右下角的 sql server 服务器中的 [欢迎讨论]J2EE之EJB与MySQL 金山毒霸升级的注册码。。。。。。。 请PB高手来看看,因对我今后DW设计会有很大的影响,请尽量详细些。 关于分辨率的问题 发神经,送分了 请教:如何做屏幕保护程序? 如何让窗口自己记住一些东西,100分可以吗? 高手,请教局域网计算机被侵入的问题?(急) 一个很奇怪得问题,急需各位大虾得帮助 请教~~要分我给的 如何知道一个数是否在in一个动态数组中(不知数组的Length)? 我运行了一個程序,我所开的窗口在任务栏里就都不显示了,我該怎麼辦啊? 菜鸟问题: 请提供一个能学习 j2ee 开发的实例。 很简单的几行代码,为什么编译通不过? 如何捕捉动态控件的事件 FORTRAN程序转VB程序 关于打印机的问题, 为什么用writeprinter,已经加入打印任务, 但打印机没反应?代码如下 求国内类如http://www.51friend.net/的交友站点源码 在盛有等质量且过量的镁粉和铁粉的烧杯中,分别加入质量和质量分数相同的稀硫酸,这个图正确吗 乃左手持卮中的乃是什么意思 同一种化合物中一种元素氧化另一种元素...有什么例子? 浊度和浓度有什么区别 乃左手持卮.乃的意思 孩子作业不认真该怎么办 大学英语4选择题题号:1 We have kept ___ our friendship by writing to each other,so we are true friends.a、upb、backc、offd、down题号:2 Wealthy as he is,he is not ___ with his money,unwilling to help others in troubles.a、carefulb、gen 乃左手持卮的“持”是什么意思? 古文欣赏 懂文言的朋友帮忙解释一下哦!既然有缘,何需誓言;今日种种,似水流年;昔我往矣,杨柳依依;今我来思,雨雪霏霏;明明如月,何时可掇;但为君故,沉吟至今;言即遂矣,至于暴矣;反是不思, 帮忙把这篇白话文翻译成文言文吧!跪求啊!我叫某某某,是某地的人.因为五行缺水,所以叫某某某.活泼好动,性情豪爽.喜好运动,技艺很高.遍地绿树红花,安逸自在. 喜跃抃舞,弗能自禁在古文的含义请尽快解决 色度 浑浊度 用英语怎么说?急 英语翻译其体源出於《国风》.陆机所拟十四首,文温以丽,意悲而远,惊心动魄,可谓几乎一字千金!其外“去者日以疏”四十五首,虽多哀怨,颇为总杂.旧疑是建安中曹氾王所制.“客从远方来”、 2A(g)=B(g)可逆反应,恒温恒容下,增加B气体,则A的体积分数怎么变 晨光一缕魁七彩,尔否俱汝观今朝. 英语翻译1.外婆家的那水,那房那人那请成为了我一生中的最美好的回忆,紧锁于心,此生珍藏.2.你是否还记得?那年夏天你拿着蒲葵扇,在月下为我讲革命年代的故事. 如何测试麦克风能否说话原来的不行 新买的耳机好像别人也听不见 只有杂音 急 孟子曰:“舜发于畎亩之中,傅说举于版筑之间,胶鬲举于鱼盐之中,管夷吾举于士,孙叔敖举于海,百里奚举于市.故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所 如何控制孩子完成作业的时间(培养孩子独立完成作业的能力) 用万用怎么测麦克风 求关于浮力的知识点及难题,及高二物理(人教版)目录及重点目录(仅目录) 配位化合物和金属有机化合物有什么区别? 怎样测试麦克风是好还是坏的 请会文言文懂文言文的朋友帮我个忙!在工作中,我一直以“高调做事,低调做人”为准则!但是,做事高调不代表我骄傲,做人低调不表示我软弱!只要问心无愧就够了!-------这句话用文言文怎么说! 有机酸根和金属组成的化合物是有机物吗 有关爱情的文章或经典语句,要是向往美好的那一面的...还有批评那些可恶的小人的高素质语句...有没有水准点的啊?好的有分加哦注意!:我是女生诶.. 我家的鸡怎么不下蛋了 金属的羰基化合物属于有机化合物吗 可逆反应与物质体积分数的变化!⒈在盛有足量A的体积可变的密闭容器中通入B,发生反应:A(s)+2B(g) 5C(g)+D(g);△H 显微镜的物镜成什么像?目镜成什么像?望远镜的物镜成什么像望远镜的物镜成什么像?目镜呢?通过哪3种颜色搭配,可以得到其他颜色蓝色是单色光吗将太阳分解成各色的光的现象是色散对吗一 询问化学反应等效平衡时会有的性质.例如:在恒温,定容的条件下,有A+BC+D,四者状态皆为气体.第一次:投放A 1MOL ,B1MOL.第二次:投放A 2MOL ,B2MOL.请问这两次等效平衡的反应,A的转化率是否相同? 超简单英语问题,高价请高手!呃呃呃,虽说简单却要认真哦~30分,加油啦,等一个小时几对问答(一组问答给五分)比如说:1.Which is bigger,the sun or the earth?The sun is bigger than the earth.2.which is the bigge 鸡不下蛋是为什么请养过下蛋母鸡的朋友作答,希望能解决问题.要多少多少.ps.已经检查过了,是母鸡. 化学反应平衡与等效平衡题已知可逆反应2X+2Y=(可逆号)z+2w,有2个连通的容器A、B其容积为开始时均为a,A容积不变,B容积可以变化.在B中放入2molX,7molY,A中放入4molX,14molY.开始时A、B间是用隔板隔 怎么判断可逆反应中各物质的体积分数变化 鸡不下蛋什么原因7个月大的鸡 就是不下蛋什么原因 化学反应限度中的等效平衡 古文本是什么东西呃 唐太宗觅人才 古文 氯化铜能和二氧化碳反应吗 唐太宗止盗阅读答案 唐太宗觅人才的翻译 为什么多用电表测电阻时,要在指针指在表盘中间附近位置读数? 唐太宗论止盗的阅读答案 急! 谁懂文言文 同学说说倍感世间苍凉 闲云野鹤也难逃浑浊之气息 纵有成天然之大气 飘渺风沙不见幽魂 诸不知上古悠悠也为此黯然伤神 凡绚烂璀璨之物大多都有独到之处 或是不为人知 或是 与人体从外界吸入的气体相比较,呼出气体中总是氧的含量减少,而二氧化碳含量增多,其根本原因是?A气体在血液中的运输 B肺泡内的气体交换 C气体在呼吸过程中的扩散作用D组织细胞氧化分解 苏州园林 “补”字的作用给补上几竿竹子或几棵芭蕉》. 讨论函数f(x)=x/(x-3)在区间〔0.3〕上的连续性根开闭区间有关系么? 小孩子写作业时不认真怎么办 创业与守成孰难翻译 补铁的维生素是多少维生素多少是补缺铁性贫血的: 孩子写作业太慢,上课不认真,怎么办才能明显见效 求 创业与守成 文言翻译 要测R1电阻,R是已知道滑动变阻器(没画好) 滑片最大值时,电流表=I1最小时 为I2那为什么R=(I1*R1)/I2-I1 怎么办啊,孩子作业不认真写,也很浮躁. 气体体积分数在平衡状态下,有a,b,c气体分别为mL,nL,qL,体积为v,那a的体积分数是用a/v还是a/(a+b+c)?还有什么是分体积?不对,前面是m,n,qmol,m/v+n/v+q/v=1? 我问什么鸡不会下蛋? 小孩写作业不认真有哪些办法? 练习册习题唐太宗论止盗 上与群臣论止盗.或请重法以禁之,上晒①之日“民之所以为盗者,由赋繁役重,官吏贪求,饥寒切身,故不暇顾廉耻耳.朕当去奢省费,轻徭薄赋,选用廉吏,使民衣食有余,则 联合国人口基金会2013报告:面对青德媒称北京上海等城市被美列入监听 韩莫言出任网络文学大学名誉校长 曾决心北京最牛违建拆除停近1月 同楼居民纷李某某再换律师二审推迟 新律师称重新中国全票连任联合国经社理事会成员德国法兰克福股市DAX指数30日下跌伦敦股市股指30日上涨突尼斯旅游城市发生自杀式爆炸袭击电视购物广告不允许\"叫卖式\"宣传中国成功连任联合国经社理事会成员法国巴黎CAC40股指下跌成品油调价窗口今日开启 机构预测每升国内成品油价今迎调价窗口 “两连跌”美国私营部门新增就业岗位创6个月新低陕西“房姐”案今日二审宣判 一审未提李某某强奸案二审延期 张起淮承认担任杨澜提问朗朗\"工作有何意义\"惹争俄达吉斯坦共和国首府发生爆炸袭击俄罗斯将提高远东石油管道输油能力巴基斯坦奎达发生爆炸4人死亡哥伦比亚世预赛名单:苏宁锋霸入选 J昆明机场海关首次查获大麻类毒品近8公今天傍晚北京有分散性阵雨 局地伴有7杨戌标当选宁波市政协主席七宝外国语小学家长举标语“挽留”老校烟台一批市民违规放烟花被查 有的罚了业者解读《习近平时代》英文图书在美国白银连环杀人案嫌犯落网 14年间杀死中国民间救援队抵达意大利地震灾区展开代表团访问香港 傅园慧贡献呆萌表情包下午京城晴雨快速切换雨幡彩虹纷纷显内蒙古第四届村道自行车比赛开赛2016环英纳湖国际自行车赛开赛 中从浪漫主义到先锋艺术:文学与现实的分短道速滑首次在新疆高原训练 这是世界白银连环杀人案嫌犯落网:首案距今28斯科拉里合同年底到期 业内称其并非恒生孩子到底有多痛?海南46名“孕爸”奥运精英代表团抵达香港 女排受热捧山东警方深化打击治理网络电信诈骗违法组图:福州百名青少年学安全自救 福建
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘