一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄(三)开发环境

这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程。谨以此文献给那一周我缺失的睡眠。

此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载。

 

上文说到,发现了另一条出路:linmctool。看起来这个东西比hidd更靠谱一些,因为它是针对SixAxis所做的,它肯定包含了与SixAxis之间的通讯。

好吧,我需要试试它能不能用。

我翻遍了Google,都没有找到它的Binary。只能自己编译了。

我花费了大量的时间,研究如何编译成二进制文件。经搜索发现,他们把直接在命令行中运行的二进制文件叫做“本地代码”或“原生代码”,原名为“Native code”。原来如此。继续谷歌。

首先我看了这两篇:

Android原生(Native)C开发之八:Toolchain环境搭建篇

Android C native development using the NDK under Windows

看完这篇文章我才明白,Android开发真的很麻烦。不像Windows,做好软件,装个运行时,就行了。Android因为运行在各种平台,编译环境很复杂。要”交叉编译“才行。唉,我按照这篇文章搞了很久没搞定,因为google对各种 SDK NDK之类的更新太快了,有些地方和教程不一样了,我很迷茫,又没有人教。

后来看了这一篇:

Android C native development – take full control!

最后决定,还是用虚拟机跑Ubuntu吧,这个更可靠一些。

很重要的参考文章: ubuntu12.10安装交叉编译器arm-none-linux-gnueabi-gcc

费了很大的劲,终于安装好了arm-none-linux-gnueabi-gcc。话说这名字真长!

接下来免不了要编译个HelloWorld.c测试一下,push到大眼睛中运行了一下,很正常。

adb push hello /data/local/tmp
adb shell chmod 777 /data/local/tmp/hello
adb shell /data/local/tmp/hello

好,至此,干活的工具有了。开始吧,拿来linmctool的源码,按照说明去编译:

arm-none-linux-gnueabi-gcc --std=gnu99 -Wall -DWITHOUT_USB linmctool-20110304.c -o linmctool 

由于我的蓝牙早已配对成功,所以就带上了 -DWITHOUT_USB 参数,减少编译错误的可能性。但这样仍然是出现了一堆错误,各种.h文件不匹配。从网上到处查找,才得以成功编译。编译好了,赶紧PUSH到大眼睛里试试吧。

adb push linmctool /data/local/tmp
adb shell chmod 777 /data/local/tmp/linmctool
adb shell /data/local/tmp/linmctool

运行成功。按了一下SixAxis上的PS键,奇迹终于出现了。屏幕上出现了一行行的按键状态报告。虽然手柄上的指示灯还在闪烁,但它不会停下来了,按什么键都有反应了!下一篇继续兴奋吧。

题外话,在很长一段时间,我都是用的虚拟机Ubuntu下的arm-none-linux-gnueabi-gcc来编译。由于不会用VIM,在Ubuntu下编辑文字很累。我只好用上了局域网共享。真的是太累了。

 

直到最后,我才发现了有个更好的工具,可以直接在Windows下使用,它就是 CodeSourcery CodeBench Lite,它可以直接在Windows中运行并编译出Android的本地代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值