As an Android developer, I like to keep tabs on the tools I use every day, especially ones as important as ADT for Eclipse and SDK Tools. As was the case several times before, the Android team in charge of both of them posted previews of upcoming releases of ADT 20 and SDK Tools r20, available for manual download ahead of the final releases.

Yup, you heard me correctly - 20, not 18 or 19. Even though the previous major release was 17, 18 followed up shortly after with some minor changes, and 19, even more minor, wasn't even posted to the downloads page (see here for the reason). The problem is SDK Tools point releases are currently not supported, so even for small fixes, the team has to rev up SDK Tools to the next major version and keep ADT's version in sync to avoid confusion. They're working on adding point release support to SDK Tools, but until that's in place, we have situations like this one, with 17 -> 20 in a matter of weeks.

What's New

So, what's new in ADT 20? Quite a bit, actually.

The most exciting feature is, undoubtedly, a brand new Property Editor, which left quite a lot to be desired in the past. I frequently reported bugs in it to the team, and I'm absolutely ecstatic to see it receive a full rewrite:

propertysheet1 propertysheet2 propertysheet4

Another notable new feature in ADT 20 is NDK support for building and debugging, currently being introduced as alpha. Game and high performance app developers are probably popping champagne right about now.

As I mentioned in the title, ADT 20 also brings improved performance - for example, SDK data should load 30% faster in this release.

For the rest of the changes, check out the full changelog below:

  • A lot of bug fixes, particularly in the Lint area.
  • Performance and memory fixes (loading SDK data should be 30% faster.)
  • A few new lint rules:
    • Detect usages of Toast.makeText() without calling show() on the result, as well as passing invalid duration parameters (e.g. a number instead of one of the two allowed constants.)
    • Detect incorrect manifest registrations (where elements such as <uses-library>, <activity> etc are placed under the wrong parent.)
    • Several security checks: Look for exported content providers without required permissions, look for creation of world readable files and preferences, look for calls to  android.webkit.WebSettings.setJavaScriptEnabled.
  • New property sheet in the layout editor which offers:
    • Highlighting (in bold) for important attributes.
    • Inline preview of colors and images, as well as the corresponding resource name.
    • Displays default values, when available.
    • Completion of resource values and enum and flag constants.
    • Support for showing and hiding "advanced" properties.
    • Nested properties (and collapse all and expand all) for better categorization. For example, layout params are listed first as a single nested property.
    • Tooltips over the attribute names, not values, so they never obscure the value column.
    • Checkbox support for boolean values.
    • Support for switching between alphabetical and natural sort orders.
    • NOTE: This feature is still in development, and in particular the window management is being improved. For now you may want to drag the property sheet window over and dock it below the outline, since it looks better as a tall window than Eclipse's default wide window configuration for the property sheet.
    • More details here.
  • Support XML editor outlines for layout files.
    • Switching back and forth between the text editor and graphical editor will alternate between the two outlines, and in particular the XML editor outline will keep up to date with edits in the editor, and selection will follow the mouse cursor etc.
  • SDK Manager:
    • Cache to avoid downloading repository definitions all the time.
    • New "Tools > Manage Add-on Sites" option that allows deactivating 3rd party sites (e.g. if one or more are temporarily slow to load.)
  • Fixes in Ant:
    • Test projects now have access to the full classpath from the tested projects, including Library Projects and 3rd party jar
    • Applications embedding tests can now be deployed and tested, including with code coverage, like test applications.
  • NDK support (alpha):
    • Initial support for building and debugging projects with C/C++ code.
    • To enable this, install the NDK feature (depends on CDT), and then set the path to NDK in Android Preferences.
    • Add NDK nature to an Android project by right clicking on the project and select "Android Tools -> Add Native Support".
    • To debug an NDK project, create a new debug configuration of type "Android Native Application".


While you can't use the SDK Manager to automatically upgrade to preview releases, you can still give them a go by installing them manually - just head over to the ADT 20 preview page and scroll down to Installation.

Source: Android Tools site