android with NDK

这几天一直在捣鼓安卓的东西。走了些弯路。把过程叙述一下。

一开始先下载了SDK(ADT-bundle)和NDK-r8。直接跟着Get Starts的教程,用Bundle eclips完成了第一课。一直run through到Graphic(OpenGL ES)发现GL的接口全都是java上封装好的。

然后了解了一下NDK。读了读doc,网上随便找了个教程,通过Activity  static 模块把so载入了,用的是ndk-build命令行直接编译的。

想着这样不行,用visual studio起了个项目,把头文件什么的设置一下,然后编译通过后,再用命令行编译成SO。发现太多头文件了,有点乱,努力无果。网上找一套教程,说是得装linux虚拟环境,或者虚拟机,我想着我在x86 cmd下都能用,不必要装这些吧,后来照着做了,卡在cygwin的下载上,虽然下到一半装个半成品也能用,不过具体的也不知道有没有问题。

这样不行电话求助朋友,他提示我,用那半拉cygwin跑了一个standalone toolchain.sh生成了一套导出工具,反正跑通过了,没有深究,不过我觉得应该有x86的命令bat。然后在Code::Blocks下设置编译环境,成功。网上找到一本书:《Android NDK Beginner's Guide》Discover the native side of Android and inject the power of C/C++ in your applications, Sylvain Ratabouil,照着它的教程一步步写程序,速度还蛮快的。

Code::Blocks没有设置任何习惯和快捷键,完全就是raw-coding,不过漫漫也习惯了,稍微有点影响效率就是经常得用鼠标点,感觉别扭,同是一直在摸索下写Android.mk。一长串makefile真是伤不起,找了个朋友问了问几个常用的命令,后来重写makefile,在一天工作之余看了doc然后把makefile写好,然后终于把项目目录重新清理干净了,现在大概的开发链是成功了。

code::blocks run through之后,就通过设置环境变亮+cmd的方式生成SO,不是我不想直接用code::blocks编译,但是我发现新版本的cb,会在ld上加上--dll,一直不知道怎么删除这个参数,没办法,一直忍到现在,也还算行。

今天摸索了一下eclipse,有个Add Native Library提示我NDK路径不对,跟网上教程普通eclipse终于发现在windows->preference里有设置NDK路径,然后在c/cpp 透视图下可以吧项目提升到java cpp混编项目,自己捣鼓了一下。现在相当于是CB和eclipse交叉用就行了,虽然在CB下面没有提示,但是项目设置还是比较清楚的,比起eclipse来说稍微好看点,就这么找吧,拜托命令行了,不过还是有必要了解一下命令行各种设置的,本来预期是以后还要分离出ndk-build的gcc的,现在反而觉得可能直接用bundle-eclipse来编译或许比较傻瓜一些。

应该是NDK-r5之后就不需要虚拟环境了,有windows上的toolchain。

btw.硬伤在于linux不懂,以后慢慢学吧。有空截图,会把环境设置的过程缕一缕,反正以后在xcode上还是会用gcc。

ps.那本书我直接从Chapter4 pure native app看起的,接下来还是会把ui线程什么的都看完。再说,还有得画点时间看看开源的android实现,发现好像OBB/StorageManager或者是他朋友是原生异步加载的,这样就省的我写线程调度了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值