VSDroid
WinGDB for Mobile Systems

VSDroid (formerly WinGDB for Mobile Systems) is an ongoing project which goal is to provide alternative IDE for Android mobile operating system, based on Microsoft Visual Studio.

VSDroid is a set of plugins for Visual Studio providing functionality for main development phases: project management, build, deploy and debugging. Both Java and native code develoment is supported in each phase. Please see the Features section below for more information.

VSDroid is offered free of charge, on "as-is" basis (no support). Precisely, the package currently has beta status. There are no time or functionality limits.

Development status

Update (2014.03.28): we are proud to announce that the first alpha build of our core technology product, IntegraStudio, has been released for evaluation and testing. You can find it at http://www.softerg.com/integra.

IntegraStudio is a Java development extension for Visual Studio. It is also an important element of the bigger plan, involving (among other things), continuation of VSDroid development. As soon as the final release of IntegraStudio is made (planned as 2014 Q3), VSDroid will receive a huge update including fully-functional Java language support on par with Microsoft-supported languages in Visual Studio. VSDroid will directly benefit from technology developed for IntegraStudio. At the same time, we hope that IntegraStudio sales will allow us to back VSDroid development financially.

This way, all assumptions presented below will be met, and the first stage complete. In spite of some delay, progress is continously being made towards this goal. We wish to thank you, all VSDroid users, for your patience!

Old announcement

VSDroid has been started as additional platform for WinGDB, our Linux/Unix development solution for Visual Studio. It was called WinGDB for Mobile Systems at the time. The decision to begin the work on Android targets were motivated by potential users' requests, as well as contact from certain Google's employees and representatives of some other company, which name can't be revealed due to NDA. All of this encouraged us to take on this ambitious task. The main goal was to provide better native debugging user interface for Android, based on Visual Studio.

Unfortunately, the further course of action led us to major disappointment. Google seemed to lose the interest completely. The "other" company suddenly stopped responding and very quickly released something that were essentially a clone of the product. It seems that they wanted only to "phish" us for some know-how right from the start. Finally, it turned out that the whole thing was not worthwhile. There were much more technical problems than actual people interested in buying the product. Possibly the clone made by the company mentioned above had some influence on this, as it were free. Unstability of Google's NDK at the time greatly enlarged estimated cost of development. There were lots of bugs and regressions in their GDB port, as well as issues on certain hardware.

In order to address these problems, we chose to redefine the whole product with a different set of assumptions. The goal is to make it beneficial to broader range of users, while reducing its dependency on unstable third party components. So the idea of VSDroid has born.

These new assumptions are:

  • The new product shall be free. It is what developers expect. Android app development is not particularly profitable business (as opposed to iOS) and buying extra tools for that is not much viable option for most people. Also, almost all the competing tools are free.
  • The new product shall focus on Java development, not native. Native on Android is only optional and relatively few developers practice it. Those which do, tend to have complex development scenarios with lost of customization (e.g. when porting games from other architectures). They have numerous issues arising just out of complexity of these setups combined with unstability of the toolchains (esp. GDB not working properly with certain binaries or hardware). As a result, the support cost is too high to be covered from mere $100 per license - unless a typical company would buy 50 licenses or more, which was not the case. This business would bring only losses, being inevitably doomed to failure in the end.

    On the other hand, Java is the standard development method for Android, it simply works on any hardware/emulator, has much fewer issues than native and is generally manageable. It also corresponds with overall direction taken by our company, which assumes gradual extension of our offer to Java development tools. We invested a lot in technologies and knowledge related to Java and in the end of 2013 we should be able to release our first product based on that. VSDroid seems to be able to benefit from this effort, even sharing some code.

    All of it does not mean that the former native dev features are being removed. They will stay there, just as they are. If you used WinGDB/MSE for native development, you can continue with VSDroid.

  • VSDroid development will have several phases. In the first phase, it shall impose minimal cost on us, being low priority product only benefitting from technology made for other purposes. However, as said above, it will still improve the product much. We already removed all time limits from the beta installer package. The package will be updated from time to time, when each of the new components is ready.

    In the second phase, after releasing our main new product, we plan to initiate crowdfunding campaign to test whether VSDroid is able to attract some supporters and pay for itself. This would enable implementation of Android-specific features and maybe even improve the native part.

Variants

In order to run VSDroid for Visual Studio, you need any edition of Visual Studio except Express edition (which is not supported due to limitations imposed by Microsoft).

The former WinGDB/MSE for Visual Studio Shell is temporarily unavailable due to lack of time to work on it. If you need this particular edition, please contact us. In case of significant demand, we can allocate some resources to bringing it back.

You can download the installation package using the following link:

VSDroid-0.9-b1790.msi (2013.10.12)

Due to major reworking of the installer architecture in order to make VSDroid installable with regular WinGDB as an idependent product, some bugs/glitches might remain. The build is intended to function just as the previous release. If anything stopped working (and you use same version of SDK/NDK and other components), please let us know.

  • Integration with Visual Studio project management: you can manage your projects and source files in similar way as regular Visual Studio projects.
  • The whole Android project structure described in AndroidManifest.xml file, as well as native subproject structure, are visible in Solution Explorer window. All manifest properties are editable. Components (e.g. activities, services, etc.) may be added/removed. Currently only activities can be debugged.
  • Building the projects with standard NDK-build system. WinGDB works directly with *.mk and *.xml files used by NDK-build, so that it is interoperable with other tools. No conversions are required. In addition, WinGDB adds its own project file (wgaproj) that contains a small amount of its own metadata.
  • Building and deployment of Android packages (APK) by utilising standard Android tools.
  • Debugging applications on an Android emulator (AVD). Both launching activities and attaching to existing ones is supported. Most Visual Studio debug windows and features can be used.
  • Debugging on physical devices. Need not to be rooted. The reference device is the Nexus One. Currently we stated testing also on NVIDIA's development kits Ventana (dual core) and Cardhu (quad core). Since VSDroid uses only standard SDK tools (adb), theoretically any device with suitable drivers should work. However, this is only theory. WinGDB does not guarantee success on any device, because it is a GUI frontend over Google's tools, not interacting directly with devices. Your results may vary.
  • Limited Java support. In current version there is a possibility to edit Java files (with syntax coloring), so that you can fix small bugs, build the project and test the result. An experimental version of Java debugger has also been included in current release. Debugging sessions may be started either for native or Java code. Mixed Java/C++ debugging is a work in progress.
  • Device monitor. A special window allowing to examine the state of connected Android device or emulator. There are mulitple pages, presenting different aspects of the state: running processes, installed packages, CPU information, CPU cores availability, active services, system properties, etc. Many pages have additional options available in a right-click menu, e.g. uninstalling packages, examining detailed process information, killing processes, etc. New pages and options are being added on each release.