• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

[Lib][Java] JDroidLibv2 - A Java <--> Android comms library

Welcome!
First off; hey there.
My name's Simon and I'm a software engineer; I live and work in Germany.

Now that we have all formalities sorted, let me introduce you to my latest project, which I've extensively been working on for the past weeks!

Introduction

After three years of inactivity in the Android community, three years of riding bikes and generally enjoying myself, I've decided to revisit and resurrect an old project of mine: JDroidLib.

Originally inspired by XDA member regaw_leinad, the creator and developer of AndroidLib, JDroidLib is a Java class library (or framework) which provides means of (easily) communicating with and managing Android-powered devices from a Java application.


Ok, why "resurrect"?

As mentioned above, I was inactive in the Android community. I needed some time away from hobbyist developing and thus left all my projects at a stand still.
While still working as a software engineer, I gathered more experience and found many other programs and libraries that were structured similarly to JDroidLib and while they were easy to use, their potential wasn't used or appreciated by their developers.
So, instead of using what the original repository provided me with, I decided to completely re-write JDroidLib, thus resurrecting it. (Yes, not technically the term for it, but updating the old lib would've broken too much and would cause too much confusion with existing users).

That's cool. What's in it for us?

The new version of JDroidLib brings many improvements over the older version. Both stability has already been increased, ease of use, thanks to better implemented singleton and factory designs and a structure that clearly defines the workings of JDroidLib; both internally and externally.
By bringing in these new structures, JDroidLib is as easy to use as always, maybe even more so.

I'm interested! What can it do, where can I find it?!

I'm glad I've sparked your interest!
JDroidLibv2 is currently still in an early beta, but the repository is updated almost daily!

Current features:

  • Automatic installation of required binaries
  • Always latest versions of said binaries thanks to direct downloads from Google servers
  • Execution of three main types of commands: ADB, Shell, and fastboot
  • List devices connected to host
  • Connect to and disconnect from devices via TCP/IP
  • Command execution both synchronous and asynchronous - the choice is yours!
  • Get device root information
    • Full object-based file system representation and management
    • Get busybox information
  • Get device battery information
Current To-Dos:

  • Device class completion
  • Implement CPU/RAM management
  • Implement build.prop tools
  • Shortcut rebooting of devices
  • Finish JavaDocing everything
  • Complete wiki on GitHub
  • Implement user requests (if any)
  • Continue updating from there

Source code and license

JDroidLibv2 is licensed under the permissive BSD 3-clause license.
The license can be found in the repository.

The source code and partial wiki can be found on GitHub: http://github.com/Beatsleigher/JDroidLibv2
The documentation, once complete, will be available on GitHub in a separate branch.

Using and implementing the library

https://github.com/Beatsleigher/JDroidLibv2/wiki/Getting-Started

/OP

I hope I've been able to spark your interest in my project, and look forward to your collaboration!

Any questions about the library can be asked here, or on GitHub.
I will attempt to answer any and all questions you may have :)
 
Last edited:
Hi Simon. Great project. Are you looking for people to collaborate on the development side of things?
 
Hi Simon. Great project. Are you looking for people to collaborate on the development side of things?

Yes, please and always!
This is a project I'm handling in my own free time, so any help is much appreciated, and I think the more people work on it, the better the project will be.
 
Back
Top Bottom