我是Android SDK/API环境的新手。这是我第一次试着画一个图表。我尝试在模拟器上使用3个不同的免费库运行不同种类的示例代码,没有显示在布局屏幕上。日志猫正在重复如下信息:

 W/Trace(1378): Unexpected value from nativeGetEnabledTags: 0
 I/Choreographer(1378): Skipped 55 frames!  The application may be doing too much work on its main thread. 

当我运行一个与授权库的评估副本相关的示例代码时,这个问题并没有持续存在,图表也正常工作。


当前回答

我也有同样的问题。Android模拟器在Android < 6.0上运行良好。当我使用模拟器Nexus 5 (Android 6.0)时,应用程序在I/Choreographer:在日志中跳过帧时运行非常慢。

所以,我解决了这个问题,在Manifest文件hardwareAccelerated选项更改为true,像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application android:hardwareAccelerated="true">
        ...
    </application>
</manifest>

2022年1月更新。根据@M的评论。Ed:如果您的目标api为>= 14,则默认启用硬件加速。

其他回答

UI线程延迟的另一个常见原因是SharedPreferences访问。当你调用PreferenceManager。getSharedPreferences和其他类似的方法,关联的.xml文件将立即在同一个线程中加载和解析。

解决这个问题的一个好方法是从后台线程触发第一次SharedPreference加载,越早越好(例如从你的Application类的onCreate开始)。这样,在您想要使用首选项对象时,首选项对象可能已经构造好了。

Unfortunately, sometimes reading a preference files is necessary during early phases of startup (e.g. in the initial Activity or even Application itself). In such cases it is still possible to avoid stalling UI by using MessageQueue.IdleHandler. Do everything else you need to perform on the main thread, then install the IdleHandler to execute code once your Activity have been fully drawn. In that Runnable you should be able to access SharedPreferences without delaying too many drawing operations and making Choreographer unhappy.

还没有解决,但会解决的。对于我的小项目,有一个可组合的功能(按钮)和逻辑来检查是否“com. com”。在启动模拟器时,我在相同的日志中有以下内容:

I/Choreographer: Skipped 34 frames!  The application may be doing too much work on its main thread.

我在开发一个在网格布局上使用大量可绘制png文件的应用程序时遇到了同样的问题。我也尽量优化我的代码。但这对我来说行不通。然后我尝试减小这些png的大小。我猜它工作得绝对很好。所以我的建议是减少可绘制资源的大小。

我也有同样的问题。 我的是一个案例,我使用的背景图像是在绘图。这个特殊的图像大约有130kB,在我的android应用程序的启动画面和主页上使用。

解决方案-我只是把特定的图像从drawables转移到drawables-xxx文件夹,并且能够释放大量的内存占用在背景和跳绳帧不再跳绳。

更新使用“nodp”可绘制资源文件夹来存储背景可绘制图 文件。 密度限定的可绘制文件夹还是drawable-nodpi优先?

因为我首先最好使用SVG图像而不是所有其他类型的图像,如果不可能,使用一些图像处理工具(如Adobe Photoshop或Fotosizer)压缩所有PNG和JPG资源。最简单的方法之一是在线图像压缩工具,像这样,它帮助我把所有的图像文件减少到初始大小的50%。