我是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. 

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


当前回答

this usually happens when you are executing huge processes in main thread. it's OK to skip frames less than 200. but if you have more than 200 skipped frames, it can slow down your application UI thread. what you can do is to do these processes in a new thread called worker thread and after that, when you want to access and do something with UI thread(ex: do something with views, findView etc...) you can use handler or runOnUiThread(I like this more) in order to display the processing results. this absolutely solves the problem. using worker threads are very useful or even must be used when it comes to this cases.

https://stacklearn.ir

其他回答

我也有同样的问题。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,则默认启用硬件加速。

我不是专家,但当我想从我的android应用程序发送数据到web服务器时,我得到了这个调试消息。虽然我使用AsyncTask类并在后台进行数据传输,但为了从服务器获取结果数据,我使用了AsyncTask类的get()方法,这使得UI同步,这意味着你的UI将等待太长时间。所以我的建议是让你的应用程序在一个单独的线程上执行每个面向网络的任务。

对我来说,这是RoundedBackgroundColorSpan !在textview中,我删除了它(燃烧我的大脑来找到它,因为它没有出现在像Pixel 4 Xl或三星note 10+这样的真实智能手机中,也没有出现在模拟器中,但在芯片设备中如此缓慢的视图)。

优化你的图片…不要使用大于100KB的图片…图像加载占用太多CPU,导致你的应用程序挂起。

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