2015/12/1

在 Android 6.0 上免 Root 備份及還原 Line

這篇文章是「修正 Android 上免 Root 備份 Line 不正常的問題」的延續,這次是要從 Android 4.x 移到 Android 6.0 的手機上,以「免 Root 備份與還原 3.9.0v5」這個工具的命名模式,還原的標的手機用 B 為代碼,備份的來源手機就稱為 A。 在前一次操作時 A 與 B 手機都是 Android 4.x 的系統,除了 Line 的版本所造成的問題之外,並沒有遇到其他的情況。但完成了「1.A手機備份資料.bat」、「2.B手機還原資料.bat」的動作之後,要在 Anroid 6.0 的 B 手機上執行「3.B手機免root清除重登.bat」卻出現了問題! B...

2015/11/9

如何寫好程式

這個標題有語帶雙關的意味,是如何「寫好」程式?還是如何寫「好程式」?如果是問如何「寫好」程式,有很多人可能會下意識地說:很簡單啊,就是把程式碼打好,按下執行程式、沒有問題就「寫好」了啊!但是,「寫好」了就是「好程式」嗎...

2015/10/23

修正 Android 上免 Root 備份 Line 不正常的問題

更新:如果要進行備份或還原的手機是 Android 6.0 可以參考這一篇文章。 幫人轉移 Android 上的 Line 到新手機真是一個讓人很不愉快的經驗,最主要的痛苦來源還是來自於聊天記錄的備份問題。如果是要備份自己的聊天記錄,基本上會很清楚和哪些人對話是重要的,只要挑選好重要程度高的聊天室,數量不致於太多。然後用 Line 內建的「備份聊天記錄」功能逐一備份,並且把檔案移到新手機就完事,想看以前的記錄再匯入就行了。 但是幫人備份就不太容易拿捏輕重,萬一一個不好,漏了,就會被人埋怨是不是專業程度不夠。更何況不是群組或一對一的聊天室,好像備了也沒有用,全部聊天記錄整包備份是最保險的做法。但,Line...

2015/9/19

調整 Android Studio 編譯檢查規則

在 Android Studio 中進行程式碼的編輯時,會對程式碼進行即時的分析,並且在編輯窗格的右上方顯示分析的結果。檢查程序在進行中時,窗格右上方的角落會以一個眼睛的圖示來表達。如果程式碼通過所有檢查條件會顯示綠色的勾勾;程式碼有違反一項以上的警告規則顯示黃色的方塊;當程式碼有違反一項以上的錯誤規則顯示紅色的圓圈包著驚嘆號。 很多人在寫程式的時候都只關心編譯後能不能執行好進行測試,因為程式一旦有錯誤就會中斷編譯程序、阻擋工作的進行,要等到錯誤的程式碼被修正後才能繼績工作。而警告的訊息並不會阻擋工作的進行,就會變得無所謂、大多數的人都會選擇不予理會。 這並不是一個好的開發習慣,Android...

2015/9/4

如何在 Android Studio 中批次執行不同性質的測試程式

當所開發的系統中,測試程式被依性質做區分,例如:單元測試(Unit Testing)、整合測試(Integation Testing)。通常會讓整合測試交給後端的 CI 系統來執行,因為相較於單元測試,整合測試所需的執行條件較高、所耗的時間也相對地較長。否則隨著程式日漸龐大,很有可能會出現只是幾分鐘的程式修改,但等測試執行完成卻要花上數倍時間的情況。 而單元測試就會被程式撰寫人員執行,用來確認程式是否依設計的內容來完成,所以這個時候就會需要有一個簡易的方法可以用來觸發單元測試的執行。在...

2015/8/27

在 Spock 測試方法間共用程式碼

在進行測試程式開發時,經常會有執行或驗證的程序是在不同的測試案例間一直重覆,當然使用 Spock 時也不例外。根據 Spock 的官方文件提到,在 Spock 中可以使用 Helper Methods 來把要被共用的程式碼收納於其中,並且在不同的測試方法間呼叫。 以下為測試方法共用程式碼的範例: This file contains bidirectional Unicode text that may be interpreted or compiled...

2015/8/23

2015/8/22

如何使用 Spock 測試 Static Method

