title: What is the difference between a crash and freeze?
body: <p>I took a look in the developer's console and saw for the first time a freeze report rather than a crash. A crash is easy to define the breaking point from the stack trace. It normally led to a class/method being incorrectly defined or implemented. </p>
  
  <p>However I have never encountered a freeze. Since Google made the effort to make the distinction in the dev console, what is the distinction? </p>
  
  <p>From a general point of view obviously a crash is a force close. But does a freeze simply slow down the user experience without a force close? What are the technical differences? Is there a different method to address a freeze when compared to a crash?</p>
  
  <p>Edit: added example stack traces.</p>
  
  <p>Here is an example of a <strong>Crash</strong> The stack trace is very specific pointing to a line of failure.</p>
  
  <pre><code>android.view.InflateException: Binary XML file line #21: Error inflating class android.widget.ZoomControls
  at android.view.LayoutInflater.createView(LayoutInflater.java:518)
  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
  at android.view.LayoutInflater.inflate(LayoutInflater.java:383)
  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
  at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
  at android.widget.ZoomButtonsController.createContainer(ZoomButtonsController.java:262)
  at android.widget.ZoomButtonsController.&lt;init&gt;(ZoomButtonsController.java:211)
  at android.webkit.WebView.getZoomButtonsController(WebView.java:6313)
  at android.webkit.WebView.startDrag(WebView.java:5700)
  at android.webkit.WebView.onTouchEvent(WebView.java:5428)
  at android.view.View.dispatchTouchEvent(View.java:3885)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
  </code></pre>
  
  <p>Here is an example <strong>Freeze</strong> the stack trace is less specific not pointing to a direct line or activity at fault. </p>
  
  <pre><code>DALVIK THREADS:
  (mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)
  "main" prio=5 tid=1 NATIVE
    | group="main" sCount=1 dsCount=0 obj=0x40027550 self=0xcfc0
    | sysTid=2076 nice=0 sched=0/0 cgrp=bg_non_interactive handle=-1345006240
    | schedstat=( 30958526727 7780212297 24174 )
    at android.graphics.Bitmap.nativeCreateScaledBitmap(Native Method)
    at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:556)
    at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:722)
    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:478)
    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
    at android.content.res.Resources.loadDrawable(Resources.java:1727)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
    at android.view.View.&lt;init&gt;(View.java:1998)
    at android.widget.TextView.&lt;init&gt;(TextView.java:389)
  
  
       at android.widget.Button.&lt;init&gt;(Button.java:108)
        at android.widget.Button.&lt;init&gt;(Button.java:104)
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
    at android.view.LayoutInflater.createView(LayoutInflater.java:505)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:224)
    at android.app.Activity.setContentView(Activity.java:1702)
    at com.e3h.usmcknowledge.MainActivity.onCreate(MainActivity.java:37)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3242)
    at android.app.ActivityThread.access$1600(ActivityThread.java:132)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1037)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:143)
    at android.app.ActivityThread.main(ActivityThread.java:4196)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    at dalvik.system.NativeStart.main(Native Method)
  </code></pre>