Android ADB over TCP/IP 及在Mini6410開發板上運行Helloworld

前兩天自己花錢買了塊友善之臂的Mini6410開發板,國慶假期已經過去6天了,已經休息得有點飽和了,還是拿出來玩玩吧!之前之所以買這個Mini6410,一方面是便宜,另外一方面是這個板子可以跑Android。

之前只是在驗貨的時候跑過一次Android,也沒有怎麼玩,雖然接觸Linux多年,但是對Java和Android還是一點不懂。這兩天看了看《JAVA核心技術》和《Android Essential》,也算有了些瞭解,感覺在很多概念上和VC編程還是挺相似的。不過對於我這種做驅動的人來講,還是把程序先跑到開發板上纔是正道。

用的程序還是比較簡單的Helloworld,只有一個Activity,一個TextView和EditText,這樣比較簡單,不太可能引入目標板上不能運行的包。

啓動Android,連接到USB,PC上竟然一點反應也沒有,仔細看了一下Log,發現有“android init”,不過跟蹤了一下源碼,printk了幾個Log發現原來在s3c_udc_otg.c中usb_gadget_register_driver的時候返回了錯誤,錯誤的原因是有些函數在註冊的時候並沒有提供,估計友善的人也沒怎麼用過這個東西,不然不會發現不了。USB的代碼要修改起來需要費點時間,估計一時半會搞不懂。

可是後天就要上班了,還是走其它途徑吧,想到了是否可以用TCP/IP,其實我強烈懷疑USB的ADB走的可能也是TCP/IP。Mini6410在運行Android的時候以太網默認是關閉的,首先打開它並配置IP地址:

ifconfig eth0 up

ifconfig eth0 192.168.1.13

然後就可以ping開發板了

在PC上使用adb就可以連接開發板了:

adb connect 192.168.1.13

遠程返回:

connected to 192.168.1.13:5555,其中5555是默認的端口,此時就已經連接上了開發板上的adbd守護程序了,使用netstat可以看到連接的狀況

此時可以使用

1)adb shell 操作開發板,其實就相當於一個telnet,可以執行各種shell命令

2)使用adb install helloworld.apk安裝程序,安裝完以後在菜單裏面就會多出一個helloworld的圖標了,不過在install之前要把目標板的/data目錄和/data/app目錄都設置成777的權限,就是都可以執行和讀寫,不然在PC端會返回錯誤: INSUFFICIENT_STRORAGE,不知道爲何返回這個錯誤

3)adb push 和adb pull上載和下載文件

點擊菜單中的helloworld就可以運行了,其實後來發現好像只要把helloworld.apk放在/data/app下面就可以了,不用adb也行,但是Mini6410竟然連命令cp都沒有,看到.apk在SD卡里面也沒辦法,嘆!這個實驗對我的最大震撼在於Java的可移植性,在PC上編譯的結果在ARM開發板上就可以直接運行,想起那些使用MiniGUI的日子,真是相當的痛苦啊。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章