一不小心踏進Android開發: TPMini大眼睛使用PS3藍芽手柄(三)開發環境

來源:互聯網
上載者:User

這是一套連載文章,用以記錄大眼睛串連藍芽手柄的全過程。謹以此文獻給那一周我缺失的睡眠。

此文的性質相當於(公開的)個人日記,未經本人允許,請勿轉載。

 

上文說到,發現了另一條出路:linmctool。看起來這個東西比hidd更靠譜一些,因為它是針對SixAxis所做的,它肯定包含了與SixAxis之間的通訊。

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

我翻遍了Google,都沒有找到它的Binary。只能自己編譯了。

我花費了大量的時間,研究如何編譯成二進位檔案。經搜尋發現,他們把直接在命令列中啟動並執行二進位檔案叫做“本地代碼”或“原生代碼”,原名為“Native code”。原來如此。繼續Google。

首先我看了這兩篇:

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/tmpadb shell chmod 777 /data/local/tmp/helloadb 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/tmpadb shell chmod 777 /data/local/tmp/linmctooladb shell /data/local/tmp/linmctool

運行成功。按了一下SixAxis上的PS鍵,奇蹟終於出現了。螢幕上出現了一行行的按鍵狀態報表。雖然手柄上的指示燈還在閃爍,但它不會停下來了,按什麼鍵都有反應了!下一篇繼續興奮吧。

題外話,在很長一段時間,我都是用的虛擬機器Ubuntu下的arm-none-linux-gnueabi-gcc來編譯。由於不會用VIM,在Ubuntu下編輯文字很累。我只好用上了區域網路共用。真的是太累了。

 

直到最後,我才發現了有個更好的工具,可以直接在Windows下使用,它就是
CodeSourcery CodeBench Lite,它可以直接在Windows中運行並編譯出Android的本地代碼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.