21.0.0 * Bug fixes. * JUnit test runner allows a test to be run on all devices * XML code completion can now complete (and show documentation for) theme references, such as ?android:attr/dividerHeight * Improved flag and locale data in the configuration chooser * New lint checks: * Find misspellings in English string files * Detect certain types of wakelock mistakes leading to unnecessary battery usage * Find private key files placed in directories where they end up getting bundled with the .apk * Find usages of "dp" units with the font property textSize * Find invalid selector files where a later state is fully covered by an earlier state and is therefore unreachable * Find incorrect use of the SecureRandom object (where it is initialized with a fixed seed) Various lint infrastructure improvements. 20.0.0 * A lot of bug fixes, performance fixes and memory fixes. * Support for Eclipse 4.x. * Build System * Automatic merging of library project manifest files into the including project's manifest. Enable with the manifestmerger.enabled property. * Automatic ProGuard support for the aapt -G flag. This means that the build system will generate a temporary ProGuard keep-rules file containing classes to keep that are referenced from XML files (such as custom views) and pass this to ProGuard at shrink-time. This can make the resulting APK much smaller when using just a small portion of a large library project (such as the Android Support library), since we have also removed the catch-all rules to keep all custom views from the default ProGuard configuration file. * Aidl files from library projects are now in the import list. * 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. * Lint * Tighter integration with the layout editor (error and warning icons overlaid views with errors, lint error messages shown as tooltips in the layout canvas and in the outline, error count displayed in the layout actions bar.) * Lint is run incrementally in Java files on save, just like XML files already are. * 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 , 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. * Check to make sure that Fragment classes are instantiatable. If you accidentally make a fragment innerclass non-static, or forget to have a default constructor, you can hit runtime errors when the system attempts to reinstantiate your fragment after a configuration change. * Look for handler leaks: This check makes sure that a handler inner class does not hold an implicit reference to its outer class. * Duplicate Activity registrations in the manifest. This can lead to subtle errors that can be difficult to understand. * Lint check ensuring that when you edit() a SharedPreference object you call commit() * Layout Editor * New property sheet implementation, 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. * New window management. The propertysheet is now automatically docked into the Outline view, and the outline can appear in a maximized editor. The structure and palette views can be minimized and appear temporarily on flyover. * New configuration chooser above the layout editor, which in addition to a visual refresh offers an activity chooser, a nested theme chooser, a single button to flip orientation, better wrapping behavior, 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.) * NDK integration (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, just right click and select "Debug As Android Native Application". * Execution * LogCat: Allow users to set colors for different priorities * LogCat: Ctrl + F now brings up a Find dialog to find items (rather than filter) * Allow running on multiple devices with a single launch. The target tab in the launch configuration dialog adds a new option which allows launching on all connected devices, and a drop down allows the user to further narrow down the list to just physical devices or just emulators. (This applies only to Run configurations, not to Debug/JUnit tests.) * XML Editing * Code completion support for custom attributes on custom views. * Go to Declaration now works for theme references (?android:attr, ?attr: etc,) * Completion of the minSdkVersion and targetSdkVersion attributes in manifest files now include version descriptions for each of the API levels * 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. * The Asset Studio Wizard now supports padding and disabling background shapes 19.0.0 (does not exist) 18.0.0 * Fix bug 27940 where exporting release package doesn't recompile libraries in release mode. 17.0.0: * ADT 17 requires Java 6 and Eclipse 3.6.2. * Improved Lint UI. * Many new lint checks: See the tools changes.txt for details. * New "Run Lint" toolbar action with a dropdown menu for selecting specific (or all) projects, clearing results, etc. * The results window is now organized as a tree rather than a flat list. Each issue type has a single top level item, which makes it easier to quickly scan through the reported issues and narrow down to issues you are most interested in. * The results window contains many new toolbar actions, including expand/collapse, ignore in file, ignore in project, ignore everywhere, show options, and configure columns. * There are new columns available, such as category, priority, project, file and line. The column selection (as well as the column sizes) are persisted. You can click on columns to sort by that column. * The Lint Options dialog has Enable All and Disable All buttons, and a search filter textbox to filter by issue id, summary and severity. * New Quick Outline for XML editors (Ctrl-O, Command-O). This shows the structure of the current file including icons and ids, and lets you filter and quickly jump to specific ids. * The resource chooser now shows the resolved value for resources (e.g. when selecting @string/hello it displays that the resolved value is "Hello World"). It also allows editing the chosen value directly. * The layout editor no longer assigns default ids to layouts, includes and merge tags. This tended to pollute the namespace with a lot of unused resources since layouts aren't usually manipulated via code, or referenced from XML. (The RelativeLayout editor automatically assigns ids to views without ids when pointing to them.) * Export Screenshot from the Layout Editor * Layout editor fix for SlidingDrawer which on some platforms could not be dragged into the layout. Also fix preview rendering for SlidingDrawer and TabHost (issue 23022). * New default application icons, including an xhdpi version. * Important bug fixes: * Fix bug in resource chooser which made some types of framework resources impossible to select (issue 20589) * Fix a bug in the formatter where a certain whitespace pattern could result in a non-space character getting deleted (issue 23940) * Fix locale bug affecting Turkish locales in particular (issue 23747) 16.0.0: * New "lint" feature which scans the Android projects for potential problems such as missing translations, duplicate ids between layouts that include each other, using px instead of dp units, hardcoded strings, missing contentDescriptions, obsolete Proguard configuration files, etc. Lint can be run on the command line, but it is also integrated into the Problems view in Eclipse, and there are also quickfixes available for many of the reported errors. 15.0.0 Critical bug fixes only. 14.0.0 - Build system: - (TODO: More info) Improved library projects - Improved incremental builds - Resource compilation is run much less frequently. It is no longer run when strings are edited, or when layouts are edited (unless a new id is introduced), and it is no longer run once per library project (!) - Resource compilation is no longer done for normal save operations, only when running or debugging (option added in ADT 12 now on by default.) - There is a new "PNG crunch cache", which means image crunching is only done once, not once per build which is significant for projects with many resources - Incremental ant builds - ADT now uses bin/classes to output the java compilation and bin/ for Android specific classes. This will make bin show up in the package explorer. - DDMS - Brand new logcat view. Fixes bugs, displays and filters by application names instead of just pids, fronts when application runs. - XML Editing - New XML formatter which formats all XML files according to the standard Android coding style. The formatter can also reorder attributes to follow the recommended order. - Improved "smart indent": automatic indentation and un-indentation when pressing Return in XML editors - Go to Matching (Ctrl-Shift-P) in XML files can now jump between opening and closing tags - Changes made by the layout editor are automatically run through the new XML formatter. - Select Enclosing Element should now work on the Mac as well. - Java Editing - Quickfix for extracting Strings when the caret is inside a String - Layout Editor - New GridLayout support - Tooltip feedback for resizing and dragging operations. For example, when dragging in a relative layout, the proposed constraints are shown, and when resizing the new dimensions are shown. - New "Remove Container" visual refactoring which removes the children of a container up to the top level and transfers namespace and layout attributes if necessary. - Improved access to properties in the context menu: The most frequently set attributes for each view are listed at the top of the menu, and the properties menu offers access to the most recently set attributes, attributes organized by their defining view, and layout attributes only or all attributes alphabetically. - The context menu now also contains pull-right menus for accessing properties of the parents, which is useful when the children fully cover the parent making it hard to select on its own. - Ability to suppress rendering fidelity warnings. - Asset Studio integration: Wizard creation of launcher icons, menu icons, tab icons, etc. - New Welcome Wizard to help installing and configuring the SDK platforms. - The New Project and the New XML File wizards have been reworked into multiple pages. Sample Projects are now copied into the workspace such that they can be modified and deleted without affecting the master copy. - The dependency on Eclipse GEF was removed. - Many bug fixes, and in particular some critical bug fixes on Linux 13.0.0 - Tools release only (command line tools) 12.0.0 (July 6th, 2011) - Many bug fixes! - Visual Layout Editor: - New RelativeLayout drop support with guideline suggestions for attachments and cycle prevention. - Resize support in most layouts. In LinearLayout, sizes are mapped to weights. Guideline snapping to wrap_content and match_parent. - Previews of drawables and colors in the resource chooser dialogs. - Improved error messages and links for rendering errors, including detection of misspellings of class names. - Build system: Delay post compiler phase until actual export or debug to speed up interactive file saves. (This is off by default but can be enabled in the ADT options panel.) 11.0.0 (June 6th, 2011) - Visual Refactoring: - The new "Extract Style" refactoring pulls out style constants and defines them as style rules instead. - The new "Wrap in Container" refactoring surrounds the selected views with a new layout, and transfers namespace and layout parameters to the new parent - The new "Change Widget Type" refactoring changes the type of the selected views to a new type. (Also, a new selection context menu in the visual layout editor makes it easy to select siblings as well as views anywhere in the layout that have the same type). - The new "Change Layout" refactoring changes layouts from one type to another, and can also flatten a layout hierarchy. - The "Extract as Include" refactoring now finds identical fragments in other layouts and offers to combine all into a single include. - There is a new Refactoring Quick Assistant which can be invoked from the XML editor (with Ctrl-1) to apply any of the above refactorings (and Extract String) to the current selection. - Visual Layout Editor: - Improved "rendering fidelity": The layout preview has been improved and should more closely match the rendering on actual devices. - The visual editor now previews ListViews at designtime. By default, a two-line list item is shown, but with a context menu you can pick any arbitrary layout to be used for the list items, and you can also pick the header and footer layouts. - The palette now supports "configurations" where a single view is presented in various different configurations. For example, there is a whole "Textfields" palette category where the EditText view can be dragged in as a password field, an e-mail field, a phone field, and so on. Similarly, TextViews are offered preconfigured with large, normal and small theme sizes, and LinearLayouts are offered both in horizontal and vertical configurations. - The palette supports custom views, picking up any custom implementations of the View class in your project source folders or in included libraries, and these can be dragged into layouts. - Fragments support: Fragments are available in the palette, and in the tool you can choose which layout to show rendered for a given fragment tag. Go to declaration works for fragment classes. - The layout editor automatically applies a "zoom to fit" for newly opened files as well as on device size and orientation changes to ensure that large layouts are always fully visible unless you manually zoom in. - You can drop an "include" tag from the palette, which will pop up a layout chooser, and the chosen layout is added as an include. Similarly, dropping images or image buttons will pop up image resource choosers to initialize the new image with. - The configuration chooser now applies the "Render Target" and "Locale" settings project wide, making it trivial to check the layouts for different languages or render targets without having to configure these individually for each layout. - The layout editor is smarter about picking a default theme to render a layout with, consulting factors like theme registrations in the manifest, the SDK version, etc. - The layout editor is also smarter about picking a default configuration to render a layout with, defaulting to the currently visible configuration in the previous file. It also considers the SDK target to determine whether to default to a tablet or phone screen size. - Basic focus support: The first text field dropped in a layout is assigned focus, and there are "Request Focus" and "Clear Focus" context menu items on text fields to change the focus. - XML editors: - Code completion has been significantly improved. It now works within