Showing posts with label androidstudio. Show all posts
Showing posts with label androidstudio. Show all posts

Monday, 14 January 2019

Android Studio 3.3





Posted by Jamal Eason, Product Manager




We are excited to kick off the new year with a stable release of Android Studio 3.3 focused on refinement and quality. You can download it today from developer.android.com/studio. Based on the feedback from many of you, we have taken a step back from large features to focus on our quality fundamentals. The goal is to ensure Android Studio continues to help you stay productive in making great apps for Android. Since the last stable release, Android Studio 3.3 addresses over 200 user- reported bugs. This release also includes official support for Navigation Editor, improved incremental Java compilation when using annotation processors, C++ code lint inspections, an updated new project wizard, and usability fixes for each of the performance profilers. In addition, saving snapshots on exit for the Android emulator is 8x faster.



Android Studio 3.3 kicks off the broader quality focus area for the year, which we call Project Marble. Announced at the Android Developer Summit in November 2018, Project Marble is the Android Studio team's focus on making the fundamental features and flows of the Integrated Development Environment (IDE) rock-solid, along with refining and polishing the user-facing features that matter to you in your day-to-day app development workflows. In Project Marble, we are specifically looking at reducing the number of crashes, hangs, memory leaks, and user-impacting bugs. We are also investing in our measurement infrastructure to prevent these issues from occurring. Stay tuned for more updates and details as we progress on this initiative.



This release of Android Studio is a solid milestone for the product. If you want the latest in feature refinement and quality, then download Android Studio 3.3 today on the stable release channel. Watch and read below for some of the notable changes and enhancements that you will find in Android Studio 3.3.



Develop





  • Navigation Editor - The navigation editor is a visual editor which allows you to construct XML resources that support using the new Jetpack Navigation Component. With the Navigation Editor and the Navigation Component, you can build predictable interactions between the screens and content areas of your app. This editor was previewed in an earlier Android Studio release, but based on your feedback we held this feature to improve the quality of the feature. Thank you to the developers who gave us feedback. Learn more.



Navigation Editor



  • IntelliJ Platform Update - Android Studio 3.3 includes Intellij 2018.2.2. This is a significant platform release from Jetbrains, with new previews for the code editor, updated icons, MacBook Touch Bar support, plus enhanced version control integrations. Learn more.



  • Kotlin Update - This release of Android Studio bundles Kotlin 1.3.11, with support for Kotlin coroutines and contracts plus IDE support for the recommend Kotlin coding style. Learn more.

  • Clang-Tidy Support for C++ - Android Studio now has support for Clang-Tidy for C++ static code analysis. Similar to the current lint support for Java and Kotlin in Android Studio, Clang-Tidy helps those who have C++ in their Android app identify common coding errors and bugs. Enable the inspection by going to SettingsEditorInspections (Preference → EditorInspections for MacOS) . Learn more.






Clang-Tidy Code Inspection Settings



  • New Project Wizard update - To support the range of device types, programming languages, and new frameworks, we have updated the New Project Wizard for Android Studio. You can access the same project templates in a more streamlined user experience.




New Project Wizard



  • Delete Unused IDE Directories - To help you upgrade to the newest version of Android Studio, we have added a new feature to help clean up unused settings & cache directories. Past versions of Android Studio left these old directories that were hard to find and remove on your hard drive. When you first run Android Studio 3.3 and higher, the new dialog suggests directories that you can safely remove from past installations of Android Studio.




Delete Unused Directories Dialogue



  • IDE User Feedback - To help us to create a better product, we have started to include in-product sentiment buttons for quick feedback. For those who opt-in to sharing usage data, feel free to click on the icon that suits your sentiment while using Android Studio. To opt-in to give in-product feedback go to SettingsAppearance & BehaviorSystem SettingsData Sharing ( PreferencesAppearance & BehaviorSystem SettingsData Sharing for MacOS).




IDE User Feedback


