Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發環境 >> 如何搭建Google ADK開發環境

如何搭建Google ADK開發環境

編輯:Android開發環境

       arduino是一個開放的硬件平台,包括一個簡單易用的i/o電路板,以及一個基於eclipse的軟件開發環境。arduino即可以被用來開發能夠獨立運行,並具備一定互動性的電子作品,也可以被用來開發與pc相連接的外圍裝置,這些裝甚至還能夠與運行在pc上的軟件(如flash,max/msp,director,processing等)進行溝通。  

       arduino硬件電路板可以自行焊接組裝,也可以購買已經組裝好的,軟件則可以從arduino網站免費下載使用。其中硬件參考電路是以cc(creative commons)的形式提供授權。

       一、背景

       Google在去年5、6月份的時候更新Android到2.3.4開始支持外接擴展硬件,這裡無疑為我們描繪了未來嵌入式智能的發展藍圖,在任何你需要智能計算的地方,可以是汽車裡,可以是家庭智能計算中心,甚至可以在天文台都可以即時插入手機獲取手機的計算資源。當然就目前來看最大的應用還是在機器人智能上。

       很久以前就一直萌生有自己做機器人的想法,苦於對數電模電單片機了解太粗淺,一直沒能下手,這次ADK的開放可以說對於做軟件的人來說是敞開了機器人的大門。

       因為ADK發布並不久,算是比較新的技術,網上的資源相對較少,特別是國內的資源更少,這裡就我這段時間對ADK環境搭建的經驗分享出來給大家。

       Google本身發布了一個專用於ADK的板子,要價400美刀,當然實際上用arduino + usb host shield(在淘寶上2560 + USB HOST SHIELD 2.0 只需要300人民幣左右)也是可以達到的,雖然實際做起來有點曲折。

       二、相關文件的生成

       先附上google標准教程。你嚴格按照這個做,如果能完成最好,如果不能完成還是看我這個吧。

       http://developer.android.com/guide/topics/usb/adk.html

       你需要在這步產生兩個文件,一個手機端用的apk以及一個用於上傳到板子上的pde。

       嚴格按照谷歌官方的步驟走:

       第一步,下載google ADK包(https://dl-ssl.google.com/android/adk/adk_release_0512.zip)。

       第二步,搭建android開發環境(其他文章已經講了,我這裡就不重復了),通過SDK Manager下載Adds-on(Google APIs),如果手機就2.3.3,level10,如果是pad就需要3.0(安裝圖可以見http://code.google.com/android/add-ons/google-apis/installing.html)。

       第三步,在eclipse中,通過建立已存在工程的方式把ADK包中的\app工程建立出來,target選google API或者2.3.3或者3.0,根據需要建立,建立完了以後,在工程下就會有bin文件夾產生了,下面那個apk就是我們要用的apk了。

       第四步,下載arduino開發IDE(http://arduino.cc/en/Guide/HomePage),完了安裝,之後將ADK包中的\firmware\arduino_libs下的兩個文件夾拷貝到arduinoIDE安裝目錄下的\libraries中,然後打開IDE,從IDE中打開ADK包中的\firmware\demokit\demokit.pde,編譯就行了。

       通過第三步產生的apk傳到手機,以及第四步的pde選擇好對應的板子後傳到板子上,我們就完成了google標准教程中的內容,如果你的apk能在手機上順利安裝,並且在板子連上打印線(用於供電,你也可以用電源線供電)後,USB HOST SHIELD連上手機時如果出現了警告窗口,恭喜你,剩下的內容你不用看了,你已經打通了手機和板子的通信,剩下的就是寫你想要的功能了。

       如果APK沒裝成功,或者線連通了手機上沒有出現警告窗口,接下來的內容可能會對你有些幫助。

       三、手機端開發環境的搭建

       手機端最硬性的條件是手機必須支持到android2.3.4以上的rom,從實際情況來說,即使G1也能刷到2.3.4以後,所以理論上說所有的android手機都能支持(實際上根據老外研究貌似galaxy S系的手機不支持)。我這裡使用的就是很早期的HTC G2來做的。

       有可能你在按google標准做法做了以後,APK安裝不上,LOG中顯示

       Package com.google.android.DemoKit requires unavailable shared library com.android.future.usb.accessory; failing!

       這需要你按照下面步驟進行測試和調整:

       (1)關於rom。第一,如果你的手機通過官方升級渠道能夠升級到2.3.4以後恭喜你,你不用為rom發愁,什麼都不做或者做一點拷貝工作就能完成手機端的布置。第二,如果你的手機官方升級早已停滯(比如我用的HTC G2)那麼你只能刷MOD版的rom,國內比較常見的可以去安卓網或者機鋒網搜索你想要的rom,由於不是專門的開發網站,他們的rom比較有局限性,一般都是從國外的rom拉過來改的,國外比較權威的是xda論壇,一般的rom都能找到,刷機過程我這裡就不贅述了,內容比較多,請不太清楚的讀者轉到網上搜索資料學習一下。一般來說,MOD版的rom都有root權限,可以通過如下方式檢查你的rom是否支持ADK,拉取根目錄下/proc/config.gz出來,解壓縮,搜索"CONFIG_USB_ANDROID_ACCESSORY",如果搜索不到或者搜索出來的結果是"# CONFIG_USB_ANDROID_ACCESSORY is not set"那很不幸,這個rom是不支持ADK的,需要再刷其他rom(以HTC G1或者G2這些早期版本來說,ezGingerBread的rom是支持的,但是安裝後需要自己設置語言為中文)。

       (2)關於運行庫以及權限Rom的問題解決後,可以嘗試安裝一下,很可能還是安裝不上,是因為缺少運行庫的原因,你可以把模擬器文件中/system/framework/下面的com.android.future.usb.accessory.jar文件拷到手機的對應目錄下,同時需要把/system/etc/permissions/目錄下的android.hardware.usb.accessory.xml拷貝到對應目錄下,這個目錄也被鏈接到/etc/permissions的。(如果沒有root提權需要用adb命令push文件),這裡附上國外解決這個問題的原始鏈接:https://github.com/ezterry/manifest-gingerbread-DS/issues/32。

       經過這兩步,按道理來說應該可以順利安裝上APK了,這時你可以嘗試下把板子跟手機連一下觀察是否有警告框彈出,如果沒有,接著往下看。

       四、ARDUINO端開發環境搭建

       非常惡心地,google原始提供的pde以及USB HOST SHIELD庫並不支持目前市面上常見的USB HOST SHIELD,只需要做一個簡單替換即可。先下載USB HOST SHIELD LIB 2.0,地址如下https://github.com/felis/USB_Host_Shield_2.0/downloads。

       解壓,將arduinoIDE目錄下原來的USB_Host_Shield做個備份後刪掉,然後將解壓得到的目錄重命名為USB_Host_Shield。

       打開新USB_Host_Shield目錄下\examples\adk\demokit_20\下的pde文件通過arduinoIDE打開,編譯,上傳到板子上,重新插拔與手機連接的USB線,Cheers,應該有警告框彈出了,連接打通!

       最後附上USB_HOST_SHIELD lib 2.0地址:http://www.circuitsathome.com/mcu/google-open-accessory-interface-for-usb-host-shield-library-2-0-released。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved