


  
    
    
    
    
    
    
    
    
      <link rel="stylesheet"/>
      <link rel="stylesheet"/>
      <link rel="stylesheet"/>
      
        <link rel="stylesheet" disabled=""/>
      
    
    
    
  
  
  
    
        

<link rel="stylesheet"/>

<div class="android-app-performance">
  <aside class="key-point">
    <b>Instructions to measure app startup performance </b>
    <ul>
        <li>
            Always test cold startup time.
        </li>
        <li>
            Ensure the app is killed between tests.
        </li>
        <li>
            We recommend one of these methods to calculate performance metrics
            <ul>
                <li>Use the <a href="http://developer.android.com/topic/performance//topic/performance/benchmarking/macrobenchmark-overview">macrobenchmarks</a> for fully automatable and highly accurate results.</li>
                <li>Profile app launch time using <a href="http://developer.android.com/topic/performance/tracing">system tracing</a> for accurate results.</li>
                <li>Manual testing will yield imprecise results that should be refined later.</li>
            </ul>
        </li>
    </ul>
  </aside>
  <aside class="tip">
    <b>Tip:</b> Repeat the measurement for more accurate results. Kill the app between tests.
  </aside>

  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-100 devsite-landing-row-no-image-background devsite-landing-row-padding-medium android-promo">
    <div class="devsite-landing-row-group">
      <div class="devsite-landing-row-item">
        <div class="devsite-landing-row-item-description">
          <div class="devsite-landing-row-item-body">
            <div class="devsite-landing-row-item-labels">
              <span class="">Startup performance</span>
            </div>
            <h3 class="hide-from-toc no-link">
              Measure app startup time from the launcher
            </h3>
            <div class="devsite-landing-row-item-description-content">
              <ol>
                <li>Open the app from the launcher icon</li>
                <li>Measure the time it takes for the app to become interactive</li>
              </ol>
            </div>
            <div class="devsite-landing-row-item-buttons">
              
                

