發表文章

目前顯示的是 六月, 2016的文章

adb not responding/unable to detect adb version Syntax error - Android Studio on ubuntu

圖片
 當你運行 Android studio debug app 出現下面的錯誤 當你在啟動  Android Device Monitor 出現下面的錯誤 請下載使用舊版本的 platform-tools 就好了........ (無言) 參考: stackoverflow: android studio adb Syntax error: “)” unexpected

相見恨晚的自動化測試開發工具 Sikuli

圖片
2010年由一位在 MIT 就讀的台灣人發表的 graphic script language, 有別於一般的開發工具,利用一些截圖加上一些簡單的語法就可以操作電腦滑鼠、鍵盤。 開發這工具最難的,我覺得是圖形辨識跟操作行為的判斷。 這工具提供的語法滿完整的,不同的情境都可以簡單的使用, 搭配 Python 語法可以更靈活的操作。 我用了兩個小時的時間,就可以完成安裝並輕易完成一個自動化訂票的 script。 坦白說,效果讓我感到非常的驚豔,可能是本身是開發人員,能夠了解這軟體的困難。 只是覺得自己怎麼可以這麼 lag,六年前的玩意現在才知道。 -- 安裝步驟 -- 先到 Sikuli 官網  下載  SikuliX 目前版本是1.1.0 檔案是 .jar,也就是 java 程式,所以請先安裝 jre 環境。 依教學是說只要檔案下載下來,直接點兩下執行,就會自動下載需要的檔案, 還有一個執行 Sikuli IDE 的批次檔。 安裝過程遇到 "Could not find the main class. Program will exit!" 直接在 console 下指令 " java -jar sikulixsetup-1.1.0.jar" 就會自動下載並安裝起來了。 語法的部份我是參考這個範例    Sikuli的入門使用 -- 遭遇問題 -- 寫範例的過程遇到兩個問題,一個是中文的輸入問題、一個是按鍵的問題。 一、中文輸入的問題,網路上查到的解法是 type(u"中文") 或是 paste("中文"), 實際使用出現的都是亂碼。 最後解法是 paste(unicode("中文", "utf8")) 二、按鍵問題是一些特殊鍵的輸入,例如 windows 鍵 + 字母的特殊組合鍵、Enter 鍵。 這邊統一解答,windows 鍵+字母的特殊鍵組合是 type("d",KEY_META) , 以這範例表示的是 windows 鍵 + d (一定要小寫唷!) Enter 鍵是 type(Key.ENTER)

Semaphore

多執行緒下控制可使用資源的執行緒上限數 比喻作夜店的安管人員再洽當不過,安管人員可控制夜店入場人數, 例如今天只開放100人入場,超過此人數則不得再進場,除非有人離開才可以放行, 控制人數在上限 100。 在多執行緒的情形下,資源的掌握更顯得重要,如資料庫資源。 But, what's the difference between semaphore and singleton? singleton 是用來作 lock,可以想成是一次只開放一個人進場的安管,這樣就很好理解了。 在查到的資料上顯示,若在上限為一個物件存取的情形下, 效能上 singleton 比 semaphore 好多了。 reference:  Android Semaphore