Build





  • Improved incremental Java compilation when using annotation processor - This update decreases build time by improving support for incremental Java compilation when using annotation processors. The optimization requires Android Gradle plugin 3.3.0 or higher. Learn more.



  • Lazy task configuration - The plugin uses Gradle's new task creation API to avoid initializing and configuring tasks that are not required to complete the current build (or tasks not on the execution task graph). For example, if you have multiple build variants, such as "release" and "debug" build variants, and you're building the "debug" version of your app, the plugin avoids initializing and configuring tasks for the "release" version of your app. Learn more.



  • Single-variant project sync - Along with build speed, project sync speed can be a development bottleneck to for those who have large app projects with multiple build variants. In this version of the IDE, you can you can limit syncing to only the active build variant. In order for this optimization to work, your project needs to use Android Gradle plugin 3.3.0 or higher. You can enable this option under the Experimental preferences in Android Studio 3.3.




Single-Variant Project Sync



  • Android App Bundles now support Instant Apps - You can now build and deploy Google Play Instant experiences from a single Android Studio project, and include them in a single Android App Bundle. Launched last year, the Android App Bundle is the new standard Android app publishing format that you can build with Android Studio. This update streamlines and unifies the build artifacts that you upload to Google Play. Learn more.


Test





  • Multiple Emulator AVD instances - Android Emulator 28.0 now supports the ability to launch multiple instances of the same Android Virtual Device (AVD). Each instance of the AVD uses a minimal set of system resources. For those developers with continuous integration (CI) testing environments, this can be a convenient way to run tests in parallel off one AVD configuration. On the command line run the following commands:


    $./emulator -avd <avdname> -read-only &
    $./emulator -avd <avdname> -read-only &



    Android Emulator: Multiple AVD Launch



  • Android 9 Pie Emulator System Images & Wi-Fi P2P - Alongside Android Studio 3.3, you can also download Android 9 system images for your emulator for your app testing. The Google Play emulator system images not only passe the official Android Compatibility Test Suite (CTS), they also include support for Peer-to-Peer Wi-Fi direct connections between two emulators. To start using this feature, launch the emulator (v28.0.22 or higher) via the command line and ensure the two emulators share the same Wi-Fi server and client port command line arguments.


    $./emulator @<server-avd-name> -wifi-server-port 9999
    $./emulator @<client-avd-name> -wifi-client-port 9999



    Android Emulator: Wi-Fi P2P Setup




  • Emulator Snapshot Save Speed - We have heard from you that you enjoy using snapshots and quickboot, but felt the time taken to close the emulator and Quickboot save a snapshot was slow. To solve this, we optimized the way snapshots are saved and managed, using a mapped file to save guest RAM. From aggregate metrics, we found that this optimization led to driving down the average quickboot save time from the last stable version to now from 27 seconds down to 3 seconds — a 8x improvement. Learn more about this enhancement and other recent improvements to the emulator here.



Optimize





  • Profiler performance improvements - Based on your feedback, we have dramatically improved Android Studio performance while using the profilers in this release. We've seen improvements on average of 2x in frame rates in our local tests. Please continue to provide feedback, especially if you continue to see performance issues.


  • Memory Profiler allocation tracking options - In previous releases, we have heard from you that, in some cases, your app performs significantly worse while profiling with the default settings. To address this, we have changed the default Memory Profiler capture mode on Android 8.0 Oreo (API level 26) and higher devices to sample for allocations periodically. You can adjust this setting in the Allocation Tracking dropdown menu. By default, we also now temporarily turn off allocation tracking during CPU recordings to minimize the impact on recording results. Learn more.




Memory Profiler: Allocation Tracking Options



  • Network Profiler formatted text - The Network profiler in Android Studio 3.3 now formats common text types found in network payloads by default, including HTML, XML and JSON. You can toggle between formatted and raw text by navigating to either the Response or Request tab, and click on the View Parsed / View Source link. Learn more.




Network Profiler: Formatted Text



  • CPU Profiler frame rendering data - The CPU Profiler now shows you the render time for each frame on the main UI thread and Render Thread when you record with Trace System Calls. If you are trying to investigate and understand the bottlenecks or the source of UI jank in your app, this data can come in handy to see where you can improve your app performance. Learn more.




CPU Profiler: Frame Rendering Data



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



