<?xml version="1.0"?>
<!--
  ~ Copyright (C) 2018 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<tutorialBundle
    name="Test What's New from Server"
    logo="core/whats_new_logo.png"
    resourceRoot="/"
    stepByStep="false"
    hideStepIndex="true"
    version="3.3.10">
  <feature
      name="What's New in 3.3">
    <tutorial
        key="whats-new"
        label=" What's New in 3.3"
        icon="stable/whats_new_icon.png"
        remoteLink="https://d.android.com/r/studio-ui/whats-new-assistant/canary-release-notes.html"
        remoteLinkLabel="Read in a browser">
      <description>
        <![CDATA[
          This panel describes some of the new features and behavior changes
          included in this update.

          <br><br>
          To open this panel again later, select <b>Help &gt; What's New in Android Studio</b>
          from the main menu.
          ]]>
      </description>
      <step label="Navigation Editor">
        <stepElement>
          <section>
            <![CDATA[
          <br>
          <img src="https://d.android.com/studio/releases/assistant/3.2.0/jetpack-overview.gif"
          width="428"
          height="241"
          alt="A visual editor in Android Studio helps you manage your apps runtime navigation actions.">

           <br><br>
           A visual editor for the XML resource that the new Navigation Architecture Component uses to
           handle navigation actions at runtime.
           <a href="https://d.android.com/topic/libraries/architecture/navigation/navigation-implementing?utm_source=android-studio&utm_medium=studio-assistant">
           Learn more</a>
           ]]>
          </section>
        </stepElement>
      </step>
      <step label="Instant apps in app bundles">
        <stepElement>
          <section>
            <![CDATA[
           You can now build <a href="https://d.android.com/r/studio-wna/aab-overview">Android App Bundles</a> with full support for
           <a href="https://d.android.com/r/studio-wna/instant-app">Instant Apps</a>. In other words, you can now build and deploy both
           installed app and Instant App experiences from a single Android Studio project, and include them in a single Android App Bundle.
           <a href="https://d.android.com/r/studio-wna/3.3.0/new-psd">
           Learn more</a>
           ]]>
          </section>
        </stepElement>
      </step>
      <step label="Optimize Project Sync">
        <stepElement>
          <section>
            <![CDATA[
           For projects that configure multiple build variants, you can now optimize project syncs to run only on the build variant you
           currently have selected.

           <br><br>
           If the IDE doesn't prompt you to enable this optimization, enable it manually by navigating to
           <b>Settings/Preferences &gt; Experimental &gt; Gradle</b> and checking the box next to <b>Only resolve selected variants</b>.
           <a href="https://d.android.com/studio/preview/features?utm_source=android-studio&utm_medium=studio-assistant#single_variant_sync">
           Learn more</a>
           ]]>
          </section>
        </stepElement>
      </step>
      <step label="Profiler updates">
        <stepElement>
          <section>
            <![CDATA[
           In addition to performance and UI improvements, the Android Studio Profiler includes the following updates.
            <br><br>
            <b>Select memory allocation collection rate:</b>
            To improve app performance while profiling, you can select the rate of data collection for live memory allocation tracking
            when deploying to devices running API level 26 or higher.
            <a href="https://d.android.com/r/studio-wna/3.3.0/sampling_rate_dropdown">
            Learn more</a>
            <br><br>
            <img src="https://d.android.com/studio/releases/assistant/3.3.0/sampling_rate_dropdown.png"
                 width="428"
                 height="120"
                 alt="A new dropdown menu in the memory profiler lets you select the rate of data collection .">

            <br><br>
            <b>Inspect frames:</b>
            When you <b>Trace System Calls</b> with the CPU profiler, you can inspect data about how the system rendered each frame to
            identify bottlenecks that cause UI jank and skipped frames.
            <a href="https://d.android.com/r/studio-wna/3.3.0/system_trace_frames">
            Learn more</a>
            <br><br>
            <img src="https://d.android.com/studio/releases/assistant/3.3.0/cpu_frames.png"
                 width="428"
                 height="240"
                 alt="A new frames region in the CPU profiler timeline helps you identify frames that are slow to render.">
            <br><br>
           ]]>
          </section>
        </stepElement>
      </step>
      <step label="Build system updates">
        <stepElement>
          <section>
            <![CDATA[
           The Android Gradle plugin 3.3.0 requires Gradle 4.10 and higher, and includes the following updates:
           <br><br>
           <ul>
            <li><b>Improved classpath dependency synchronization:</b>
            <br>
            When resolving dependencies on your runtime and compile time classpaths, the plugin attempts to automatically fix certain
            downstream version conflicts for dependencies that appear across multiple classpaths.
            <a href="https://d.android.com/r/studio-wna/3.3.0/classpath-sync">
            Learn more</a>
            </li>
            <li><b>Lazy task configuration:</b>
            The plugin now uses Gradle’s
            <a href="https://docs.gradle.org/current/userguide/task_configuration_avoidance.html#sec:old_vs_new_configuration_api_overview">
            new task configuration API</a>, which speeds up the configuration phase by not creating and configuring tasks that are not going
            to be executed.
            <a href="https://d.android.com/r/studio-wna/3.3.0/lazy-task-configuration">
            Learn more</a>
            </li>
            <li><b>Improved incremental Java compilation when using annotation processors:</b>
            Faster build times by improving support for incremental Java compilation when using annotation processors.
            <a href="https://d.android.com/r/studio-wna/3.3.0/incremental-javac">
            Learn more</a>
            </li>
            <li><b>Better debug info for obsolete API:</b>
            When the plugin detects that you're using API that's no longer supported, it
            can now provide more detailed information to help you determine where that API is being
            used. To see the additional info, you need to include the following in your
            project's <code>gradle.properties</code> file.
            <a href="https://d.android.com/r/studio-wna/3.3.0/obsolete_api">
            Learn more</a>

            <br><br>
            <div style="border: solid gray 1px; padding-left: 10px;">
            <pre>android.debug.obsoleteApi=true</pre>
            </div>
            </li>
           </ul>
           ]]>
          </section>
        </stepElement>
      </step>
      <step label="Improved C/C++ support">
        <stepElement>
          <section>
            <![CDATA[
           Projects that include C/C++ code can benefit from the following improvements:
           <br><br>
           <ul>
            <li><b>Support for Clang-Tidy:</b> Android Studio now includes support for static code analysis using
            <a href="http://clang.llvm.org/extra/clang-tidy/">Clang-Tidy</a>. To enable this feature,
            <a href="https://d.android.com/ndk/guides/#download-ndk">update your NDK</a> to r18 or higher.
            <a href="https://d.android.com/r/studio-wna/3.3.0/clang-tidy">
            Learn more</a>
            </li>
            <li><b>Updated CMake version:</b>
            CMake 3.10.2 is now available from the SDK Manager, and you can tell Gradle to use it by including the following
            in your module's <code>build.gradle</code> file.
            <a href="https://d.android.com/r/studio-wna/3.3.0/cmake_version">
            Learn more</a>

            <br><br>
            <div style="border: solid gray 1px; padding-left: 10px;">
            <pre>android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version "3.10.2"
        }
    }
}</pre>
            </div>
           </ul>
           ]]>
          </section>
        </stepElement>
      </step>
      <step label="Preview R8">
        <stepElement>
          <section>
            <![CDATA[
            Preview R8, a new code shrinker that also obfuscates, by adding the line below to your project’s
            <code>gradle.properties</code> file.

            <br><br>
            <div style="border: solid gray 1px; padding-left: 10px;">
            <pre>android.enableR8 = true</pre>
            </div>
           ]]>
          </section>
        </stepElement>
      </step>
      <step label="Provide quick feedback">
        <stepElement>
          <section>
            <![CDATA[
           If you've already opted into sharing usage statistics to help improve Android Studio, you'll see these two new icons in the
           status bar at the bottom of the IDE window:
           <img src="https://d.android.com/studio/images/buttons/statusbar-feedback_buttons-dark.png" width="40" height="16">

           <br><br>
           Simply click the icon that best represents your current experience with the IDE. When you do so, the IDE sends usage statistics
           that allows the Android Studio team to better understand your sentiment.
           <a href="https://d.android.com/r/studio-wna/3.3.0/feedback-buttons">
           Learn more</a>

          <br><br><hr><br>
          <em>Last updated 11/14/2018</em>
          <br><br>
           ]]>
          </section>
        </stepElement>
      </step>
    </tutorial>
  </feature>
</tutorialBundle>