<div>
  <devsite-select id="app-startup-launcher">
      <select id="app-startup-launcher-select">
          <option selected="">Make an assessment</option>
          
            <option id="0">Slower than 5 seconds (0 points)</option>
          
            <option id="5">Between 5 and 4 seconds (5 points)</option>
          
            <option id="10">Between 4 and 3 seconds (10 points)</option>
          
            <option id="20">Between 3 and 2 seconds (20 points)</option>
          
            <option id="25">Between 2 and 1 seconds (25 points)</option>
          
            <option id="30">Less than 1 second (30 points)</option>
          
      </select>
  </devsite-select>
  <devsite-filter>
      <table class="assessment-table">
          <thead>
              <tr>
                  <th>Evaluation</th>
                  <th>Recommendation</th>
              </tr>
          </thead>
          <tbody class="list">
              
              <tr>
                  <td class="hide">
                      <div>Slower than 5 seconds (0 points)</div>
                  </td>
                  <td>
                      <b>Extremely slow app startup</b>
                      <p>
                      App startup this slow can trigger <a href="http://developer.android.com/topic/performance/vitals/anr">ANR</a> in some scenarios. Even without ANR, users can be very frustrated by startup times in this range which negatively impacts user satisfaction, retention and business metrics.
                  </p></td>
                  <td>
                      <b>Urgently invest engineering resources to improve this application&#39;s startup time.</b>
                      <p>
                      The biggest app startup improvement potential can be realized by adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>. Adopt these technologies and retake the assessment.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Between 5 and 4 seconds (5 points)</div>
                  </td>
                  <td>
                      <b>Very slow app startup</b>
                      <p>
                      Users likely find waiting for this app to start up frustrating. Faster app startup is directly related to improved business and user satisfaction metrics.
                  </p></td>
                  <td>
                      <b>Treat app startup as high priority and immediately invest engineering time in this area.</b>
                      <p>
                      Adopt <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>, then retake the assessment for an updated score. If you already adopted these, follow the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a> for other ways to improve app startup times.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Between 4 and 3 seconds (10 points)</div>
                  </td>
                  <td>
                      <b>Slow app startup</b>
                      <p>
                      Users of this app will notice a delay in startup time. Faster app startup improves user driven metrics such as retention and ratings.
                  </p></td>
                  <td>
                      <b>Invest engineering resources to continue driving down app startup times.</b>
                      <p>
                      If you haven&#39;t yet, adopt <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>, then retake the assessment for an updated score. Check out the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a> for other ways to improve app startup times.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Between 3 and 2 seconds (20 points)</div>
                  </td>
                  <td>
                      <b>App startup time below user expectations</b>
                      <p>
                      Many users will find app startup time in this range acceptable but not meeting their quality expectations. Faster app startup is directly related to improved business metrics. Look into further improving the app startup time.
                  </p></td>
                  <td>
                      <b>Start or continue investing engineering resources into app startup.</b>
                      <p>
                      Make use of <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a> to improve app startup and runtime performance by a big margin. If you already adopted these, follow the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a> for other ways to improve app startup times.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Between 2 and 1 seconds (25 points)</div>
                  </td>
                  <td>
                      <b>Satisfying app startup time</b>
                      <p>
                      Users likely are satisfied with this app&#39;s startup time. While there is still room for improving in this area, it&#39;s not urgent to take action.
                  </p></td>
                  <td>
                      <b>Adopt high impact tools, then focus on other performance areas.</b>
                      <p>
                      Monitor app startup times closely and make sure they don&#39;t regress. You can use <a href="http://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview">macrobenchmarks</a> to achieve this. <br/> Schedule integration of <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, code optimizations via <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a> as these are the biggest impact tools to improve app startup time. <br/> Also check out the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a> for other ways to improve app startup times. Take this evaluation on a low-spec device (such as an <a href="http://developer.android.com/guide/topics/androidgo">Android Go</a> device) to get a better understanding of app startup time on these devices.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Less than 1 second (30 points)</div>
                  </td>
                  <td>
                      <b>Above expectations app startup time.</b>
                      <p>
                      This app startup time is so fast, many users won&#39;t even notice it. Well done!
                  </p></td>
                  <td>
                      <b>Keep up the brilliant work. Continue monitoring app startup time and react to regressions immediately.</b>
                      <p>
                      To further improve app startup times, check out the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a>. Adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a> impacts not only app startup time but also runtime performance. If you haven&#39;t done so, schedule time to adopt them. <br/> Take this evaluation on a low-spec device to get a better understanding of the app startup time for these devices.
                  </p></td>
              </tr>
              
          </tbody>
      </table>
  </devsite-filter>
</div>
              
            </div>
          </div>
        </div>
      </div>
      <div class="devsite-landing-row-item">
        <div class="devsite-landing-row-item-description">
          <div class="devsite-landing-row-item-body">
            <div class="devsite-landing-row-item-labels">
              <span class="">Startup performance</span>
            </div>
            <h3 class="hide-from-toc no-link">
              Measure app startup time from a notification
            </h3>
            <div class="devsite-landing-row-item-description-content">
              <ol>
                <li>Trigger a notification for the app</li>
                <li>Open the app from the notification</li>
                <li>Measure the time it takes for the app to become interactive</li>
              </ol>
            </div>
            <div class="devsite-landing-row-item-buttons">
              
                

