Android Studio 3.6




Posted by Scott Swarthout, Product Manager



Android Studio logo


We are excited to announce the stable release of Android Studio 3.6 with a targeted set of features addressing quality in primarily code editing and debugging use cases. This is our first release after the end of Project Marble, which was focused on making the fundamental features and flows of the Integrated Development Environment (IDE) rock-solid. We learned a lot from Project Marble and in Android Studio 3.6 we introduce a small set of features, polished existing features, and spent a notable effort addressing bugs and improving underlying performance to ensure we meet the high quality bar we set in the past year.



Some highlights of Android Studio 3.6 include a new way to quickly design, develop and preview app layouts using XML, with a new Split View in the design editors. Additionally, you no longer have to manually type in GPS coordinates to test location with your app because we now embedded Google Maps right into the Android Emulator extended control panel. Finally, we’ve made it easier to optimize your app and find bugs with automatic memory leak detection for Fragments and Activities. We hope all of these features help you be happier and more productive while developing on Android.



Thank you to those who gave your early feedback in preview releases. Your feedback helped us iterate and improve features in Android Studio 3.6. If you are ready for the next stable release, and want to use a new set of productivity features, Android Studio 3.6 is ready to download for you to get started.



Below is a full list of new features in Android Studio 3.6, organized by key developer flows.







Design




Split view in design editors





Design editors, such as the Layout Editor and Navigation Editor, now provide a Split view that enables you to see both the Design and Code views of your UI at the same time. Split view replaces and improves upon the earlier Preview window, and can be configured on a file-by-file basis to preserve context information like zoom factor and design view options, so you can choose the view that works best for each use case. To enable split view, click the Split icon in the top-right corner of the editor window. Learn more.



Split view for design editors


Split view for design editors



Color picker resource tab





In this release we wanted to make it easier to apply colors you have defined as color resources. In Android Studio 3.6, the color picker populates the color resources in your app for you to quickly choose and replace color resources values. The color picker is accessible in the design tools as well as in the XML editor.


Color picker resource tab


Color picker resource tab


Develop




View binding





View binding is a feature that allows you to more easily write code that interacts with views by providing compile-time safety when referencing views in your code. When enabled, view binding generates a binding class for each XML layout file present in that module. In most cases, view binding replaces findViewById. You can reference all views that have an ID with no risk of null pointer or class cast exceptions.These differences mean that incompatibilities between your layout and your code will result in your build failing at compile time rather than at runtime. To enable view binding in your project, include the following in each module’s build.gradle file:





android {
viewBinding.enabled = true
}




For more information, check out this blog post by one of our developer experts.


Android NDK updates





The following Android NDK features in Android Studio, previously supported in Java, are now also supported in Kotlin:




  • Navigate from a JNI declaration to the corresponding implementation function in C/C++. View this mapping by hovering over the C or C++ item marker near the line number in the managed source code file.

  • Automatically create a stub implementation function for a JNI declaration. Define the JNI declaration first and then type “jni” or the method name in the C/C++ file to activate.



Learn more


IntelliJ Platform Update





Android Studio 3.6 includes the IntelliJ 2019.2 platform release. This IntelliJ release includes many improvements from a new services tool window to much improved startup times. Learn more


Add classes with Apply Changes





You can now add a class and then deploy that code change to your running app by clicking either Apply Code Changes or Apply Changes and Restart Activity.



To learn more about the difference between these two actions, see Apply Changes.


Build




Android Gradle Plugin (AGP) updates





Android Gradle plugin 3.6 and higher includes support for the Maven Publish Gradle plugin, which allows you to publish build artifacts to an Apache Maven repository. The Android Gradle plugin creates a component for each build variant artifact in your app or library module that you can use to customize a publication to a Maven repository. This change will make it easier to manage the release lifecycle for your various targets. Learn more



Additionally, Android Gradle plugin has made significant performance improvement for annotation processing/KAPT for large projects. This is caused by AGP now generating R class bytecode directly, instead of .java files.


New packaging tool





The Android build team is continuously working on changes to improve build performance, and in this release we changed the default packaging tool to zipflinger for debug builds. Users should see an improvement in build speed, but you can also revert to using the old packaging tool by setting android.useNewApkCreator=false in your gradle.properties file.



