qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Android如何在測試程序中刪除被測應用私有的原始數據

          我們知道在Android App測試時,當我們想把應用程序恢復的初始狀態,我們通常可以有以下幾種做法:

            手動

            到Setting -> Apps -> 單擊我們要測得應用程序 -> 選擇Clear data

            這樣重新啟動App的時候,我們的程序就處于初始狀態了。

            命令行

            當然我們也是可以使用命令行來操作的,比如:

          adb shell pm clear my.app.package

            只要把對應的包名,改成你自己的就可以了。

            自動化

            要是能自動化就更加完美了,這樣我們就可以在我們的自動化Case里添加相應的恢復App原始狀態的代碼了,如此我們就可以保證我們的Case總是在一個一致的測試環境中,豈不更美?

            這里我找到了兩種方法。

            方法一:在VBS腳本中添加代碼,完成操作

          Set objWsh = CreateObject("Wscript.Shell")
          objWsh.Run "adb shell pm clear my.app.package",1, True

            方法二:在Android Test Project中添加相應代碼刪除私有原始數據

          Context context = this.getInstrumentation().getTargetContext().getApplicationContext();
          Editor edit = context.getSharedPreferences(m_strPreferencesName, Context.MODE_PRIVATE).edit();
          edit.clear();
          edit.commit();

            當然我這里是刪除名叫“m_strPreferencesName”的數據,如果我們想刪除其他,或者所有的Share Preferences數據都是可以的。

            請注意:

            雖然Java 有Java.lang.runtime,我們可以通過它在運行時去執行Command命令,完成一些操作,但是在Android里,類似下面的代碼就不可以:

          try
                  {
                      Runtime.getRuntime().exec("adb shell pm clear com.my.package");
                  }
                  catch(IOException ex)
                  {
                      ex.printStackTrace();
                  }

            這里不會拋任何異常,而且也不會清除App的數據。

            這是因為Andorid的安全機制不允許一個App去刪除另一個App的數據。

          posted on 2013-05-22 10:26 順其自然EVO 閱讀(1776) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年5月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 中方县| 潮州市| 建始县| 东乌珠穆沁旗| 嘉义县| 洛川县| 波密县| 中牟县| 满城县| 台前县| 洛扎县| 江阴市| 永春县| 广安市| 崇信县| 射阳县| 钟山县| 霍林郭勒市| 东兰县| 九龙坡区| 呼伦贝尔市| 樟树市| 洛扎县| 柞水县| 赤水市| 商丘市| 铜鼓县| 乐亭县| 上饶县| 河曲县| 丘北县| 南阳市| 哈尔滨市| 彩票| 盐源县| 冀州市| 德江县| 内丘县| 长沙市| 岗巴县| 绥棱县|