<div>
  <devsite-select id="app-startup-notification">
      <select id="app-startup-notification-select">
          <option selected="">Make an assessment</option>
          
            <option id="0">Slower than 5 seconds (0 points)</option>
          
            <option id="2">Between 5 and 4 seconds (2 points)</option>
          
            <option id="5">Between 4 and 3 seconds (5 points)</option>
          
            <option id="10">Between 3 and 2 seconds (10 points)</option>
          
            <option id="15">Between 2 and 1 seconds (15 points)</option>
          
            <option id="20">Less than 1 second (20 points)</option>
          
            <option id="20">No notification entry point (20 points)</option>
          
      </select>
  </devsite-select>
  <devsite-filter>
      <table class="assessment-table">
          <thead>
              <tr>
                  <th>Evaluation</th>
                  <th>Recommendation</th>
              </tr>
          </thead>
          <tbody class="list">
              
              <tr>
                  <td class="hide">
                      <div>Slower than 5 seconds (0 points)</div>
                  </td>
                  <td>
                      <b>Extremely slow app startup</b>
                      <p>
                      App startup this slow can trigger <a href="http://developer.android.com/topic/performance/vitals/anr">ANR</a> in some scenarios. Even without ANR users can be very frustrated by startup times in this range which negatively impacts user satisfaction, retention and business metrics.
                  </p></td>
                  <td>
                      <b>Treat this notification entry point as high priority and immediately invest engineering time in this area.</b>
                      <p>
                      The biggest app startup improvement potential can be realized by adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>. Adopt these technologies and retake the assessment.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Between 5 and 4 seconds (2 points)</div>
                  </td>
                  <td>
                      <b>Very slow app startup</b>
                      <p>
                      Users likely find this delay in app startup time frustrating. Faster app startup is directly related to improved business and user satisfaction metrics.
                  </p></td>
                  <td>
                      <b>Urgently invest engineering resources to improve this startup time.</b>
                      <p>
                      Adopt <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>, then retake the assessment for an updated score. If you already adopted these, follow the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a> for other ways to improve app startup times.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Between 4 and 3 seconds (5 points)</div>
                  </td>
                  <td>
                      <b>Slow app startup</b>
                      <p>
                      Users of this app will notice a delay in startup time. Faster app startup improves user driven metrics such as retention and ratings.
                  </p></td>
                  <td>
                      <b>Invest engineering resources to continue driving down app startup times.</b>
                      <p>
                      If you haven&#39;t yet, adopt <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a> for this notification, optimizations via <a href="http://developer.android.com/build/shrink-code">R8</a> and incldue the relevant code in a <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Startup Profile via Dex Layout Optimizations</a>, then retake the assessment for an updated score. Check out the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a> for other ways to improve app startup times.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Between 3 and 2 seconds (10 points)</div>
                  </td>
                  <td>
                      <b>App startup time below user expectations</b>
                      <p>
                      Many users will find app startup time in this range acceptable but not meeting their quality expectations. Faster app startup is directly related to improved business metrics. Look into further improving the app startup time.
                  </p></td>
                  <td>
                      <b>Start or continue investing engineering resources into this entry point.</b>
                      <p>
                      Make use of <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a> to improve app startup and runtime performance by a big margin. If you already adopted these, follow the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a> for other ways to improve app startup times.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Between 2 and 1 seconds (15 points)</div>
                  </td>
                  <td>
                      <b>Satisfying app startup time</b>
                      <p>
                      Users likely are satisfied with this app&#39;s startup time. While there is still room for improving in this area, it&#39;s not urgent to take action.
                  </p></td>
                  <td>
                      <b>Adopt high impact tools, then focus on other performance areas.</b>
                      <p>
                      Monitor app startup times closely and make sure they don&#39;t regress. You can use <a href="http://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview">macrobenchmarks</a> to achieve this. <br/> Schedule integration of <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, code optimizations via <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a> as these are the biggest impact tools to improve app startup time. <br/> Also check out the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a> for other ways to improve app startup times. Take this evaluation on a low-spec device to get a better understanding of app startup time on these devices.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Less than 1 second (20 points)</div>
                  </td>
                  <td>
                      <b>Above expectations app startup time.</b>
                      <p>
                      This app startup time is so fast, many users won&#39;t even notice it. Well done!
                  </p></td>
                  <td>
                      <b>Keep up the brilliant work with your app&#39;s startup time. Continue monitoring app startup time and react to regressions immediately.</b>
                      <p>
                      To further improve app startup times, check out the <a href="http://developer.android.com/topic/performance/appstartup/analysis-optimization">app startup guidance</a>. Adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a> impacts not only app startup time but also runtime performance. If you haven&#39;t done so, schedule time to adopt them. <br/> Take this evaluation on a low-spec device to get a better understanding of the app startup time for these devices.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>No notification entry point (20 points)</div>
                  </td>
                  <td>
                      <b>Nothing to do here</b>
                      <p>
                      This app does not use notifications as entry points. So there is nothing to optimize here.
                  </p></td>
                  <td>
                      <b>Take this assessment again when notifications are being used</b>
                      <p>
                      In the meantime, check out other areas of app performance to improve.
                  </p></td>
              </tr>
              
          </tbody>
      </table>
  </devsite-filter>