Edit your gradle.properties file to disable the new packaging tool


Edit your gradle.properties file to disable the new packaging tool




Test




Android Emulator - Google Maps UI





Android Emulator 29.2.12 includes a new way for app developers to interface with the emulated device location. We embedded the Google Maps user interface in the extended controls menu to make it easier to specify locations and also to construct routes from pairs of locations. Individual points can be saved and re-sent to the device as the virtual location, while routes can be generated through typing in addresses or clicking two points. These routes can be replayed in real time as locations along the route are sent to the guest OS.


Android Emulator location UI with real-time location streaming


Android Emulator location UI with real-time location streaming


Multi-display support





Emulator 29.1.10 includes preliminary support for multiple virtual displays. As more devices are available that have multiple displays, it is important to test your app on a variety of multi-display configurations. Users can configure multiple displays through the settings menu (Extended Controls > Settings).


Multi-display support in Android Emulator


Multi-display support in Android Emulator



Configure secondary displays in the Android Emulator Extended Controls Panel


Configure secondary displays in the Android Emulator Extended Controls Panel


Resumable SDK downloads





When downloading Android SDK components and tools using the Android Studio SDK Manager, Android Studio now allows you to resume downloads that were interrupted (for example, due to a network issue) instead of restarting the download from the beginning. This enhancement is especially helpful for large downloads, such as the Android Emulator or system images, when internet connectivity is unreliable.


Pause and resume SDK downloads


Pause and resume SDK downloads


In-place updates for imported APKs





Android Studio allows you to import externally-built APKs to debug and profile them. Previously, when changes to those APKs were made, you would have to manually import them again and reattach symbols and sources. Android Studio 3.6 now automatically detects changes made to the imported APK file and gives you an option to re-import it in-place.



Attach Kotlin sources to imported APKs



We added support for attaching Kotlin source files to imported APKs. To learn more, see Attach Kotlin/Java sources.


Attach Kotlin/Java sources to imported APKs


Attach Kotlin/Java sources to imported APKs


Optimize




Leak detection in Memory Profiler





Based on your feedback, we’ve added in the Memory Profiler the ability to detect Activity and Fragment instances which may have leaked. To get started, capture or import a heap dump file in the Memory Profiler, and check the Activity/Fragment Leaks checkbox to generate the results. For more information on how Android Studio detects leaks, please see our documentation.


Detect leaked Activities and Fragments in the Memory Profiler


Detect leaked Activities and Fragments in the Memory Profiler


Deobfuscate class and method bytecode in APK Analyzer





When using the APK Analyzer to inspect DEX files, you can now deobfuscate class and method bytecode. While in the DEX file viewer, load the ProGuard mappings file for the APK you’re analyzing. When loaded, you will be able to right-click on the class or method you want to inspect by selecting Show bytecode. Learn more



Deobfuscate class and method bytecode by selecting Show Bytecode in the APK Analyzer


Deobfuscate class and method bytecode by selecting Show Bytecode in the APK Analyzer



To recap, Android Studio 3.6 includes these new enhancements & features:



Design




  • Split View in Design Editors

  • Color Picker Resource Tab



Develop




  • View binding

  • Android NDK support updates

  • IntelliJ Platform Update

  • Add classes with Apply Changes



Build




  • Android Gradle Plugin (AGP) Updates

  • New packaging tool



Test




  • Android Emulator Google Maps UI

  • Multi-display support

  • Resumable SDK downloads

  • In-place updates for imported APKs



Optimize




  • Leak detection in Memory Profiler

  • Deobfuscate class and method bytecode in APK Analyzer

  • Attach Kotlin sources to imported APKs


Getting Started




Download





Download Android Studio 3.6 from the download page. If you are using a previous release of Android Studio, you can simply update to the latest version of Android Studio. To use the mentioned Android Emulator features make sure you are running at least Android Emulator v29.2.12 downloaded via the Android Studio SDK Manager.



As mentioned above, we appreciate any feedback on things you like, and issues or features you would like to see. If you find a bug or issue, feel free to file an issue. Follow us -- the Android Studio development team ‐ on Twitter and on Medium.

Related Posts

Subscribe Our Newsletter