0 0

使用SurfaceView的效率问题15

SurfaceView类,lockCanvas函数的具体实现有如下一段代码:

            // If the Surface is not ready to be drawn, then return null,
            // but throttle calls to this function so it isn't called more
            // than every 100ms.
            long now = SystemClock.uptimeMillis();
            long nextTime = mLastLockTime + 100;
            if (nextTime > now) {
                try {
                    Thread.sleep(nextTime-now);
                } catch (InterruptedException e) {
                }
                now = SystemClock.uptimeMillis();
            }

我理解这段代码的意思是两次lockCanvas的最小间隔是100ms,如果间隔小于100ms,则线程会等待,如果是这样,那使用Holder机制刷屏的最大帧率只能有10fps?实在不理解,有哪位高人给解释一下
2009年7月26日 03:10
目前还没有答案

相关推荐

    SurfaceView

    使用SurfaceView可能会遇到的问题包括:内存泄漏、屏幕旋转后的处理、Surface重建时的处理等。开发者需要了解如何正确处理这些问题,以确保游戏运行的稳定性。 9. **配合其他库**: SurfaceView可以与OpenGL ES...

    SurfaceView使用示例

    在Android应用开发中,SurfaceView通过将渲染操作与UI线程分离,提高了绘制效率,避免了因为UI更新导致的主线程阻塞。下面我们将详细讲解SurfaceView的使用以及在实现一个绘图板时的关键知识点。 首先,SurfaceView...

    Android中SurfaceView截屏

    4. **处理并发问题**:由于`SurfaceView`可能在任何时候被销毁或重新创建,因此在截屏过程中要确保不会在不安全的状态下访问Surface。使用`SurfaceHolder`的锁机制确保操作的原子性。 5. **性能优化**:如果截屏...

    listview+surfaceview视频播放

    以下是对这两个组件及其结合使用进行的详细解释。 **ListView** ListView是Android系统中的一个视图组件,它允许开发者在一个列表中展示大量的数据项。通过Adapter类,ListView可以从数据源(如数组或数据库)获取...

    SurfaceView的使用

    7. **同步问题**: 由于SurfaceView的绘图线程与主线程分离,所以可能存在线程同步问题。开发者需要确保在对Surface进行操作时,不会与主线程或其他线程发生冲突。 8. **SurfaceView的子类**: 除了直接使用...

    AndroidApp中使用SurfaceView制作多线程动画的实例讲解.docx

    1. **同步问题**:`SurfaceView`及其关联的`SurfaceHolder.Callback`方法都是从主线程(通常即UI线程)调用的。因此,对于在其他线程中获取到的数据或者状态改变,需要确保它们与主线程之间的同步。 2. **合法性...

    在surfaceview上放置控件

    SurfaceView创建了一个独立的Surface,其后台线程可以无阻塞地进行绘图操作,提高了渲染效率。然而,由于SurfaceView通常用于全屏且需要高效更新的场景,如何在其上添加普通的UI控件,如按钮,就成为一个常见的需求...

    SurfaceView中添加Animation

    在SurfaceView中使用动画时,需要注意线程同步问题。如果同时有多个线程修改Surface的内容,可能会导致画面闪烁或异常。可以使用SurfaceHolder的`lockCanvas()`和`unlockCanvasAndPost()`方法来确保在同一时间只有...

    实例3--使用surfaceView

    同时,开发者可以使用Android Studio提供的工具,如Hierarchy Viewer或Layout Inspector,来观察SurfaceView在布局中的位置和状态,以及性能分析工具如Traceview和Systrace,来优化SurfaceView的绘制效率。...

    android中surfaceview控件的使用范例

    SurfaceView的特性使得它能够在单独的线程中绘制内容,避免了与UI主线程的冲突,提高了程序的运行效率。本文将深入探讨SurfaceView的使用方法、注意事项以及实际应用中的范例。 一、SurfaceView的基本概念 ...

    surfaceview进行屏幕截图demo

    SurfaceView内部有自己的渲染线程,与UI线程分离,提高了绘制效率。本教程将围绕如何使用SurfaceView进行屏幕截图这一主题展开,讲解相关知识点。 首先,我们需要理解SurfaceView的工作原理。SurfaceView通过...

    android-SurfaceView 测试Demo

    在开发过程中,使用Logcat进行日志输出,可以帮助调试SurfaceView的创建、更新和销毁过程,以及绘制和刷新的效率。 通过这个"android-SurfaceView 游戏测试Demo",开发者可以深入理解SurfaceView的工作原理,掌握...

    surfaceview网络视频播放

    4. **绑定SurfaceView与MediaPlayer**:使用`setDisplay()`方法将SurfaceView的SurfaceHolder传递给MediaPlayer,这样它就能将视频帧渲染到Surface上了。 5. **播放和控制**:当MediaPlayer准备好后,调用`start()`...

    android之surfaceview学习示例

    首先,SurfaceView拥有自己的Surface对象,它位于窗口的最底层,直接与硬件交互,允许在主线程之外进行绘制操作,避免了UI线程阻塞,提高了渲染效率。这使得SurfaceView特别适合处理高帧率的图形内容。 其次,...

    SurfaceView实例

    8. **性能优化**:SurfaceView提供了高效绘制的能力,但也需要注意内存管理和渲染效率。例如,避免在绘制过程中创建大量临时对象,及时释放不再使用的资源,以及合理利用硬件加速功能。 9. **生命周期管理**:当...

    Android使用SurfaceView实现飘赞动画

    于是反编译了映客apk,大概看了一下,它的点赞只用了一个SurfaceView,每个心都是实时画到画布上去的,这样效率确实很高,再多的心也不怕了。思路有了,但是自己从头到尾写毕竟麻烦,后来上网查了是否有其他人已经...

    SurFaceView组合图形移动,适用于游戏

    - **双缓冲机制**:SurfaceView内部实现了双缓冲技术,提高绘制效率,减少画面闪烁。 - **低延迟更新**:由于不在主线程中绘制,SurfaceView能快速响应变化,提供低延迟的图形更新,适合动态内容显示。 2. **组合...

    自定义SurfaceView实现抽奖转盘

    此外,尽量减少内存分配和大对象的使用,提升绘制效率。 通过以上步骤,我们可以成功地使用`SurfaceView`实现一个抽奖转盘的动画效果。这个过程涉及到Android视图系统、多线程、动画原理以及图形绘制等多个知识点,...

    (无法运行)安卓斗地主简单实现发牌洗牌排序等SurfaceView的使用等等知识点.rar

    这个压缩包文件中的内容可能包括了斗地主游戏的基本实现、发牌逻辑、洗牌算法、界面绘制以及Android的SurfaceView使用等多个关键知识点。下面将详细阐述这些领域的核心概念。 1. **斗地主游戏逻辑**: 斗地主是一...

    Android使用SurfaceView实现墨迹天气的风车效果.rar

    1. SurfaceView创建了一个独立的窗口,它位于应用程序窗口之上,有自己的绘图表面,这样可以避免UI线程阻塞,提高绘图效率。 2. SurfaceView内部由两部分组成:Surface(绘图表面)和View(视图容器)。Surface是...

Global site tag (gtag.js) - Google Analytics