我正在考虑迁移到MonoDroid,但问题是试用版只允许在模拟器中测试我的代码,而一切在模拟器中运行得很慢。我在支付400美元之前想问的问题是,编译后的代码在实际设备上部署时是否运行得足够快?
我正在考虑迁移到MonoDroid,但问题是试用版只允许在模拟器中测试我的代码,而一切在模拟器中运行得很慢。我在支付400美元之前想问的问题是,编译后的代码在实际设备上部署时是否运行得足够快?
应用程序启动后(约3秒),在Nexus One上的性能非常好,完全不像在模拟器上运行。
我在启动时看到了超过2-3秒的延迟。也就是说,从我点击一个应用程序(并且日志显示ActivityManager正在启动我的Activity)到第一次调用OnCreate
的时间。
我在我的HTC Legend上看到了5秒或更长时间,它运行着Android 2.2(大约2年前)。例如:
2011-11-26 11:54:37.782 I 97/ActivityManager: Displayed activity
com.xxx.android/.SplashActivity: 5309 ms (total 5309 ms)
或者完整的日志:
2011-11-26 11:54:32.372 I 97/ActivityManager: Starting activity: Intent {
act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
flg=0x10200000 cmp=com.xxx.android/.SplashActivity }
2011-11-26 11:54:32.492 I 97/ActivityManager: Start proc com.xxx.android
for activity com.xxx.android/.SplashActivity: pid=23858 uid=10055
gids={1015, 3003}
2011-11-26 11:54:32.492 I 23858/pthread: ## thread 23858 is creating
thread @dalvik/vm/Thread.c:1795
2011-11-26 11:54:32.502 I 23858/pthread: ## thread 23859 is created success
2011-11-26 11:54:32.522 I 23858/pthread: ## thread 23858 is creating
thread @dalvik/vm/Thread.c:1795
2011-11-26 11:54:32.522 I 23858/pthread: ## thread 23860 is created success
2011-11-26 11:54:32.592 I 23858/pthread: ## thread 23858 is creating
thread @dalvik/vm/Thread.c:1795
2011-11-26 11:54:32.592 I 23858/pthread: ## thread 23861 is created success
2011-11-26 11:54:32.602 I 23858/pthread: ## thread 23858 is creating
thread @frameworks/base/libs/utils/Threads.cpp:139
2011-11-26 11:54:32.622 I 23858/pthread: ## thread 23862 is created success
2011-11-26 11:54:32.632 I 23858/pthread: ## thread 23862 is creating
thread @frameworks/base/libs/utils/Threads.cpp:139
2011-11-26 11:54:32.642 I 23858/pthread: ## thread 23863 is created success
2011-11-26 11:54:32.712 I 73/pthread: ## thread 23864 is created success
2011-11-26 11:54:32.712 I 73/pthread: ## thread 23865 is created success
2011-11-26 11:54:32.792 I 23858/ActivityThread: Publishing provider
com.xxx.android.__mono_init__: mono.MonoRuntimeProvider
2011-11-26 11:54:32.842 D 23858/dalvikvm: Trying to load lib
/data/data/com.xxx.android/lib/libmonodroid.so 0x44e02348
2011-11-26 11:54:32.872 D 23858/dalvikvm: Added shared lib
/data/data/com.xxx.android/lib/libmonodroid.so 0x44e02348
2011-11-26 11:54:33.332 I 23858/pthread: ## thread 23866 is created success
2011-11-26 11:54:33.552 D 183/BT HS/HF: gsmAsuToSignal=6
2011-11-26 11:54:34.042 2 97/GpsLocationProvider:
ServiceState.STATE_IN_SERVICE
2011-11-26 11:54:34.042 D 97/ConnectivityService: getMobileDataEnabled
returning true
2011-11-26 11:54:34.052 D 97/TelephonyRegistry: notifyDataConnection()
state=2isDataConnectivityPossible()true, reason=null
2011-11-26 11:54:34.052 D 97/TelephonyRegistry:
broadcastDataConnectionStateChanged()
state=CONNECTEDtypes=default,dun,supl, interfaceName=rmnet0
2011-11-26 11:54:34.072 D 97/NetworkLocationProvider:
onDataConnectionStateChanged 3
2011-11-26 11:54:34.092 D 97/ConnectivityService: getMobileDataEnabled
returning true
2011-11-26 11:54:34.122 D 97/MobileDataStateTracker: replacing old
mInterfaceName (rmnet0) with rmnet0 for hipri
2011-11-26 11:54:34.122 D 97/MobileDataStateTracker: replacing old
mInterfaceName (rmnet0) with rmnet0 for supl
2011-11-26 11:54:34.132 D 97/MobileDataStateTracker: replacing old
mInterfaceName (rmnet0) with rmnet0 for dun
2011-11-26 11:54:34.222 2 97/AlarmManager: Adding Alarm{4521c788 type 2
com.google.android.apps.maps} Dec 15 09:35:32 am
2011-11-26 11:54:34.362 I 97/LSState:
EventReceiver:android.intent.action.NOTIFICATION_UPDATE
2011-11-26 11:54:34.822 D 23858/dalvikvm: GC_FOR_MALLOC freed 11754
objects / 463408 bytes in 67ms
2011-11-26 11:54:35.042 D 23858/dalvikvm: GC_FOR_MALLOC freed 10024
objects / 469712 bytes in 62ms
2011-11-26 11:54:36.372 I 97/LSState:
EventReceiver:android.intent.action.NOTIFICATION_UPDATE
2011-11-26 11:54:37.462 I 23858/pthread: ## thread 23867 is created success
2011-11-26 11:54:37.782 I 97/ActivityManager: Displayed activity
com.xxx.android/.SplashActivity: 5309 ms (total 5309 ms)
速度慢是由于 Android 模拟器,使用实际设备在 MonoDroid 上运行则没有问题。