title: Deprecated Android drawing cache APIs
body: <p>I was going through the Android documentation, regarding deprecated drawing cache API's.We have extensive use of drawing cache APIs in our codebase. We are using it for snapshot of bitmaps and Views.</p>
  <p><a href="https://developer.android.com/reference/android/view/View#setDrawingCacheEnabled(boolean)" rel="nofollow noreferrer">https://developer.android.com/reference/android/view/View#setDrawingCacheEnabled(boolean)</a>.</p>
  <p>My doubts are mainly focused on points mentioned in the doc.</p>
  <p>Doc says :  &quot;For software-rendered snapshots of a small part of the View hierarchy or individual Views it is recommended to use Canvas approach&quot;</p>
  <ol>
  <li><p>What does &quot;software-rendered snapshots&quot; mean here ?</p>
  </li>
  <li><p>As by default Hardware acceleration is used from Android 4.0 on-wards. So all the views when attached to window would be having isHardwareacclerated() as true. Does &quot;software-rendered snapshots&quot; mean, all the views to which we have disabled Hardware acceleration ?</p>
  </li>
  </ol>
  <p>Doc also says : However these software-rendered usages are discouraged and have compatibility issues with hardware-only rendering features such as Config.HARDWARE bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback reports or unit testing the PixelCopy API is recommended.</p>
  <ol>
  <li><p>Does this mean, we have to use PixelCopy APIs instead of canvas approach?</p>
  </li>
  <li><p>As per my understanding, PixelCopy APIs should be used incase of SurfaceView. Is this wrong ? Is it correct approach to use PixelCopy APIs for all the views ?</p>
  </li>
  </ol>
  <p>Note : Correct me If my understanding is wrong</p>