</div>
              
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>
  <hr/>
  <aside class="key-point">
    <b>Instructions to measure rendering performance:</b>
    <ul>
        <li>
            Only measure by feel if you don&#39;t have any other tools at hand.
        </li>
        <li>
          Use <a href="http://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview">macrobenchmarks</a> for fully automatable and highly accurate results.
        </li>
        <li>
            Use the <a href="http://developer.android.com/topic/performance/rendering/inspect-gpu-rendering">HWUI layer</a> to see slow and frozen frames highlighted on screen.
        </li>
        <li>
            Profile rendering time using <a href="http://developer.android.com/topic/performance/tracing">system tracing</a> for accurate results.
        </li>
    </ul>
  </aside>

  <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-100 devsite-landing-row-no-image-background devsite-landing-row-padding-medium android-promo">
    <div class="devsite-landing-row-group">
      <div class="devsite-landing-row-item">
        <div class="devsite-landing-row-item-description">
          <div class="devsite-landing-row-item-body">
            <div class="devsite-landing-row-item-labels">
              <span class="">Rendering performance</span>
            </div>
            <h3 class="hide-from-toc no-link">
              Measure animation and scroll rendering
            </h3>
            <div class="devsite-landing-row-item-description-content">
              <ol>
                <li>Open the app and navigate to the target screen</li>
                <li>Perform a few interactions such as scrolling and clicking</li>
                <li>Measure the percentage of slow and frozen frames during these interactions</li>
              </ol>
            </div>
            <div class="devsite-landing-row-item-buttons">
              
                

<div>
  <devsite-select id="rendering-animation-scroll">
      <select id="rendering-animation-scroll-select">
          <option selected="">Make an assessment</option>
          
            <option id="0">Frequent ANR block interactions and animations (ANR or &gt; 20 %) (0 points)</option>
          
            <option id="1">Animations block user interaction (20 - 15 %) (1 points)</option>
          
            <option id="5">Noticeable animation issues throughout (15 - 10 %) (5 points)</option>
          
            <option id="10">Noticeable animation issues in a few areas (5 - 10 %) (10 points)</option>
          
            <option id="20">Mostly smooth rendering (1 - 5 %) (20 points)</option>
          
            <option id="30">Smooth rendering throughout (&lt; 1 %) (30 points)</option>
          
      </select>
  </devsite-select>
  <devsite-filter>
      <table class="assessment-table">
          <thead>
              <tr>
                  <th>Evaluation</th>
                  <th>Recommendation</th>
              </tr>
          </thead>
          <tbody class="list">
              
              <tr>
                  <td class="hide">
                      <div>Frequent ANR block interactions and animations (ANR or &gt; 20 %) (0 points)</div>
                  </td>
                  <td>
                      <b>Unbearable rendering experience</b>
                      <p>
                      A user experience at this level of performance is very frustrating to users. Low user satisfaction is directly linked to lower business performance, retention and user ratings.
                  </p></td>
                  <td>
                      <b>Urgenty adopt high impact tools.</b>
                      <p>
                      Immediately schedule adoption of high impact tools such as <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>. Then retake the assessment. <br/> Afterwards you can check out the follow the <a href="http://developer.android.com/topic/performance/overview">app performance guidance</a> for other ways to improve rendering performance.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Animations block user interaction (20 - 15 %) (1 points)</div>
                  </td>
                  <td>
                      <b>Frame drops are highly noticeable</b>
                      <p>
                      Highly noticeable frame drops result in lower app ratings and less than optimal retention rates. <a href="http://developer.android.com/topic/performance/tracing/on-device">Collect traces</a> to inspect hot spots for slow frames and work your way through the list.
                  </p></td>
                  <td>
                      <b>Adopt high impact tools to improve rendering performance.</b>
                      <p>
                      The biggest improvement potential can be realized by adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>. Adopt these technologies and retake the assessment. <br/> For further help, follow the follow the <a href="http://developer.android.com/topic/performance/overview">app performance guidance</a>.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Noticeable animation issues throughout (15 - 10 %) (5 points)</div>
                  </td>
                  <td>
                      <b>Below average rendering performance</b>
                      <p>
                      The rendering issues surfaced are noticeable to users. This will lead to lower than optimal user satisfaction and ratings as well as business impact. If this was tested on a high end device, noticeable slow frames will be unbearable on a low end device.
                  </p></td>
                  <td>
                      <b>Improve rendering performance by adopting high impact tools.</b>
                      <p>
                      The biggest improvement potential can be realized by adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>. Adopt these technologies and retake the assessment. <br/> For further help, follow the follow the <a href="http://developer.android.com/topic/performance/overview">app performance guidance</a>.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Noticeable animation issues in a few areas (5 - 10 %) (10 points)</div>
                  </td>
                  <td>
                      <b>Rendering issues are a noticeable source of user frustration.</b>
                      <p>
                      A few slow frames are all it takes to disappoint user&#39;s quality expectations. Unsatisfied users are more likely abandon apps.
                  </p></td>
                  <td>
                      <b>Drive down rendering issues by adopting high impact tools.</b>
                      <p>
                      Invest in improving this area to positively impact user ratings and business metrics. The biggest improvement potential can be realized by adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>. Adopt these technologies and retake the assessment. <br/> For further help, follow the follow the <a href="http://developer.android.com/topic/performance/overview">app performance guidance</a>.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Mostly smooth rendering (1 - 5 %) (20 points)</div>
                  </td>
                  <td>
                      <b>Smooth rendering is a great user experience.</b>
                      <p>
                      Since there are still some slow frames, users might notice them. Regardless, this is a great user experience, especially on low end devices.
                  </p></td>
                  <td>
                      <b>Continue driving down rendering issues to further improve user satisfaction.</b>
                      <p>
                      Improving gets more challenging at this level. Continue driving down rendering issues to further improve user satisfaction. Ensure that there are no regressions and collect automated benchmarks for your most used devices and user journeys. <br/> Test on low end devices and fix problems there. When it&#39;s good there, it&#39;ll be great on a high end device. <br/> Invest in adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>. Adopt these technologies and retake the assessment. <br/> For further help, follow the follow the <a href="http://developer.android.com/topic/performance/overview">app performance guidance</a>.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Smooth rendering throughout (&lt; 1 %) (30 points)</div>
                  </td>
                  <td>
                      <b>Brilliant rendering performance.</b>
                      <p>
                      Congratulations! This app&#39;s rendering performance is great. There is no immediate need for action. Consider taking the evaluation on a low end device to get a better understanding of the rendering performance on these devices.
                  </p></td>
                  <td>
                      <b>This area looks great, no immediate need for action.</b>
                      <p>
                      Improving gets more challenging at this level. Continue driving down rendering issues to further improve user satisfaction. Ensure that there are no regressions and collect automated benchmarks for your most used devices and user journeys. <br/> Test on low end devices and fix problems there. When it&#39;s good there, it&#39;ll be great on a high end device. <br/> Invest in adopting <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a>, <a href="http://developer.android.com/build/shrink-code">R8</a> and <a href="http://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations">Dex Layout Optimizations</a>. Adopt these technologies and retake the assessment. <br/> For further help, follow the follow the <a href="http://developer.android.com/topic/performance/overview">app performance guidance</a>.
                  </p></td>
              </tr>
              
          </tbody>
      </table>
  </devsite-filter>