Develop



  • Navigation Editor
  • IntelliJ 2018.2.2 Platform Update
  • Kotlin 1.3.11 Update
  • Clang-Tidy Support for C++
  • New Project Wizard update
  • Delete Unused IDE Directories
  • IDE User Feedback



Build



  • Improved incremental Java compilation when using annotation processors
  • Lazy task configuration:
  • Single-variant project sync
  • Android App Bundles now supports Instant Apps



Test



  • Multiple Emulator AVD instance Launch
  • Android 9 Pie - Emulator System Images
  • Emulator Snapshot Save Speed Improvement



Optimize



  • Profiler Performance Improvements
  • Memory Profiler: Allocation Tracking Options
  • Network Profiler: Formatted Text
  • CPU Profiler: Frame Rendering Data



Check out the Android Studio release notes, Android Gradle plugin release notes, and the Android Emulator release notes for more details.


Getting Started





Download



Download the latest version of Android Studio 3.3 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 as well. If you want to maintain a stable version of Android Studio, you can run the stable release version and canary release versions of Android Studio at the same time. Learn more.



To use the mentioned Android Emulator features make sure you are running at least Android Emulator v28.0.22 downloaded via the Android Studio SDK Manager.



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.

Tuesday, 8 May 2018

Android Studio 3.2 Canary

Today at Google I/O 2018 we announced the latest preview of Android Studio 3.2 which includes an exciting set of features that support the Android P Developer Preview, the new Android App Bundle, and Android Jetpack. Download Android Studio 3.2 from our canary release channel today to explore one of the most feature rich releases of the year.

Android Jetpack is a set of libraries, developer tools and architectural guidance to help make it quick and easy to build great Android apps. It provides common infrastructure code so you can focus on what makes your app unique. Android Studio 3.2 includes a wide set of tools that support Jetpack from a visual Navigation Editor that uses the Navigation API, templates for Android Slices APIs, to refactoring tools to migrate to the new Android support libraries in Jetpack — AndroidX.

The canary 14 release of Android Studio 3.2 also supports the new Android app model that is the evolution of the APK format, the Android App Bundle. With no code changes, Android Studio 3.2 will help you create a new Android App Bundle and have it ready for publishing on Google Play.

There are 20 major features in this release of Android Studio spanning from ultra fast Android Emulator Snapshots, Sample Data in the Layout Editor, to a brand new Energy Profiler to measure battery impact of your app. If any of these features sound interesting, download the preview of Android Studio 3.2 today.

To see these features demoed in action and to get a sneak peak at other features we are working on, check out the Google I/O 2018 session - What's new in Android Development Tools.

What’s new in Android Development Tools - Google I/O 2018



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

Develop

  • Navigation Editor - As a part of Jetpack, Android Studio 3.2 features a new way to design the navigational structure between the screens of your app. The navigation editor is a visual editor which allows you to construct XML resources that support using the new Navigation Component in Jetpack.

Navigation Editor




  • AndroidX Refactoring Support - One of the components of Jetpack is rethinking and refactoring the Android Support Libraries to a new Android extension library (AndroidX) namespace. As a part of the early preview of the AndroidX, Android Studio 3.2 helps you through this migration with a new refactoring action. To use the feature, navigate to: RefactorRefactor to AndroidX. As an additional enhancement to the refactoring process, if you have any maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system will automatically convert those project dependencies as well. You can manually control the conversion process by toggling the android.enableJetifier = true flag in your gradle.properties file. While the refactoring action supports common project configurations, we recommend that you save a backup of your project before you refactor. Learn more.

AndroidX Refactoring Support




  • Sample Data - Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. Sample Data in the Layout Editor allows you to use placeholder data to aid in the design of your app. From RecyclerView, ImageView to TextView, you can add built-in sample data to populate these views via a popup-window in the Layout Editor. To try out the feature, add a RecyclerView to a new layout, and then click on the new tools design-time attributes icon and choose a selection out of the carousel of sample data templates.

Design Time Sample Data




  • Material Design Update - Material Design continues to evolve not only as a design system but also in implementation on Android. When you start migrating from the Android Design support library to the new MaterialComponents app theme and library, Android Studio 3.2 will offer you access to new and updated widgets such as BottomAppBar, buttons, cards, text fields, new font styles and more. Learn more.

New Material Design Components




  • Slices support - Slices is a new way to embed portions of your app content in other user interface surfaces in the Android operating system. Slices is backwards compatible to Android 4.4 KitKat (API 19) and will enable you to surface app content in Google Search suggestions. Android Studio 3.2 has a built in template to help you extend your app with the new Slice Provider APIs as well as new lint checks to ensure that you're following best practices when constructing the slices. To get started right-click on a project folder, and navigate to NewOtherSlice Provider. Learn how to test your slice interactions by checking out the getting started guide.

Slices Provider Template




  • CMakeList Editing Support - Android Studio supports CMake build scripts for your app's C/C++ code. With this release of Android Studio 3.2, code completion and syntax highlighting now works on common CMakeList commands.

CMakeList Code Completion




  • What's New Assistant - Android Studio 3.2 has a new assistant panel that opens automatically after an update to inform you about the latest changes to the IDE. You can also open the panel by navigating to Help → What's New in Android Studio.

What's New Assistant




  • IntelliJ Platform Update - Android Studio 3.2 includes the IntelliJ 2018.1 platform release, which has many new features such as data flow analysis, partial Git commits support, and a ton of new code analysis enhancements. Learn more.



Build

  • Android App Bundle- The Android App Bundle is the new app publishing format designed to help you deliver smaller APKs to your users. Google Play has a new Dynamic Delivery platform that accepts your Android App Bundle, and delivers only the APKs that you need on a specific device. Android Studio 3.2 enables you to create and test an Android App Bundle. As long as you are running the latest Android Gradle plugin (com.android.tools.build:gradle:3.2.0-alpha14), you can rebuild your code as an app bundle and get the benefit of smaller APKs based on language, screen density, and ABIs with no changes to your app code. To get started, navigate to Build Build Bundle / APK or BuildGenerate Signed Bundle / APK Learn more.

Build Android App Bundle




  • D8 Desugaring - In some cases, new Java Language features require new bytecodes and language APIs, however older Android devices may not support these features. Desugaring allows you to use these features on older devices by replacing new bytecodes and language APIs with older ones during the build process. Desugaring was initially introduced with Android Studio 3.0 as a separate tool, and in Android Studio 3.1, we integrated the desugaring step into the D8 tool as an experimental feature, reducing overall build time. Now D8 desugaring is turned on by default for Android Studio 3.2. You can you can now use most of the latest language changes while targeting older devices.

  • R8 Optimizer - During the app build process, Android Studio historically used ProGuard to optimize and shrink Java language bytecode. Starting with Android Studio 3.2, we are starting the transition to use R8 as a replacement to ProGuard. To experiment with R8, add android.enableR8=true to your gradle.properties file. R8 is still experimental, so we do not recommend publishing your app using R8 yet. Learn more.

Enable R8 in Android Studio



Test

  • Emulator Snapshots - With Quickboot in the Android Emulator we enabled you to launch the emulator in under 6 seconds. With Android Studio 3.2 we have extended this feature to enable you to create snapshots at any emulator state and start them iun under 2 seconds. When testing and developing your app, you can pre-configure an Android Virtual Device (AVD) snapshot with the presets, apps, data and settings that you want in-place, and repeatedly go back to the same snapshot. Snapshots load in under 2 seconds and you can launch to specific snapshots from the Android Emulator Extended Controls panel, the command-line ( ./adb emu avd snapshot load snap_2018-04-29_00-01-12 ) or from within Android Studio.

Android Emulator Snapshots




  • Screen Record in Android Emulator - Normally creating a screen recording of your app screen would only work for Android 4.4 KitKat (API 19) and above with no audio, with limited Android Emulator support. With the latest Android Emulator (v27.3+), you can take screen recordings on any API level with audio. Plus, there is a built-in conversion to output to GIF and WebM. You can trigger the new screen record feature via the Android Emulator Extended Controls panel, command line ( ./adb emu screenrecord start --time-limit 10 /sample_video.webm ), and from Android Studio.

