Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Which repo is the latest one? #165

Open
n-sviridenko opened this issue Jan 19, 2025 · 4 comments
Open

Which repo is the latest one? #165

n-sviridenko opened this issue Jan 19, 2025 · 4 comments

Comments

@n-sviridenko
Copy link

Hey guys,

Firstly, thanks for such a nice creature you made. It's incredible!

Secondly, I see 3 repos:

To clarify, to use that project in other projects, we need to use https://github.com/MobileLLM/DroidBot-GPT , correct? And the other 2 are deprecated.

Thanks,
Nikita

@yuanchun-li
Copy link
Collaborator

Hi Nikita, thanks for asking.

It is based on your purpose. If you want to use the automated GUI testing feature, then this repo (https://github.com/honeynet/droidbot) is what you need. We are working on a new project that uses LLM to improve the test coverage, but the new repo is not released yet.

If you want to build LLM-based agents for UI task automation, you can use either DroidBot-GPT or AutoDroid. The difference can be found in the papers (paper titles can be found in the README).

@n-sviridenko
Copy link
Author

@yuanchun-li thanks for a quick reply! So droidbot is actually not a legacy project and is more up-to-date than the other two?

@n-sviridenko
Copy link
Author

I did analysis through Claude and compared AutoDroid and DroidBot-GPT to droidbot. Leaving it here:

BRANCH: autodroid
• Core Architecture Changes:

  • Added view graph building using networkx
  • Implemented advanced state hashing and tracking
  • Added view ID persistence mechanism
  • Enhanced UI element descriptions

• State Management Improvements:

  • New hash-based state string generation
  • View state memory with important elements tracking
  • Better handling of dynamic states (timestamps, IPs)
  • Added view graph for relationship tracking

• Bug Fixes:

  • Fixed empty view tree crash
  • Improved IME text handling
  • Better activity detection regex
  • Removed problematic SDK 32+ minicap check
  • Fixed scrolling behavior bugs

• UI Interaction Enhancements:

  • Added smart clickability adjustment
  • Improved scrolling logic with MAX_SCROLL_NUM
  • Better touch event inheritance
  • Enhanced text merging with safeguards

• AI Integration:

  • Added hybrid LLM+graph approach
  • Memory-aware prompt generation
  • Support for both LMQL and standard LLM

BRANCH: droidbot-gpt
• Core Architecture Changes:

  • Removed RL framework
  • Simplified state representation
  • Added task-based input policy
  • Enhanced action description system

• State Management Improvements:

  • Simplified state tracking
  • Better action history logging
  • Cleaner state description format

• Bug Fixes:

  • Fixed IME disable check
  • Improved activity detection regex
  • Better event handling

• UI Interaction Enhancements:

  • Improved action description generation
  • Better human-readable state descriptions
  • Enhanced input event handling

• AI Integration:

  • Pure LLM-based decision making
  • Task-oriented prompt engineering
  • Streamlined LLM interaction

COMPARISON:

  1. Architectural Philosophy:
  • autodroid: Hybrid approach combining structured analysis with AI
  • droidbot-gpt: Pure AI approach with simplified structure
  1. Stability & Robustness:
  • autodroid: More comprehensive error handling, better edge case coverage
  • droidbot-gpt: Simpler architecture with fewer potential failure points
  1. State Management:
  • autodroid: Complex but more robust with graph-based tracking
  • droidbot-gpt: Simpler, more straightforward but potentially less precise
  1. AI Integration:
  • autodroid: Sophisticated combination of graph analysis and LLM
  • droidbot-gpt: Pure LLM approach with simpler integration
  1. Bug Fixes:
  • autodroid: More comprehensive fixes, especially for edge cases
  • droidbot-gpt: Basic fixes for common issues
  1. Code Complexity:
  • autodroid: Higher complexity but more features
  • droidbot-gpt: Lower complexity, more maintainable
  1. Extensibility:
  • autodroid: Better for complex automation scenarios
  • droidbot-gpt: Better for simple task-based automation
  1. Performance Impact:
  • autodroid: Higher resource usage but more capabilities
  • droidbot-gpt: Lower resource usage but more network dependent

Overall Assessment:

  • autodroid appears to be a more production-ready solution with better stability and more features, but higher complexity
  • droidbot-gpt offers a simpler, more focused solution that might be easier to maintain but with fewer advanced features

The choice between them would depend on specific needs:

  • Choose autodroid for complex automation requiring high reliability
  • Choose droidbot-gpt for simpler task-based automation where maintainability is key

Both branches represent valid approaches to the problem, but autodroid clearly invested more in stability and edge case handling, while droidbot-gpt focused on simplification and ease of use.

@yuanchun-li
Copy link
Collaborator

@yuanchun-li thanks for a quick reply! So droidbot is actually not a legacy project and is more up-to-date than the other two?

droidbot is not a legacy project, but I haven't updated it for quite a while. Now sure whether it will run into problems for new devices and Android versions. It should be okay for systems earlier than Android 31.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants