【转】如何在ndk开发环境下运行helloworld

简介: 本文主要讲述如何在ndk开发环境下运行helloworld。本文使用的开发环境为windows + cygwin,用linux当然是没有问题的。安装开发环境¶本文并不打算介绍如何安装ndk开发环境。

本文主要讲述如何在ndk开发环境下运行helloworld。
本文使用的开发环境为windows + cygwin,用linux当然是没有问题的。

安装开发环境

本文并不打算介绍如何安装ndk开发环境。这方面的资料在google的官方文档上有很好的描述。下面给出
它的链接:
http://developer.android.com/

这里主要讲一下要注意的问题:
1、ndk版本必须是r4或r5
官方给出的ndk-r4不支持STL,而我们的引擎代码需要用到,所以需要找到能支持STL的ndk-r4版本。幸
好已经有人做了这个工作,下载地址为:
http://www.crystax.net/android/ndk.php

ndk-r5则已经内置了STLPort,您可以到android官网去下载ndk-r5来使用

2、下文以eclipse为IDE来介绍
使用别的IDE及配套工具也是一样的,参考这里的文章应该很容易转过去。

3、如果是在windows上开发,cygwin的版本需要1.7或以上
这点在google的开发文档上也有强调,否则无法编译程序。

下载源码

到这里本文假设你已经搭建好ndk开发环境,并且可以运行ndk里自带的demo。如果还不行的话,好好阅读
google的文档吧,或者找人帮助一下,应该很容易的。

接下来,下载cocos2d-x的源码
  1. 稳定版:
  2. 最新代码:

编译

在继续进行之前,先定义几个变量
1、ANDROID_NDK_ROOT
ndk存放的路径,这里的路径是cygwin的路径。以本文为例,ndk存放的windows的路径为E:\android-ndk-r4-crystax,
那么它对应的cygwin路径为/cygdrive/e/android-ndk-r4-crystax。

2、COCOS2DX_ROOT
cocos2dx代码的存放路径,同样也是cygwin的路径。在本文中,cocos2dx存放在windows路径为
D:\Work7\cocos2dx\cocos2dx,那么它的cygwin路径为/cygdrive/d/Work7/cocos2dx/cocos2dx。

3、HELLOWORLD_ROOT
helloworld代码的存放路径,同样也是cygwin的路径。在本文中,helloworld存放在windows路径为
D:\Work7\cocos2dx\HelloWorld-android,那么它的cygwin路径为/cygdrive/d/Work7/cocos2dx/HelloWorld-android。

在编译源码之前,还需要做以下几个工作:
1、把helloworld源码导入到eclipse
这个步骤和上文运行ndk sample的方法是一样的。

2、在HELLOWORLD_ROOT/jni/ 下建立一个到COCOS2DX_ROOT的软链接
ln -s $COCOS2DX_ROOT $HELLOWORLD_ROOT/jni/cocos2dx
名字需要为cocos2dx,因为在HELLOWORLD_ROOT/jni/Android.mk里我们假定了使用这个名字。
当然你可以换一个别的名字,但是要记得修改HELLOWORLD_ROOT/jni/Android.mk。

3、在ANDROID_NDK_ROOT/samples下建立一个到HELLOWORLD_ROOT的软链接
ln -s $HELLOWORLD_ROOT $ANDROID_NDK_ROOT/samples/helloworld-cocos2dx

好了,现在可以把helloworld当做ndk的一个sample来编译了
$ANDROID_NDK_ROOT/ndk-build -C samples/helloworld-cocos2dx

运行

运行helloworld的方式和运行别的sample是一样的。这里简单介绍一下:
1、build project
这会自动生成R.java文件,编译java代码并打包

2、clean project
如果需要把最新的.so打包到apk中,需要进行这一步。如果只是简单地build project是不会把.so文件
打包进apk文件的(第一次除外)。

3、run project
右键点击工程,选择run as,选择Android Application。当然了,如果之前成功运行过,则可以使用
工具栏的 快捷方式运行。在运行前,别忘了启动你的模拟器。

如何在2.1上运行

因为2.1上安装后的apk路径和2.2模拟器不太一样,所以需要做点小改动才能运行在2.1上。具体要做的
工作如下:

1、更改HELLOWORLD_ROOT/jni/helloworld/HelloWorld.cpp
把 #define RESOURCE_PATH    "/data/app/org.cocos2dx.application-1.apk"
改为 #define RESOURCE_PATH    "/data/app/org.cocos2dx.application.apk"

注意的问题

1、每次重新build出新的.so文件时,需要在eclipse下通过clean project才能把新编出来的.so文件打包到apk里。