</div>
              
            </div>
          </div>
        </div>
      </div>
      <div class="devsite-landing-row-item">
        <div class="devsite-landing-row-item-description">
          <div class="devsite-landing-row-item-body">
            <div class="devsite-landing-row-item-labels">
              <span class="">Rendering performance</span>
            </div>
            <h3 class="hide-from-toc no-link">
              Measure full screen rendering issues
            </h3>
            <div class="devsite-landing-row-item-description-content">
              <ol>
                <li>Open the app and navigate to the target screen</li>
                <li>Measure how long it takes for the screen to be fully rendered and become interactive</li>
              </ol>
            </div>
            <div class="devsite-landing-row-item-buttons">
              
                

<div>
  <devsite-select id="rendering-fullscreen">
      <select id="rendering-fullscreen-select">
          <option selected="">Make an assessment</option>
          
            <option id="0">Extremely noticeable (&gt; 3 second) (0 points)</option>
          
            <option id="1">Very noticeable (1 to 3 seconds) (1 points)</option>
          
            <option id="5">Noticeable (500ms to 1 second) (5 points)</option>
          
            <option id="10">Slightly noticeable (100 to 500 ms) (10 points)</option>
          
            <option id="15">Almost not noticeable (100 to 50 ms) (15 points)</option>
          
            <option id="20">Not noticeable (less than 50 ms) (20 points)</option>
          
      </select>
  </devsite-select>
  <devsite-filter>
      <table class="assessment-table">
          <thead>
              <tr>
                  <th>Evaluation</th>
                  <th>Recommendation</th>
              </tr>
          </thead>
          <tbody class="list">
              
              <tr>
                  <td class="hide">
                      <div>Extremely noticeable (&gt; 3 second) (0 points)</div>
                  </td>
                  <td>
                      <b>Full screen renders should be smooth. This one is not.</b>
                      <p>
                      Keeping an app responsive is key for a great user experience. Waiting for multiple seconds after an interaction is frustrating to users. This is a great opportunity to improve user satisfaction and business metrics.
                  </p></td>
                  <td>
                      <b>Urgently invest in improving this full screen render.</b>
                      <p>
                      Make sure to generate a <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profile</a> for this full screen render and check that <a href="http://developer.android.com/build/shrink-code">R8</a> optimizations are enabled here. These areas are most impactful to improving app performance. Then come back to take another assessment for more guidance.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Very noticeable (1 to 3 seconds) (1 points)</div>
                  </td>
                  <td>
                      <b>Slower than optimal response time.</b>
                      <p>
                      Full screen renders that are responding to user interactions should be as fast as possible. Slower than optimal rendering results in lower app ratings and is a source of user frustration. As developer your focus should be to improve user satisfaction. This is a great opportunity to improve user satisfaction and business metrics.
                  </p></td>
                  <td>
                      <b>Invest engineering efforts to improve this full screen render.</b>
                      <p>
                      Make sure to generate a <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profile</a> for this full screen render and check that <a href="http://developer.android.com/build/shrink-code">R8</a> optimizations are enabled here. These areas are most impactful to improving app performance. You can also collect <a href="http://developer.android.com/topic/performance/tracing">system traces</a> to inspect hot spots for slow frames and work your way through the list. Then come back to take another assessment for more guidance.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Noticeable (500ms to 1 second) (5 points)</div>
                  </td>
                  <td>
                      <b>This full screen render is on the slow side.</b>
                      <p>
                      Continue improving performance of this transition for a better score! Noticeable slow frames on a high end device will be unbearable on a low end device.
                  </p></td>
                  <td>
                      <b>Continue investing engineering time to improve this transition.</b>
                      <p>
                      Test on low end devices and fix problems there. When it&#39;s good there, it&#39;ll be great on a high end device. Make sure to generate a <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profile</a> for this full screen render and check that <a href="http://developer.android.com/build/shrink-code">R8</a> optimizations are enabled here. These areas are most impactful to improving app performance. To get more information for this specific render, you can also collect <a href="http://developer.android.com/topic/performance/tracing">system traces</a> to inspect hot spots for slow frames and work your way through the list. Then come back to take another assessment for more guidance.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Slightly noticeable (100 to 500 ms) (10 points)</div>
                  </td>
                  <td>
                      <b>This almost looks well polished</b>
                      <p>
                      Check if this full screen render can be improved. While a single slow full screen render is not overly dramatic, ensure that this is not a systemic issue which is impacting user satisfaction negatively. A few slow frames are all it takes to disappoint user&#39;s quality expectations.
                  </p></td>
                  <td>
                      <b>Investigate this full screen render to see if it can be improved.</b>
                      <p>
                      Use <a href="http://developer.android.com/topic/performance/tracing">system traces</a> to inspect hot spots for slow frames and work your way through the list. Collecting and evaluating these can also be automated with the <a href="http://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview">macrobenchmark library</a> <br/>If you havent, adopt <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a> and <a href="http://developer.android.com/build/shrink-code">R8 optimizations</a>.<br/>Test on low end devices and fix problems there. When it&#39;s good there, it&#39;ll be great on a high end device.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Almost not noticeable (100 to 50 ms) (15 points)</div>
                  </td>
                  <td>
                      <b>This full screen render is almost perfect.</b>
                      <p>
                      Some power users still might notice transitions taking up to 100 milliseconds. This is a great result. Make sure to also test on low end devices to ensure that users aren&#39;t impacted by this transition.
                  </p></td>
                  <td>
                      <b>Ensure users are happy and look for other areas to improve.</b>
                      <p>
                      This full screen render result is almost perfect. Most users will be very happy with this performance. Make sure that this is also the case on low end devices.<br/>If you want to improve further, look into <a href="http://developer.android.com/topic/performance/baselineprofiles">Baseline Profiles</a> and <a href="http://developer.android.com/build/shrink-code">R8 optimizations</a>. <br/> Also check out the <a href="http://developer.android.com/topic/performance/overview">app performance guidance</a> for more information on rendering performance.
                  </p></td>
              </tr>
              
              <tr>
                  <td class="hide">
                      <div>Not noticeable (less than 50 ms) (20 points)</div>
                  </td>
                  <td>
                      <b>This is a stellar result.</b>
                      <p>
                      Less than 50 milliseconds for a full screen render is remarkable and a great user experience. While you might still be able to improve this, at this point you&#39;re looking at marginal gains.
                  </p></td>
                  <td>
                      <b>Keep up the stellar performance.</b>
                      <p>
                      Look for app performance improvements in other areas. Continue monitoring to catch regressions early on. You can automate monitoring and catch regressions by using the the <a href="http://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview">macrobenchmark library</a>.
                  </p></td>
              </tr>
              
          </tbody>
      </table>
  </devsite-filter>
