android - 应用程序启动时间过长

标签 android performance startup

我有一个 android 应用程序,在单击它的图标后需要 >=5 秒才能显示。

单击该图标后,我立即进入黑屏状态栏中显示应用程序名称。 5 秒以上后,主屏幕出现。

我提到了 this post在 SO 上,我从堆栈跟踪中得到了以下结果

16:13:14.915: I/ActivityManager(59): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=packageName/.SelectType }
16:13:14.954: I/SurfaceFlinger(59): 
16:13:14.954: I/SurfaceFlinger(59): SurfaceFlinger::createSurface() : layer->mIdentity=176, LayerName= Starting packageName
16:13:14.954: I/SurfaceFlinger(59): SurfaceFlinger::createSurface() : layer->clientIndex=2, surfaceHandle->mToken=0x2
16:13:16.026: D/AnrParser(184): Waiting kernel log . . .
16:13:16.614: D/dalvikvm(6890): GC_FOR_MALLOC freed 12274 objects / 785016 bytes in 135ms
16:13:17.784: D/dalvikvm(133): GC_EXTERNAL_ALLOC freed 415 objects / 21624 bytes in 1285ms
16:13:17.914: D/dalvikvm(6890): GC_FOR_MALLOC freed 5762 objects / 339024 bytes in 90ms
16:13:18.174: D/AnrParser(184): Waiting kernel log . . .
16:13:18.344: E/keystore(6966): chdir: /data/misc/keystore: Permission denied
16:13:19.693: D/dalvikvm(6890): GC_FOR_MALLOC freed 5994 objects / 372624 bytes in 93ms
16:13:20.173: D/AnrParser(184): Waiting kernel log . . .
16:13:22.173: D/AnrParser(184): Waiting kernel log . . .
16:13:22.743: I/SurfaceFlinger(59): 
16:13:22.743: I/SurfaceFlinger(59): SurfaceFlinger::createSurface() : layer->mIdentity=177, LayerName= packageName/packageName.SelectType
16:13:22.743: I/SurfaceFlinger(59): SurfaceFlinger::createSurface() : layer->clientIndex=0, surfaceHandle->mToken=0x0
16:13:22.983: D/dalvikvm(6890): GC_FOR_MALLOC freed 21467 objects / 1097728 bytes in 119ms
16:13:23.403: E/keystore(6973): chdir: /data/misc/keystore: Permission denied
16:13:24.173: D/AnrParser(184): Waiting kernel log . . .
16:13:24.923: W/ActivityManager(59): Launch timeout has expired, giving up wake lock!
16:13:25.264: W/ActivityManager(59): Activity idle timeout for HistoryRecord{47f56388 packageName/.SelectType}
16:13:25.403: I/ActivityManager(59): Displayed activity packageName/.SelectType: 10206 ms (total 10206 ms)

正如您在上面的日志中看到的,第一个语句是 16:13:14.915: I/ActivityManager(59): Starting activity 最后一个是 16:13:25.403: I/ActivityManager(59):显示 Activity

所以大约有一个差距。 10 到 11 秒。

感谢任何帮助。

最佳答案

您可能在 Activity 的 onCreate() 或 onResume() 上执行了一些繁重的操作...尝试对其进行调试以查看您是否直接在这些方法中执行数据库或 I/O 操作。您还可以激活 StrictMode以便更好地了解导致您的应用变慢的原因。

关于android - 应用程序启动时间过长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15497677/

相关文章:

android - 如何在外部浏览器中打开 Android 应用程序中的链接?

android - 如何在 android 中更改操作栏标题和副标题字体大小?

ruby-on-rails - 如何不需要 "rails/all"?

java - 在 Ubuntu Linux 8+ 上作为守护进程简单启动杂项应用程序(基于 Java)

android - ParseError at [row,col] :[66, 34] 消息 : -xml-names-19990114#AttributeNSNotUnique? Button&layout_column

mysql - SQL/MySQL 中 OR 条件的数量

performance - 缓存高流量站点时处理并发问题

windows - 通过 REG 或命令行创建 Windows 启动服务

java - Startup() SingleFrameApplication 警告 : getApplicationResourceMap(): no Application class 出现问题

java - "Error while waiting for device: adb connection not available, or was terminated"?