Saturday, June 19, 2010

New version of Droid Explorer – 0.8.6.0

screenshot

A new build of Droid Explorer is available for download

There are a lot of fixes / changes to this build, here is a list of them

  • fixed missing file in the standalone installer
  • added check for minimum .net framework version in to bootstrapper (v3.5sp1)
  • increased the service start/stop timeout in the bootstrapper from 30 seconds to 60 seconds
  • removed initial strings from download panel labels of bootstrapper
  • htc desire / bravo icon added for attached devices - thanks to beadza for identifying the device
  • added ability to only install the SDK Tools by running install with /sdk switch
  • sdk install mode checks if DE is installed, if not, it switches to full install mode
  • bart plugin now also checks the sd-ext mount point for the license.
  • added the sd-ext app paths as valid application paths
  • added sd-ext app paths to the application backup plugin
  • removed anda.pk plugin as the site is dead.
  • screencast plugin changed to pull the jnlp file directly from the trunk of the project. If there is an error, it falls back to a "local" file
  • fixed issues with spaces in folder names
  • motorola backflip icon added for attached devices - thanks to zibiza for identifying the device
  • new screenshot app that handles all resolutions. Uses new methods to get the framebuffer data
  • adjusted the RGB565 class to better handle other devices for screenshots
  • started to implement communicating with adb over TCP like ddms does. – This will wind up being part of the Managed Android Debug Bridge.
  • acer liquid icon added for attached devices - thanks to fyodor0218 for identifying the device
  • started working on the ability to use existing sdk (not yet an option, but soon)

One of the biggest changes is the communicating with adb over TCP. I started to port the code that the ddmslib uses to directly communicate with adb. This is done over a TCP socket. The current reason for this was specifically for the screenshot plugin. Previous versions only took screenshots of devices that had a screen resolution of 320x480. It, like all the other screenshot applications for android pulled the data from the framebuffer located at /dev/graphics/fb0. The problem with pulling this file with adb pull /dev/graphics/fb0 ./fb0 is the framebuffer contains 2+ frames of data because android implements double buffering. So to display 1 image, applications pull down data for 2+ images. This takes some time to perform, not to mention the time it takes to then render the image from the data. Also a problem is you have to know the screen resolution of the device your reading the buffer for, otherwise you will end up with a garbled image.

Using the TCP method eliminates these problems. First, it only sends one frame of data, so we are not pulling extra, unused bytes, so it speeds up the transfer time. It also sends back the screen resolution of the image, plus other information like the bpp, argb lengths and offsets.

My plan is to move everything that Droid Explorer uses the adb.exe commands for over to TCP eventually. The SDK is still required to be on the machine, but it gives more control to Droid Explorer, and in this case, speeds things up.

No comments:

Post a Comment

New version of Droid Explorer – 0.8.6.0

screenshot

A new build of Droid Explorer is available for download

There are a lot of fixes / changes to this build, here is a list of them

  • fixed missing file in the standalone installer
  • added check for minimum .net framework version in to bootstrapper (v3.5sp1)
  • increased the service start/stop timeout in the bootstrapper from 30 seconds to 60 seconds
  • removed initial strings from download panel labels of bootstrapper
  • htc desire / bravo icon added for attached devices - thanks to beadza for identifying the device
  • added ability to only install the SDK Tools by running install with /sdk switch
  • sdk install mode checks if DE is installed, if not, it switches to full install mode
  • bart plugin now also checks the sd-ext mount point for the license.
  • added the sd-ext app paths as valid application paths
  • added sd-ext app paths to the application backup plugin
  • removed anda.pk plugin as the site is dead.
  • screencast plugin changed to pull the jnlp file directly from the trunk of the project. If there is an error, it falls back to a "local" file
  • fixed issues with spaces in folder names
  • motorola backflip icon added for attached devices - thanks to zibiza for identifying the device
  • new screenshot app that handles all resolutions. Uses new methods to get the framebuffer data
  • adjusted the RGB565 class to better handle other devices for screenshots
  • started to implement communicating with adb over TCP like ddms does. – This will wind up being part of the Managed Android Debug Bridge.
  • acer liquid icon added for attached devices - thanks to fyodor0218 for identifying the device
  • started working on the ability to use existing sdk (not yet an option, but soon)

One of the biggest changes is the communicating with adb over TCP. I started to port the code that the ddmslib uses to directly communicate with adb. This is done over a TCP socket. The current reason for this was specifically for the screenshot plugin. Previous versions only took screenshots of devices that had a screen resolution of 320x480. It, like all the other screenshot applications for android pulled the data from the framebuffer located at /dev/graphics/fb0. The problem with pulling this file with adb pull /dev/graphics/fb0 ./fb0 is the framebuffer contains 2+ frames of data because android implements double buffering. So to display 1 image, applications pull down data for 2+ images. This takes some time to perform, not to mention the time it takes to then render the image from the data. Also a problem is you have to know the screen resolution of the device your reading the buffer for, otherwise you will end up with a garbled image.

Using the TCP method eliminates these problems. First, it only sends one frame of data, so we are not pulling extra, unused bytes, so it speeds up the transfer time. It also sends back the screen resolution of the image, plus other information like the bpp, argb lengths and offsets.

My plan is to move everything that Droid Explorer uses the adb.exe commands for over to TCP eventually. The SDK is still required to be on the machine, but it gives more control to Droid Explorer, and in this case, speeds things up.