Screen record in Android Emulator




  • Virtual Scene Camera for Android Emulator - Developing and testing apps with ARCore is now even easier with the new Virtual Scene camera, which allows you to iterate on your augmented reality (AR) experience within a virtual environment. The emulator is calibrated to work with ARCore APIs for AR apps and allows you to inject virtual scene bitmap images. The virtual scene camera can also be used as a regular HAL3 compatible camera. Open the built-in Android camera app inside the Android Emulator to get started. By default, the new virtual scene camera is the rear camera for new Android Virtual Devices created with Android Studio 3.2. Learn more.

Virtual Scene Camera in Android Emulator




  • ADB Connection Assistant - To help troubleshoot your Android device connections via ADB, Android Studio 3.2 has a new assistant. The ADB Connection Assistant walks you through common troubleshooting steps to connect your Android device to your development machine. You can trigger the assistant from the Run Dialogue box or by navigating to ToolsConnection Assistant .

ADB Connection Assistant




Optimize

  • Energy Profiler - Battery life is a key concern for many phone users, and your app may impact battery life more than you realize. The new Energy Profiler in the performance profiler suite can help you understand the energy impact of your app on an Android device. You can now visualize the estimated energy usage of system components, plus inspect background events that may contribute to battery drain. To use the energy profiler, ensure you are connected to an Android device or emulator running Android 8.0 Oreo (API 26) or higher. Learn more.

Energy Profiler

  • System Trace - The new System Trace feature in the CPU Profiler allows you to inspect how your app interacts with system resources in fine-grained detail. Inspect exact timings and durations of your thread states, visualize where your CPU bottlenecks are across all cores, and add custom trace events to analyze. To use system trace, start profiling your app, click into the CPU Profiler, and then choose the System Trace recording configuration. Learn more.

System Trace

  • Profiler Sessions - We now automatically save Profiler data as "sessions" to revisit and inspect later while you have Android Studio open. We've also added the ability to import and export your CPU recordings and heap dumps for later analysis or inspection with other tools.

Profiler Sessions




  • Automatic CPU Recording - You can now automatically record CPU activity using the Debug API. After you deploy your app to a device, the profiler automatically starts recording CPU activity when your app calls startMethodTracing(String tracePath), and stops recording when your app calls stopMethodTracing(). Similarly, you can also now automatically start recording CPU activity on app start-up by enabling this option in your run configuration.

  • JNI Reference Tracking - For those of you who have C/C++ code in your Android app, Android Studio 3.2 now allows you to inspect the memory allocations of your JNI code in the Memory Profiler. As long as you deploy your app to a device running Android 8.0 Oreo (API 26) and higher, you can drill down into the allocation call stack from your JNI reference. To use the feature, start a memory profiler session, and select the JNI Heap from the Live Allocation drop-down menu.

JNI Reference Tracking

To recap, the latest canary of Android Studio 3.2 includes these new major features:











Develop
  • Navigation Editor

  • AndroidX Refactoring

  • Sample Data

  • Material Design Update

  • Android Slices

  • CMakeList editing

  • What's New Assistant

  • New Lint Checks

  • Intellij Platform Update




Build

  • Android App Bundle

  • D8 Desugaring

  • R8 Optimizer




Test
  • Android Emulator Snapshots

  • Screen Record in Android Emulator

  • Virtual Scene Android Emulator Camera

  • ADB Connection Assistant




Optimize

  • Energy Profiler

  • System Trace

  • Profiler Sessions

  • Automatic CPU Recording

  • JNI Reference Tracking




Check out the preview release notes for more details.

Getting Started

Download

Download the latest version of Android Studio 3.2 from the canary channel download page. If you are using a previous canary release of Android Studio, make sure you update to Android Studio Canary 14 or higher. If you want to maintain a stable version of Android Studio, you can run the stable release version and canary release versions of Android Studio at the same time. Learn more.

To use the mentioned Android Emulator features make sure you are running at least Android Emulator v27.3+ downloaded via the Android Studio SDK Manager.

We appreciate any early feedback on things you like, and issues or features you would like to see. Please note, to ensure we maintain product quality, the features you see in the canary channel may not be available in the next stable release channel until they are ready for stable usage. If you find a bug or issue, feel free to file an issue. Connect with us -- the Android Studio development team ‐ on our Google+ page or on Twitter.