在Android裡, 做IPC(Inter process call)的方法有很多種, 可以寫一個Intent receiver接收來自於另一個process的Intent, 也可以自己用AIDL定義interface來做

不過用Receiver的方式, intent會先跑到system server在送到目的地去, 而且Receiver的角色有點像是一對多, 不是很經濟, 至於AIDL, 實在太麻煩了, 對於簡單的應用, 或是懶人來說….只有兩個字….“麻煩”

所幸, 還有一個東西: Messenger

這東西可以讓你對目標的Handler發送message…對, 沒錯, 就是對另一個process的Handler發送message, 感覺好像很神奇, 一般不都是對同一個process的Handler發送message, 這個卻可以對remote, 但說穿了很簡單, 它只是先用AIDL定好了送message的interface而已

使用的方法很簡單, 以下是Service端:

只要在onBind的時候把Messenger的Binder回傳回去就好

Client端也很簡單, 把service給bind上, 然後用binder來創建Messenger, 這樣對Messenger送的message自然就會透過binder丟到遠端的process去了

那, 可以雙向溝通嗎? 其實是可以的….Message這class有個member: replyTo, 它就是一個Messenger, 把Messenger也附帶一起傳過去, 自然就可以做雙向溝通了

用這個已經一段時間了, 之前是為了轉日劇到iPad上看, 所以在Apple App store上找到這個, 其實這是個Open source的ffmpeg前端, 有興趣可以上官方網頁看看它有support哪些裝置跟格式

這軟體好用的地方在於簡單, 只要簡單的拖拉就可以轉檔了, 而且可以自動幫你把轉好的檔放進iTunes中

最可貴的是…它是GPL…Source在此

本來這技巧應該沒啥用上, 不過最近一台開發的機器, usb一直不通不通的, adb logcat自然就不能用了, 不過好在現在adb有支援adb over tcpip

啟用的方法是

adb tcpip port

這就會把手機上的adb轉成可以透過tcpip連接

不過, USB不通又怎下這指令, 當然是沒辦法….

所幸Market上下載的到相關的程式:

  1. adbWireless
  2. adb over wifi widget

我比較喜歡adb over wifi widget, 只要按一下就可以enable/disable, IP/PORT還直接顯示在widget上, 還蠻方便的

啟動之後, 只要在PC端下

adb connect IP:PORT

這樣adb就會連結到這台手機上了, 之後下adb command像是adb logcat或是adb install都是透過tcpip連結到這台機器上

 

小遠那天一直在聽這首歌, 還練唱了起來, 拜託他, 他才願意讓我錄…可惡的小子, 哈!

他的未來一定不是夢! 那我呢? 我只希望我還有夢可以做… ^_^

“凡走過必留下痕跡”

這是很久之前綜藝節目尋人單元 - 超級任務 裡 阿亮的台詞

今天在想, 如果當年就已經有了Facebook而且就已經像現在這麼的流行熱門的話, 尋人任務應該會更加的簡單吧, 畢竟所有Facebook上的使用者, 不管是自願或是非自願, 多多少少就已經留下痕跡了

許多人可能都有強烈的感覺到, 透過Facebook, 常常很容易就把失散多年的親戚同學朋友, 通通都連起來了, 藉由朋友的朋友, 或交友網路, Facebook漸漸的一個個幫你把他們兜起來, 甚至不用到阿亮了

更進一步的, 藉由photo tagging, 不僅可以保留你跟朋友之間互動的回憶, 甚至有可能把你已經忘了他是誰的帳號再次在你腦袋連結起來, 今天試用了 Social flow這個AP, 利用了photo tagging來幫你分類朋友這個idea相當的棒, 不過想想也挺直覺的, 有過互動關係的人才有可能一起出現在照片, 或許, 應用可能不止於此而已

還有哪些痕跡可以被利用到? Places, Events 其實都是很好的素材呀!

題外話, 

今天看Zuck預拍幫HTC站台的影片播出, 心裡突然一陣莫名的感動冒了出來….我好像有點太走火入魔了.. :P