一不小心踏进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的本地代码。
一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄(三)开发环境相关推荐
- 一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄 文章索引以及其它
这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程.谨以此文献给那一周我缺失的睡眠. 此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载. 这一套文章是我自娱自乐的一个小项目"Si ...
- 一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄(一)各种尝试(1)
这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程.谨以此文献给这一周我缺失的睡眠. 此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载. 前几天从网上买了个TPMini大眼睛,配置比我的 ...
- 一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄(二)各种尝试(2)
这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程.谨以此文献给这一周我缺失的睡眠. 此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载. (接上文) 既然要回到hidd的正途,那就得先具备 ...
- 一不小心踏进Android开发: TPMini大眼睛使用PS3蓝牙手柄(四)围绕linmctool挖掘SixAxis通讯协议
这是一套连载文章,用以记录大眼睛连接蓝牙手柄的全过程.谨以此文献给那一周我缺失的睡眠. 此文的性质相当于(公开的)个人日记,未经本人允许,请勿转载. 上文说到,linmctool编译后连接手柄成功,各 ...
- 踏进Android王国
一.Android系统架构 四层架构,五层区域,详情如下图所示: 1.Linux内核层(主要包括基本的硬件驱动,如显示驱动,蓝牙驱动,音频驱动等等) 2.系统运行库层(这层的作用主要就是兼容数据库和语 ...
- Android基于mAppWidget实现手绘地图(三)--环境搭建
首先,你在Eclispe开发环境中新建一个项目:然后,可以通过Eclispe项目管理工具把这个项目集成到你的app项目中.下面手册会手把手教你如何正确创建一个地图对象. 第一: 新建一个新的Anroi ...
- 好书推荐:21天入门 低功耗蓝牙5.x开发
低功耗蓝牙5 及其后续版本围绕物联网创新应用而不断更新迭代,如何高效的学习低功耗蓝牙5 相关知识,并通过实践来掌握其开发方法,是广大学子和开发人员非常感兴趣的内容.作为低功耗蓝牙技术在国内最早推广及应 ...
- android源码大放送啦(实战开发必备)
文件夹 PATH 列表 卷序列号为 000A-8F50 E:. │ javaapk.com文件列表生成工具.bat │ 使用说明.txt │ 免费下载更多源码.url │ 目录列表.txt │ ...
- Android BLE蓝牙4.0开发详解
这篇博客主要讲解 蓝牙 BLE 的用法.在讲解之前先讲一些概念性的东西,对于之前没接触过蓝牙开发,现在手上又有个蓝牙BLE项目需要做的人,先看下这些概念还是很重要的.因为我之前就是这样,之前没有接触过 ...
最新文章
- SpringMVC上传文件解析request请求为空获取不到数据问题
- 合川专升本计算机怎么学升学率,2019年重庆市合川太和中学高考喜报
- linux centos 下载rpm源码包
- OpenGL中的着色模式GL_SMOOTH与GL_FLAT
- sdut2772 KMP的简单应用
- USTC English Club Note20171020
- 「中间件系列二」redis缓存
- Python网络爬虫从入门到实践 -- chapter 1 -- 网络爬虫入门
- 尤大是如何发布vuejs的,学完可以应用到项目
- F - GCD or MIN(数论)
- LeetCode 171. Excel表列序号(26进制转10进制)
- 【线段树】Segment Tree
- 5G 基站为何建得比 4G 多?
- 在现有集群环境下动态增加(下架)新的节点
- JAVA之父----詹姆斯.高斯林
- python cox模型_Forest plot(森林图) | Cox生存分析可视化
- Tracup丨什么是敏捷产品管理?
- Java excel导出压缩zip并加密(拿起即用,有用请点赞,不做白嫖怪!)
- 第四章 账号权限管理
- tbb学习笔记(一): tbb容器及Mutex