Goals
There were a few undesirables concerning the workflow of ros-android development stacks that previously prevented it from being used easily (at least in our experience) and being scaled up to include more than Damon's android_core repository. So we set some goals:
- Avoid locally compiling every dependency needed by your project.
- Add stacks to the workspace and compile everything with one call and in the correct sequence (i.e. be aware of inter-stack dependencies).
- Compatible command line and IDE workflows (previously eclipse didn't grok with the command line adt workflow).
The Upgrade
We've now got a good set of tools which solves these. Maven rescues us from wasting time compiling dependencies, catkin provides some minimal structure and sequencing logic for building multiple stacks (repositories). And the biggest leap comes with google's new Android Studio/Android Gradle Plugin releases.
Official Android Stacks
android_core - Damon Kohler's core libraries for android development.
android_extras - various extra functionalities (e.g. hokuyo, qrcodes)
android_apps - development libraries and apps for robot app management (turtlebot)
android_remocons - remote control clients for appable robots (aka old master chooser).
Reflections
The android studio/gradle plugin/.aar's are a huge jump in the way android can be developed. It's now seriously possible to share android libraries, do continuous integration while at the same time keeping a very simple gui based workflow (and studio is quite nice!) for those who just want to focus on building a single simple app. Previously trying to scale up for android development beyond your own personal projects was just too awkward.
Damon's core libraries, though a bit rough around the edges in some places, are a useful start. Do send your contributions in - either via github pull requests, or link us to your android repositories as well. There has been much useful code lost over the last two years because we haven't been able to collect, share and distribute it very easily, but that is now possible.