首页 新闻 搜索 专区 学院

如何解决Android程序启动慢的问题

0
悬赏园豆:10 [已解决问题] 解决于 2014-04-08 12:45

大家好,

  遇到的问题:

  开发的App,从点击图标到出现画面,需要大约六七秒的时间。有点超出了用户能够接受的程度,很多人对此抱怨。所以现在着手进行优化,希望可以改善。但试过一些方法都未能成功,不知道大家有没有好的办法。

  以下是我尝试过的方法:

  • 减小apk的大小

  删去了一些启动无关的资源,减前45M,减后24M,但是启动时间仍无改善。

  

  • 参考Android Activity Lifecycle的说明,将Activity里onCreate()中一些比较耗时的代码块移动到onStart()函数中。此法也无效果。

 

  希望大家可以给出一点建议。谢谢。

Charlie123的主页 Charlie123 | 初学一级 | 园豆:142
提问于:2014-04-08 09:37
< >
分享
最佳答案
0

我觉得你可以先屏蔽掉启动时的业务逻辑部分,看一个单纯的空壳是不是很快?如果是,那么你可以试试启动的时候把耗时操作扔到一个新的线程里执行看看。

收获园豆:10
vbfool | 初学一级 |园豆:186 | 2014-04-08 11:00

经过不断地试错,终于找到了问题所在。

原因

  AndroidMenifest.xml中对我的主Activity的方向进行了显式地设置(android:screenOrientation="landscape")。

解决方法

  去掉AndroidMenifest.xml中对我的主Activity的方向的显式设置。

解释

  由于我的程序要求使用横屏显示,之前是在onCreate()函数中进行检查设置方向的:

if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

在Android系统升级之后,可以在AndroidMenifest.xml中进行指定,于是在AndroidMenifest.xml中显式进行了设置:

  但是,通过去掉onCreate()里的逻辑代码——包括设置横屏的代码块(使用你的意见),使用一个简单的View传递给setContentView()函数,发现启动慢的问题依然存在。但是这是发现一个奇怪的现象:明明去掉了设置横屏的代码,却依然是横屏效果,于是尝试去掉AndroidMenifest.xml中设置横屏的属性之后,再启动就很快了。

 

  谢谢~

Charlie123 | 园豆:142 (初学一级) | 2014-04-08 12:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册