Java 使用emulator时的keyDispatchingTimedOut

Java 使用emulator时的keyDispatchingTimedOut,java,android,performance,android-emulator,Java,Android,Performance,Android Emulator,当使用蜂巢模拟器时,会显示以下错误并变得非常缓慢 02-11 02:58:50.949: ERROR/ActivityManager(365): ANR in com.android.launcher (com.android.launcher/com.android.launcher2.Launcher) 02-11 02:58:50.949: ERROR/ActivityManager(365): Reason: keyDispatchingTimedOut 02-11 02:58:50.9

当使用蜂巢模拟器时,会显示以下错误并变得非常缓慢

02-11 02:58:50.949: ERROR/ActivityManager(365): ANR in com.android.launcher (com.android.launcher/com.android.launcher2.Launcher)
02-11 02:58:50.949: ERROR/ActivityManager(365): Reason: keyDispatchingTimedOut
02-11 02:58:50.949: ERROR/ActivityManager(365): Load: 2.57 / 1.18 / 0.89
02-11 02:58:50.949: ERROR/ActivityManager(365): CPU usage from 3042ms to -7585ms ago:
02-11 02:58:50.949: ERROR/ActivityManager(365):   74% 365/system_server: 53% user + 21% kernel / faults: 335 minor
02-11 02:58:50.949: ERROR/ActivityManager(365):   9% 780/zygote: 3.8% user + 5.1% kernel / faults: 915 minor
02-11 02:58:50.949: ERROR/ActivityManager(365):   8.2% 684/com.android.launcher: 6% user + 2.1% kernel / faults: 51 minor
02-11 02:58:50.949: ERROR/ActivityManager(365):   0% 432/zygote: 0% user + 0% kernel / faults: 22 minor
02-11 02:58:50.949: ERROR/ActivityManager(365):   2.4% 41/adbd: 0.3% user + 2% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):   0.4% 546/com.android.systemui: 0.1% user + 0.2% kernel / faults: 11 minor
02-11 02:58:50.949: ERROR/ActivityManager(365):   0.5% 733/logcat: 0% user + 0.5% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):   0% 425/zygote: 0% user + 0% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):   0% 28/servicemanager: 0% user + 0% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365): 100% TOTAL: 65% user + 34% kernel + 0.6% softirq
02-11 02:58:50.949: ERROR/ActivityManager(365): CPU usage from 9680ms to 11220ms later:
02-11 02:58:50.949: ERROR/ActivityManager(365):   70% 365/system_server: 28% user + 42% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):     49% 396/InputDispatcher: 18% user + 30% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):     21% 366/HeapWorker: 8.1% user + 13% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):   26% 78014% user + 11% kernel / faults: 323 minor
02-11 02:58:50.949: ERROR/ActivityManager(365):     20% 780/.ap: 10% user + 10% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):     5.4% 781/HeapWorker: 4.6% user + 0.7% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):   1.3% 41/adbd: 0% user + 1.3% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):     0.6% 41/adbd: 0% user + 0.6% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):     0.6% 65/adbd: 0% user + 0.6% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):   0.7% 684/com.android.launcher: 0.7% user + 0% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):     0.7% 684/ndroid.launcher: 0.7% user + 0% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365):     0.7% 691/Binder Thread #: 0.7% user + 0% kernel
02-11 02:58:50.949: ERROR/ActivityManager(365): 100% TOTAL: 40% user + 58% kernel + 0.6% softirq
这里出了什么问题。我需要什么来解决这个问题?
谢谢

  • 1) 您可能使用了thread.sleep() 在UI线程中。那可不酷 而安卓系统只会启动你的活动

  • 2) 你在你的UI线程中做了一些非常糟糕的计算。用一根绳子或一根线

  • 3) 模拟器有时比手机慢


此错误是因为您的avd运行了很长时间

如果您在UI线程中执行任何复杂任务,您的应用程序将变得非常缓慢。要解决此问题,可以使用

摘自作者的回答


我希望这将对您有所帮助。

这实际上是
ANR(活动无响应)

您的活动需要足够长的时间来执行您提供的任务

下面的链接提供了有关如何通过
线程
强制其响应的信息

您应该在单独的
线程
异步任务


似乎在加载活动时正在进行一些复杂的计算

ANR(活动无响应)

通常,如果
活动
未能告诉android操作系统“我还活着”,则触发ANR。

您需要以异步方式执行。 因此,对于一个实例,如果您想执行一些长时间等待的过程
onClick()


我也面临着同样的问题。。。你找到解决办法了吗
public void onClick(View v) {
  new DownloadImageTask().execute("http://example.com/image.png");// Any time Taking Event.
}

private class DownloadImageTask extends AsyncTask {
     protected Bitmap doInBackground(String... urls) {
         return loadImageFromNetwork(urls[0]);
     }

     protected void onPostExecute(Bitmap result) {
         mImageView.setImageBitmap(result);
     }
 }