현재 개발(포팅)중인 게임 어플을 폰에서(시료 단말) 테스트 중입니다만
어플 구동 후 최초 화면까지의 딜레이가 너무 불규칙적이고 긴 것 같아서 문의드립니다.

screen.JPG 

어플을 구동시키면 위와 같은 화면이 뜨고 (폰, 에뮬 공통)
한참 후에(간혹 몇분씩 걸림) 게임 화면으로 진입을 하는 경우가 있습니다.

이미지 로드시의 딜레이 때문인것같아서 이미지를 분활 로드 방식으로 바꿔 테스트를 해봐도
동일한 현상이 발생하더군요.
그래서 각 메소드마다 로그를 찍어봤습니다. (하단 로그 참조)

그랬더니 정상적으로 리소스 로드도 다 완료하고
surfaceCreated후
run에서 화면 업데이트를 해주는
mSurfaceHolder.unlockCanvasAndPost(c); 도
정상적으로 호출을 해주고 있었습니다.

@Override
  public void run() {
   while (mRun) {
    //Canvas c = null; 
    Log.d("debug", "run()");
    c = null;
    try {
     c = mSurfaceHolder.lockCanvas(null); // 백버퍼에 그린다
     synchronized (mSurfaceHolder) {
      //updatePhysics(); 
      gt_timer();
             CheckTouch();
             sleep(80);
     } 
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } finally {
     if (c != null) {
      mSurfaceHolder.unlockCanvasAndPost(c); // 프론트 버퍼로 출력
      Log.d("debug", "unlockCanvasAndPost()");
     }
    }
   }
  }

오프닝 드로우 관련 메소드 진입 후 사운드까지 플레이가 정상적으로 되는것으로 보아(화면은 상기 화면)
화면이 업데이트가 안되고 있는 문제같은데요
아래 로그에 보시면 빨간색 글씨로 밑줄그어진
01-21 11:25:06.973: INFO/ActivityManager(1123): Displayed activity com.neocyon.minglemangle/.MainActivity: 26944 ms (total 26944 ms)
이 시점부터 화면이 보여지더군요.
항상 그런건 아니고 가끔씩은 정상적으로 빠르게 업데이트가 될 때도 있습니다.