</div>
              
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>

  <section class="devsite-landing-row devsite-landing-row-1-up android-illustrated-resources-secondary-small">
    <div class="devsite-landing-row-group">
      <div id="dynamicPerfScoreCard" class="devsite-landing-row-item devsite-landing-row-item-no-media">
        <div class="devsite-landing-row-item-description">
          <div class="devsite-landing-row-item-icon-container" size="small">
            <picture>
              <source class="devsite-landing-row-item-icon devsite-dark-theme" alt="" media="(prefers-color-scheme: none)" srcset="http://developer.android.com/static/images/picto-icons/lightning_dt.svg" sizes="128px" loading="lazy"/>
                <img class="devsite-landing-row-item-icon" align="left" alt="" src="http://developer.android.com/static/images/picto-icons/lightning.svg" sizes="128px" loading="lazy"/>
            </picture>
          </div>
          <div class="devsite-landing-row-item-body">
            <h2 class="hide-from-toc no-link score">
              <b id="dynamicPerfScore">0 out of 100 points</b>
            </h2>
            <div class="devsite-landing-row-item-description-content">
              Dynamic App Performance Score
            </div>
          </div>
        </div>
      </div>
      <p id="dynamicPerfAnswers" class="answers">(0/4 questions answered)</p>
    </div>
  </section>

  
</div>
    
  
