我应该关心Lollipop中的主线程和UI线程之间的区别吗?

Tho*_*ler 7 java multithreading android android-5.0-lollipop

在棒棒糖之前,生活很简单.你有一个main thread- 有时也被称为UI thread- 所有GUI的东西都已完成(你在任何情况下都可以避免长时间运行以避免任何类型的打嗝),并且你在background threads那里完成了这个长期运行的东西.

现在在Lollipop及更高版本的Android,IIRC这个术语UI thread似乎指向用户新的RenderThread,一个线程,例如用于动画涟漪,活动之间的英雄元素或任何其他类型的动画,需要发生在主要线程处理输入事件或正在忙于在后台为您创建新的东西.

对于Android Studio 1.3,所有三种线程类型现在都有自己的注释,以表示特定的代码应该在这个特定的线程上运行.对我来说,现在的问题是:作为应用程序开发人员,我是否应该关注运行任何内容UIThread,即在我的应用程序中RenderThread使用@UIThread

ser*_*nka 2

RenderThread我记得去年 Google IO 上Chet Haase 的演讲。他的声明是,首先我们必须MainThread像以前一样继续下去。RenderThread仅用于动画。例如,如果我们有一个onDrawFrame()以 60 fps 平滑绘制动画的方法,我们应该在 中调用它RenderThread,因为MainThread应用程序逻辑或其他东西可能会减慢速度。

回到你的问题。我会说MainThread像以前一样使用。如果您遇到一些动画性能问题,请尝试将代码的绘图部分移动到RendererThread.