App Crawler Overview

Android App Crawler

目前僅針對以下功能進行查找

  1. 可以自行判斷目前activity有哪些可以interact
  2. 自行與這些interactable的view進行interact,不管是DFS或是BFS,反正就是全部都互動就對了

比較常見的

  1. Stoat :::info Ting Su, Guozhu Meng, Yuting Chen, Ke Wu, Weiming Yang, Yao Yao, Geguang Pu, Yang Liu, and Zhendong Su. 2017. Guided, stochastic model-based GUI testing of Android apps. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). Association for Computing Machinery, New York, NY, USA, 245–256. https://doi.org/10.1145/3106237.3106298 ::: 詳細的說明(包含Demo影片、比較的工具、測試的App),都可以參考 https://tingsu.github.io/files/stoat.html
  2. UI/Application Exerciser Monkey - 不會採用 這是上一篇所比較的對象之一,可以想像成一個猴子正在對一個手機上的App進行隨機互動,可能包含簡單的click, double click, long click或是swipe等等
    1
     $ adb shell monkey -p com.music.spotify -v 50000
    

    最後面的數字代表隨機丟出多少的event給特定的App

  3. a3e - 年代久遠不採用 也是第一篇的比較對象之一
  4. Sapienz - 無法使用 也是第一篇的比較對象之一
  5. APE - official webpage / APE - github - github star太少且年代久遠不採用 這是第一篇有提到的工具之一
  6. Fastbot Android - 可採用 這是前一個APE官網有提到的工具,而且開發時間還蠻近的,github star也很多,也有CSDN教學
  7. Droidbot - 可能採用 :::info Li, Y., Yang, Z., Guo, Y., & Chen, X. (2017, May). Droidbot: a lightweight ui-guided test input generator for android. In 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C) (pp. 23-26). IEEE. ::: 年代有點久遠,但網路上的教學也蠻多的,官網也有提供範例
  8. Androidenv - 可能採用 :::info Toyama, D., Hamel, P., Gergely, A., Comanici, G., Glaese, A., Ahmed, Z., … & Precup, D. (2021). Androidenv: A reinforcement learning platform for android. arXiv preprint arXiv:2105.13231. ::: 年代較近,也有教學

實驗的來源以及標準

如果僅僅是要app本身是開源的可以從F-Droid當中去找,這個網站就是一個免費的Google Play Store,但是我要找的除了是app本身開源,後端本身也要開源,k因為這樣我才知道後端的URL有多少,如果想要知道有哪些可能可以拿來實驗的App,可以看Guided, stochastic model-based GUI testing of Android apps.這一篇論文(就是前面提到的第一篇)

透過CodePilot幫我找

  • awesome-appwrite
  • FoodMagic:

    這是一個使用 Flutter 和 Appwrite 構建的應用程式

  • ao:

    這是一個使用 Ionic 和 Appwrite 構建的待辦事項應用程式

Reference