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

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

上文说到,发现了另一条出路: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的本地代码。

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

  1. 一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄 文章索引以及其它

    这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程.谨以此文献给那一周我缺失的睡眠. 此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载. 这一套文章是我自娱自乐的一个小项目"Si ...

  2. 一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄(一)各种尝试(1)

    这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程.谨以此文献给这一周我缺失的睡眠. 此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载. 前几天从网上买了个TPMini大眼睛,配置比我的 ...

  3. 一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄(二)各种尝试(2)

    这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程.谨以此文献给这一周我缺失的睡眠. 此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载. (接上文) 既然要回到hidd的正途,那就得先具备 ...

  4. 一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄(四)围绕linmctool挖掘SixAxis通讯协议

    这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程.谨以此文献给那一周我缺失的睡眠. 此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载. 上文说到,linmctool编译后连接手柄成功,各 ...

  5. 踏进Android王国

    一.Android系统架构 四层架构,五层区域,详情如下图所示: 1.Linux内核层(主要包括基本的硬件驱动,如显示驱动,蓝牙驱动,音频驱动等等) 2.系统运行库层(这层的作用主要就是兼容数据库和语 ...

  6. Android基于mAppWidget实现手绘地图(三)--环境搭建

    首先,你在Eclispe开发环境中新建一个项目:然后,可以通过Eclispe项目管理工具把这个项目集成到你的app项目中.下面手册会手把手教你如何正确创建一个地图对象. 第一: 新建一个新的Anroi ...

  7. 好书推荐:21天入门 低功耗蓝牙5.x开发

    低功耗蓝牙5 及其后续版本围绕物联网创新应用而不断更新迭代,如何高效的学习低功耗蓝牙5 相关知识,并通过实践来掌握其开发方法,是广大学子和开发人员非常感兴趣的内容.作为低功耗蓝牙技术在国内最早推广及应 ...

  8. android源码大放送啦(实战开发必备)

    文件夹 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.com文件列表生成工具.bat │  使用说明.txt │  免费下载更多源码.url │  目录列表.txt │ ...

  9. Android BLE蓝牙4.0开发详解

    这篇博客主要讲解 蓝牙 BLE 的用法.在讲解之前先讲一些概念性的东西,对于之前没接触过蓝牙开发,现在手上又有个蓝牙BLE项目需要做的人,先看下这些概念还是很重要的.因为我之前就是这样,之前没有接触过 ...

最新文章

  1. SpringMVC上传文件解析request请求为空获取不到数据问题
  2. 合川专升本计算机怎么学升学率,2019年重庆市合川太和中学高考喜报
  3. linux centos 下载rpm源码包
  4. OpenGL中的着色模式GL_SMOOTH与GL_FLAT
  5. sdut2772 KMP的简单应用
  6. USTC English Club Note20171020
  7. 「中间件系列二」redis缓存
  8. Python网络爬虫从入门到实践 -- chapter 1 -- 网络爬虫入门
  9. 尤大是如何发布vuejs的,学完可以应用到项目
  10. F - GCD or MIN(数论)
  11. LeetCode 171. Excel表列序号(26进制转10进制)
  12. 【线段树】Segment Tree
  13. 5G 基站为何建得比 4G 多?
  14. 在现有集群环境下动态增加(下架)新的节点
  15. JAVA之父----詹姆斯.高斯林
  16. python cox模型_Forest plot(森林图) | Cox生存分析可视化
  17. Tracup丨什么是敏捷产品管理?
  18. Java excel导出压缩zip并加密(拿起即用,有用请点赞,不做白嫖怪!)
  19. 第四章 账号权限管理
  20. tbb学习笔记(一): tbb容器及Mutex

热门文章

  1. (四)多线程说学逗唱:线程险恶,变量和线程安全不得不防
  2. C语言输出“好好学习”循环语句
  3. 扫地机器人哪款好用?
  4. 嵌入式linux驱动之路07:裸机开发之蜂鸣器,时钟,中断
  5. Hub12接口,P10两扫单元板的开发
  6. Vue3+ts——动画Loading以及引入本地随机背景效果
  7. Stetho 调试查看本地存储的数据
  8. 量化头部企业急招岗位,开发岗位,可看应届
  9. php、js判断闭合标签最简算法
  10. Linux的定时任务详解