我正在开发一个应用程序,其功能与Facebook Android原生应用程序非常相似:社交网络,大多数时候用户将花费在无尽的ListView显示批量图像,进入图像库等等.
让我们说讨论我正在做所有正确的事情和最好的Android实践来实现平滑滚动(应该回收视图,在需要时使用不同的视图类型,加载到内存只需要大小的缩放位图,缓存位图,使用ViewHolder设计模式,在可能的情况下不阻塞UI线程等等......)
让我们说我的应用程序中的其他所有内容都以最佳方式编写并遵循最佳实践(讨论......: - >)
我的应用程序工作不坏在那个阶段,但在硬件加速转弯时,如所描述并承诺在Android开发者文档, 它使我的应用程序很多很多更加顺畅,快捷.
让我们说它不会像在任何不支持的操作中那样在UI上以任何负面的方式影响
根据Google关于这个主题的文档,只有我能看到不使用此功能的原因(除了上面提到的所有其他原因)之外,它可能会导致我的应用程序使用更多内存.但是RAM多少钱?多很多?我知道当我的应用程序消耗大量的RAM时 - 当它需要释放一些内存时,它会被操作系统摧毁.
我的问题基本上是 -
TIA
我继续收到此错误报告
Fatal Exception: java.lang.IllegalStateException
eglMakeCurrent failed EGL_BAD_ALLOC
android.view.HardwareRenderer$GlRenderer.createSurface
Run Code Online (Sandbox Code Playgroud)
在我在Play商店的应用程序上.导致此次崩溃的原因是什么?以下是完整的错误日志.
java.lang.IllegalStateException: eglMakeCurrent failed EGL_BAD_ALLOC
at android.view.HardwareRenderer$GlRenderer.createSurface(HardwareRenderer.java:1354)
at android.view.HardwareRenderer$GlRenderer.createEglSurface(HardwareRenderer.java:1241)
at android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.java:1058)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1811)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1235)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6472)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
at android.view.Choreographer.doCallbacks(Choreographer.java:603)
at android.view.Choreographer.doFrame(Choreographer.java:573)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)