2、eclipse下载安装包到模拟器上安装时,安装后的apk文件名会在名字后面加个数字。
以我们的例子来说,安装后的apk路径名为/data/app/org.cocos2dx.application-1.apk。而且这个数字还会变化:
比如你运行过一次该程序后,如果改动了java代码,然后再次运行时,它的名字会变成/data/app/org.cocos2dx.application-2.apk,
再改动后运行,又变成了/data/app/org.cocos2dx.application-1.apk。

也就是说它的数字会在1和2来回变换。因为我们的代码需要使用到这个路径名,所以需要特别注意。具体的使用见
HELLOWORLD_ROOT/jni/helloworld/HelloWorld.cpp。

如果是下载到真机安装的话,安装后的名字不会有后面这个数字,也就是它的名字应该为
/data/app/org.cocos2dx.application.apk,所以如果要下载到手机运行的话,需要更改
HELLOWORLD_ROOT/jni/helloworld/HelloWorld.cpp里的代码,设置为正确的路径。

相关文章
|
存储 Web App开发 人工智能
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
1107 1
|
定位技术
在阿里云上搭建的幻兽帕鲁服务器,如何替换服务器存档?能否把别的服务器存档导入?
在阿里云上搭建的幻兽帕鲁服务器,如何替换服务器存档?能否把别的服务器存档导入?
|
Unix Linux
Touch命令使用指南:创建、更新和修改文件时间戳
Touch命令使用指南:创建、更新和修改文件时间戳
1475 0
|
弹性计算 缓存 应用服务中间件
阿里云服务器2核2G99元和2核4G199元实例规格性能及适用场景解析
2024年阿里云推出了两款云服务器,2核2G3M带宽40G ESSD Entry盘价格只要99元1年,2核4G5M带宽80G ESSD Entry盘价格只要199元1年,这两款云服务器的活动截止日期为2026年3月31日,活动期间新购、续费同价。那么这两款云服务器怎么样呢?可以用来做什么?本文将对这两款云服务器进行深度解析,包括配置介绍、实例规格、使用场景以及购买建议,以供选择参考。
阿里云服务器2核2G99元和2核4G199元实例规格性能及适用场景解析
|
搜索推荐 安全 Windows
Windows10系统 无法更换锁屏图片一直转圈圈(含替换系统默认锁屏壁纸教程)异常处理
Windows10系统 无法更换锁屏图片一直转圈圈(含替换系统默认锁屏壁纸教程)异常处理
2597 0
Windows10系统 无法更换锁屏图片一直转圈圈(含替换系统默认锁屏壁纸教程)异常处理
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
机器学习/深度学习 数据采集 人工智能
探索AI在软件测试中的应用与挑战
【2月更文挑战第25天】 随着人工智能(AI)技术的迅猛发展,其在软件测试领域的应用逐渐深入。AI不仅改变了传统测试流程,提高了测试效率和质量,也引入了新的挑战。本文将详细探讨AI在软件测试中的具体应用,包括智能化测试用例生成、缺陷预测、自动化测试执行等,并分析当前面临的主要挑战,如数据质量、模型泛化能力和工具集成等问题。通过实例分析和研究展望,本文旨在为软件测试专业人士提供一个关于AI技术融合的全面视角。
|
运维 Cloud Native 安全
云原生技术的未来趋势与挑战
随着云计算技术的不断发展,云原生技术已经成为了企业数字化转型的重要驱动力。本文将从数据导向、科学严谨和逻辑严密的角度,探讨云原生技术的未来趋势与挑战。首先,我们将分析云原生技术的发展现状,包括其优势和应用场景。然后,我们将预测云原生技术的未来发展趋势,并讨论可能面临的挑战。最后,我们将提出一些建议,以帮助企业更好地应对这些挑战。
282 12
|
文字识别 数据安全/隐私保护
PDF-XChange Editor v10.2.1.386
PDF-XChange Editor,号称打开速度最快最强大的PDF编辑器/PDF阅读器,PDF-XChange专注于PDF文档的编辑,打开PDF文件速度快,软件小功能强大,可以自定义制作PDF电子文档,具有创建,查看,编辑,注释,审阅,添加水印,签名保护,PDF格式转换,PDF文档打印,扫描仪识别,OCR识别页面等功能。
410 1
PDF-XChange Editor v10.2.1.386
|
机器学习/深度学习 人工智能 算法
【AI赋能】——我国战略新兴业务快速发展 —产业结构调整持续优化
【AI赋能】——我国战略新兴业务快速发展 —产业结构调整持续优化
548 2