使用 Spock 來開發測試程式除了在之前的文章中提到的:可輔助 BDD 的開發流程、與 JUnit 相容及內建 Data Driven 功能等特性之外,還有另外一項優點是內建了 Mock 的功能。Spock 所提供的 Mock 功能在使用上相當的簡潔,以下是一段範例的程式碼: This file contains bidirectional Unicode text that may be interpreted or compiled differently...

2015/8/19

解決 Android Studio 中 TODO Highlight 效果消失的問題

前二天在昇級 Android Studio 到 1.3.1 之後,發現了一個奇怪的問題。由於更新後 Android Studio 需要重啟,但在 Android Studio 重啟後,所有 FIXME 及 TODO 的註解無法呈現 Highlight 的效果,同時在 TODO 的 Tool Window 中也搜尋不到任可的 TODO 項目。 在檢查過相關的設定之後,發現 TODO 的 Pattern 設定都被清掉了,難怪沒有辦法顯示...

2015/6/21

使用 Android Studio 開發 Web 程式 - 測試

測試 這是「使用 Android Studio 開發 Web 程式」系列的最後一篇文章,接著前一篇偵錯的主題之後要進行的是測試。不是已經可以偵錯了? 偵錯就是在測試了啊? 還要研究什麼? 有這樣疑問的人可以先參考一下這一篇文章。 研究的方向是希望能夠確認在 Android Studio 進行測試時,可以滿足下幾項測試上的需求: 自動化不僅僅是在開發時能夠大幅減少測試這項工作的負擔,並且還要能夠把自動化延續到 CI 系統中,以便有效提昇整體的開發工作品質。 Code...

2015/5/20

使用 Android Studio 開發 Web 程式 - 偵錯

偵錯 這是「使用 Android Studio 開發 Web 程式」系列的第三篇文章,接續前一篇文章的內容,程式碼照著規格打完了,第一件事當然就是先執行看看成果,如果有出現不符預期的結果,就要進到了偵錯的程序以便修正程式碼。但如果負責的是 Server 端的元件,還要先準備好 Container 的環境、佈署編譯好的檔案、調整設定檔等等的程序。過往大部份人可能都會選擇 Tomcat 做為 Container,而現在有一個輕量化的選擇 Jett...

2015/4/19

使用 Android Studio 開發 Web 程式 - 設定共用函式庫

設定共用函式庫 接續前一篇文章,雖然程式碼編寫已大致滿足工作上的需求,但是還有一項未來潛在性的需求要確認是否能夠達成。目前在開發設計上的主流是物件導向,物件導向的基本精神是提高重用性,也就是在設計時要讓程式碼儘可能地異中求同。所以在不斷地重構之下就會形成很多共用的 Class,共用的 Class 集合起來就會形成一個共用的 Package 來讓不同的程式碼專案來引...

2015/3/18

使用 Android Studio 開發 Web 程式 - 程式碼編寫

Google 發佈了正式版的 Android Studio,並宣示 Android Studio 成為了官方的開發工具。官方網站上也建議使用 Eclipse 搭配 ADT 的開發人員要移轉至 Android Studio,這代表著 Google 要讓 Android Studio 代替 Eclipse 成為開發 Android App 的主流 IDE。所以,要把手上的 Android App 專案移到 Android Studio 上開發是遲早的事,但這也衍生出了一個問題,就是其他非 Android 平台的專案怎麼辦?畢竟一個進階一點的 App 通常都是需要有 Server 端的服務做搭配,再複雜一點可能還會有函式庫類型的專案是...

2015/2/14

2015/1/12

軟體測試經驗分享

測試自動化 這裡先暫且放下 BDD、TDD 等進階的軟體工程理論,講到測試,許多人的刻板印象,第一個想到的就是手動式的測試方法。把程式執行起來,照著幾個情境人工觸發程式處理程序看看程式的行為、輸出的結果符不符合預期,有問題的話就修改程式再週而復始相同的過程。但其實這是一個很吊詭的現象,程式開發的用意是要協助人們將工作自動化,以減少人力的負載。結果我們有能力幫別人將工作自動化,而自己做的工作卻仍然在使用落後的人工處理!如果讓客戶知道,客戶不會懷疑我們的程式能用嗎? 就像做餐飲,如果連自己做出來的餐點自己都不吃,會有客人想吃...