Android:应用程序从旧的 adt-bundle 迁移到最新的 android studio 后运行缓慢

Posted

技术标签:

【中文标题】Android:应用程序从旧的 adt-bundle 迁移到最新的 android studio 后运行缓慢【英文标题】:Android: Application is running slow after it's been migrated from old adt-bundle to latest android studio 【发布时间】:2016-06-02 20:24:08 【问题描述】:

我已经有一年没有进行 android 开发了。早些时候,我曾经使用 adt-bundle eclipse 开发应用程序。最近我开始使用 Android Studio。 我通过在 android studio 项目中创建新文件并复制代码来迁移我的应用程序代码,还在 ma​​nifest 和新引入的 build.gradle 文件中进行了一些更改。


首先我得到了错误, java.lang.OutOfMemoryError

所以我在清单文件中添加了以下内容, android:largeHeap="true"

这个问题就解决了。


后来我从活动类中删除了继承类ActionBarActivity,并继承了AppCompatActivity。 在 bundle.gradle

中还添加了以下内容
dependencies 
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.google.android.gms:play-services-ads:8.3.0'

现在我收到以下错误,

I/Choreographer: Skipped 158 frames!  The application may be doing too much work on its main thread.
E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

问题是否是由于以下使用findViewByID

(EditText) findViewById(R.id.editText1);
(EditText) findViewById(R.id.editText2);
(EditText) findViewById(R.id.editText3);
(Spinner) findViewById(R.id.spinner1);
(EditText) findViewById(R.id.editText4);

主要问题是,应用运行速度非常慢!!!

【问题讨论】:

我们需要更多关于“运行缓慢”的详细信息,具体情况是什么。建造时间?启动时间?点击什么时间?一旦你知道这一点,添加一些日志并回复我们developer.android.com/reference/android/util/TimingLogger.html 应用程序运行速度很慢,这意味着旧版本正在实时响应触摸,而当前版本在触摸响应时滞后。 您的应用程序必须在“做某事”,一定有一些代码在某处运行,使其速度变慢。您刚才提供的内容我们无法回答这个问题 您的应用正在做非常密集的工作。也许它在一个循环中,正在使用SpannableStringBuilder 做事。如果您想做密集的工作,请使用线程和处理程序在后台进行。 @Blundell 感谢您的关注。如果代码在做某事,那么为什么一个基于旧 SDK 构建的应用程序运行效率高,而一个基于新 SDK 构建的应用程序运行缓慢,而且两者都是同一段代码。 【参考方案1】:

不确定您是否遇到与我相同的问题。我的是因为我的应用在 AndroidManifest 中有一个配置,上面写着 android:hardwareAccelerated="false"

这不会在旧 UI 中造成任何延迟问题,但我认为新材料设计 UI 效果可能会引入一些延迟,除非我们使用硬件加速。

尝试删除 android:hardwareAccelerated="false" 或将其设置为 true 以查看它在响应您的触摸时是否仍然滞后。它解决了我的问题。

【讨论】:

同样,android:hardwareAccelerated="false" 减慢了我的应用程序

以上是关于Android:应用程序从旧的 adt-bundle 迁移到最新的 android studio 后运行缓慢的主要内容,如果未能解决你的问题,请参考以下文章

从旧的 Borland C++ 迁移到 Visual C++ Express

从旧的 Access 数据库导出时,希腊字符显示为问号或方框

从旧的 html dom 元素创建 json

sh 从旧的比特币-qt叉子获取密钥。

从旧的 asmx webservice 发送和接收 json 对象

从旧的 Git 提交中删除私有信息