로그 메세지중에 밑줄 그어져 있는
01-21 11:24:50.023: WARN/ActivityManager(1123): Launch timeout has expired, giving up wake lock!
01-21 11:24:50.055: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:50.055: DEBUG/debug(1700): run()
01-21 11:24:50.105: WARN/ActivityManager(1123): Activity idle timeout for HistoryRecord{2e346738

이 부분에 뭔가 문제가 있는건가 싶기도 하고
원인을 모르겠네요 ㅠㅠ

하기 로그는 어플 최초 구동 후 검은 화면으로 대기 -> 오프닝 화면에서 종료
여기까지의 로그 입니다.
===============================================================================
01-21 11:24:35.003: DEBUG/PackageParser(1123): Scanning package: /data/app/vmdl70898.tmp
01-21 11:24:38.133: INFO/PackageManager(1123): Removing non-system package:com.neocyon.minglemangle
01-21 11:24:38.133: DEBUG/PackageManager(1123): Removing package com.neocyon.minglemangle
01-21 11:24:38.133: DEBUG/PackageManager(1123):   Activities: com.neocyon.minglemangle.MainActivity
01-21 11:24:38.193: DEBUG/PackageManager(1123): Scanning package com.neocyon.minglemangle
01-21 11:24:38.193: INFO/PackageManager(1123): /data/app/vmdl70898.tmp changed; unpacking
01-21 11:24:39.153: DEBUG/PackageManager(1123):   Activities: com.neocyon.minglemangle.MainActivity
01-21 11:24:39.153: DEBUG/ActivityManager(1123): Uninstalling process com.neocyon.minglemangle
01-21 11:24:39.153: DEBUG/ActivityManager(1123): Force removing process ProcessRecord{2e4e7cf8 1665:com.neocyon.minglemangle/10038} (com.neocyon.minglemangle/10038)
01-21 11:24:39.173: DEBUG/ActivityManager(1123): Received spurious death notification for thread android.os.BinderProxy@2e448ed8
01-21 11:24:39.173: INFO/WindowManager(1123): WIN DEATH: Window{2e4cabd0 com.neocyon.minglemangle/com.neocyon.minglemangle.MainActivity paused=false}
01-21 11:24:39.173: INFO/WindowManager(1123): WIN DEATH: Window{2e4cf6b0 SurfaceView paused=false}
01-21 11:24:39.183: ERROR/AudioFlinger(1068): monodt, track is terminated, no ThreadLoop, 3
01-21 11:24:39.223: DEBUG/PackageManager(1123): New package installed in /data/app/com.neocyon.minglemangle.apk
01-21 11:24:39.293: DEBUG/ActivityManager(1123): Uninstalling process com.neocyon.minglemangle
01-21 11:24:39.363: DEBUG/VoiceDialerReceiver(1236): onReceive Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:com.neocyon.minglemangle flg=0x20000000 cmp=com.android.voicedialer/.VoiceDialerReceiver (has extras) }
01-21 11:24:39.363: WARN/ResourceType(1123): No package identifier when getting value for resource number 0x7f080001
01-21 11:24:39.363: WARN/ResourceType(1123): No package identifier when getting value for resource number 0x7f060001
01-21 11:24:39.423: DEBUG/RecognizerEngine(1236): deleteCachedGrammarFiles /data/data/com.android.voicedialer/files/openentries.txt
01-21 11:24:39.463: DEBUG/HomeLoaders(1210): application intent received: android.intent.action.PACKAGE_REMOVED, replacing=true
01-21 11:24:39.463: DEBUG/HomeLoaders(1210):   --> package:com.neocyon.minglemangle
01-21 11:24:39.463: DEBUG/HomeLoaders(1210): application intent received: android.intent.action.PACKAGE_ADDED, replacing=true
01-21 11:24:39.463: DEBUG/HomeLoaders(1210):   --> package:com.neocyon.minglemangle
01-21 11:24:39.463: DEBUG/HomeLoaders(1210):   --> update package com.neocyon.minglemangle
01-21 11:24:39.593: DEBUG/Searchables(1123): Checking component ComponentInfo{com.google.android.providers.enhancedgooglesearch/com.google.android.providers.enhancedgooglesearch.Launcher}
01-21 11:24:39.623: DEBUG/VoiceDialerReceiver(1236): onReceive Intent { act=android.intent.action.PACKAGE_ADDED dat=package:com.neocyon.minglemangle flg=0x20000000 cmp=com.android.voicedialer/.VoiceDialerReceiver (has extras) }
01-21 11:24:39.623: DEBUG/RecognizerEngine(1236): deleteCachedGrammarFiles /data/data/com.android.voicedialer/files/openentries.txt
01-21 11:24:39.633: WARN/ResourceType(1123): No package identifier when getting value for resource number 0x7f080001
01-21 11:24:39.643: WARN/ResourceType(1123): No package identifier when getting value for resource number 0x7f060001
01-21 11:24:39.713: DEBUG/Searchables(1123): Checking component ComponentInfo{com.google.android.providers.enhancedgooglesearch/com.google.android.providers.enhancedgooglesearch.Launcher}
01-21 11:24:39.993: DEBUG/ActivityManager(1123): Uninstalling process com.neocyon.minglemangle
01-21 11:24:39.993: INFO/ActivityManager(1123): Starting activity: Intent { flg=0x10000000 cmp=com.neocyon.minglemangle/.MainActivity }
01-21 11:24:40.053: INFO/ActivityManager(1123): Start proc com.neocyon.minglemangle for activity com.neocyon.minglemangle/.MainActivity: pid=1700 uid=10038 gids={}
01-21 11:24:40.113: WARN/ActivityThread(1700): Application com.neocyon.minglemangle is waiting for the debugger on port 8100...
01-21 11:24:40.123: INFO/System.out(1700): Sending WAIT chunk
01-21 11:24:40.533: INFO/System.out(1700): Debugger has connected
01-21 11:24:40.533: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:40.734: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:40.934: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:41.133: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:41.335: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:41.533: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:41.733: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:41.936: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:42.136: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:42.336: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:42.533: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:42.738: INFO/System.out(1700): waiting for debugger to settle...
01-21 11:24:42.938: INFO/System.out(1700): debugger has settled (1317)
01-21 11:24:43.623: DEBUG/debug(1700): onCreate_START_MainActivity
01-21 11:24:43.963: DEBUG/debug(1700): MingleThread()
01-21 11:24:44.013: DEBUG/debug(1700): loadImgProgress()
01-21 11:24:44.113: DEBUG/debug(1700): loadImgProgress()
01-21 11:24:44.133: DEBUG/debug(1700): loadImgProgress()
01-21 11:24:44.153: DEBUG/debug(1700): loadImgProgress()
01-21 11:24:44.173: DEBUG/debug(1700): loadImgProgress()
01-21 11:24:44.273: DEBUG/debug(1700): loadImgProgress()
01-21 11:24:44.343: DEBUG/debug(1700): onCreate_END_MainActivity
01-21 11:24:44.383: WARN/IInputConnectionWrapper(1210): showStatusIcon on inactive InputConnection
01-21 11:24:44.413: DEBUG/debug(1700): run()
01-21 11:24:44.423: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:44.423: DEBUG/debug(1700): surfaceCreated()
01-21 11:24:44.423: DEBUG/debug(1700): surfaceChanged()
01-21 11:24:44.504: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:44.504: DEBUG/debug(1700): run()
01-21 11:24:44.504: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:44.598: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:44.598: DEBUG/debug(1700): run()
01-21 11:24:44.627: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:44.714: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:44.714: DEBUG/debug(1700): run()
01-21 11:24:44.714: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:44.798: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:44.798: DEBUG/debug(1700): run()
01-21 11:24:44.798: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:44.883: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:44.883: DEBUG/debug(1700): run()
01-21 11:24:44.883: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:44.966: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:44.966: DEBUG/debug(1700): run()
01-21 11:24:44.966: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:45.050: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:45.050: DEBUG/debug(1700): run()
01-21 11:24:45.050: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:45.132: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:45.132: DEBUG/debug(1700): run()
------ 중간생략 ------
01-21 11:24:49.616: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:49.693: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:49.693: DEBUG/debug(1700): run()
01-21 11:24:49.703: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:49.784: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:49.784: DEBUG/debug(1700): run()
01-21 11:24:49.784: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:49.866: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:49.866: DEBUG/debug(1700): run()
01-21 11:24:49.866: DEBUG/debug(1700): gt_draw_logo()
01-21 11:24:49.944: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:49.944: DEBUG/debug(1700): run()
01-21 11:24:50.023: WARN/ActivityManager(1123): Launch timeout has expired, giving up wake lock!
01-21 11:24:50.055: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:50.055: DEBUG/debug(1700): run()
01-21 11:24:50.105: WARN/ActivityManager(1123): Activity idle timeout for HistoryRecord{2e346738 com.neocyon.minglemangle/.MainActivity}
01-21 11:24:50.162: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:50.162: DEBUG/debug(1700): run()
01-21 11:24:50.269: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:50.269: DEBUG/debug(1700): run()
01-21 11:24:50.375: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:50.375: DEBUG/debug(1700): run()
01-21 11:24:50.481: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:24:50.481: DEBUG/debug(1700): run()
01-21 11:24:50.587: DEBUG/debug(1700): unlockCanvasAndPost()
----- 중간 생략 ------
01-21 11:25:06.084: DEBUG/debug(1700): run()
01-21 11:25:06.185: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:06.185: DEBUG/debug(1700): run()
01-21 11:25:06.297: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:06.297: DEBUG/debug(1700): run()
01-21 11:25:06.401: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:06.401: DEBUG/debug(1700): run()
01-21 11:25:06.506: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:06.506: DEBUG/debug(1700): run()
01-21 11:25:06.614: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:06.614: DEBUG/debug(1700): run()
01-21 11:25:06.758: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:06.758: DEBUG/debug(1700): run()
01-21 11:25:06.865: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:06.865: DEBUG/debug(1700): run()
01-21 11:25:06.968: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:06.973: INFO/ActivityManager(1123): Displayed activity com.neocyon.minglemangle/.MainActivity: 26944 ms (total 26944 ms)
01-21 11:25:06.983: DEBUG/debug(1700): run()
01-21 11:25:07.101: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.101: DEBUG/debug(1700): run()
01-21 11:25:07.203: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.203: DEBUG/debug(1700): run()
01-21 11:25:07.321: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.321: DEBUG/debug(1700): run()
01-21 11:25:07.430: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.430: DEBUG/debug(1700): run()
01-21 11:25:07.537: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.537: DEBUG/debug(1700): run()
01-21 11:25:07.643: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.643: DEBUG/debug(1700): run()
01-21 11:25:07.753: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.753: DEBUG/debug(1700): run()
01-21 11:25:07.865: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.865: DEBUG/debug(1700): run()
01-21 11:25:07.973: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:07.973: DEBUG/debug(1700): run()
01-21 11:25:08.081: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.081: DEBUG/debug(1700): run()
01-21 11:25:08.185: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.185: DEBUG/debug(1700): run()
01-21 11:25:08.296: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.296: DEBUG/debug(1700): run()
01-21 11:25:08.401: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.401: DEBUG/debug(1700): run()
01-21 11:25:08.507: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.507: DEBUG/debug(1700): run()
01-21 11:25:08.613: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.613: DEBUG/debug(1700): run()
01-21 11:25:08.718: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.718: DEBUG/debug(1700): run()
01-21 11:25:08.826: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.837: DEBUG/debug(1700): run()
01-21 11:25:08.960: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:08.960: DEBUG/debug(1700): run()
01-21 11:25:09.067: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.067: DEBUG/debug(1700): run()
01-21 11:25:09.173: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.173: DEBUG/debug(1700): run()
01-21 11:25:09.281: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.281: DEBUG/debug(1700): run()
01-21 11:25:09.386: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.386: DEBUG/debug(1700): run()
01-21 11:25:09.492: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.493: DEBUG/debug(1700): run()
01-21 11:25:09.597: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.597: DEBUG/debug(1700): run()
01-21 11:25:09.705: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.705: DEBUG/debug(1700): run()
01-21 11:25:09.813: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.813: DEBUG/debug(1700): run()
01-21 11:25:09.926: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:09.926: DEBUG/debug(1700): run()
01-21 11:25:10.060: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:10.060: DEBUG/debug(1700): run()
01-21 11:25:10.169: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:10.169: DEBUG/debug(1700): run()
01-21 11:25:10.283: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:10.283: DEBUG/debug(1700): run()
01-21 11:25:10.293: WARN/IInputConnectionWrapper(1700): showStatusIcon on inactive InputConnection
01-21 11:25:10.313: DEBUG/debug(1700): surfaceDestroyed()
01-21 11:25:10.450: DEBUG/debug(1700): unlockCanvasAndPost()
01-21 11:25:10.463: DEBUG/debug(1700): onStop()
01-21 11:25:10.463: WARN/ActivityManager(1123): Duplicate finish request for HistoryRecord{2e346738 com.neocyon.minglemangle/.MainActivity}
01-21 11:25:10.473: DEBUG/debug(1700): onDestroy()
01-21 11:25:20.334: WARN/ActivityManager(1123): Activity destroy timeout for HistoryRecord{2e346738 com.neocyon.minglemangle/.MainActivity}