Maybe you've also read the rants that the new i-Mate Phone Edition/xda II/MDA II isn't able to handle larger applications and closes other programs in the background if you open a new one. In fact this statement is wrong!
The real problem is a different one and it is because the Windows CE platform isn't able to handle more then 32 processes simultaneously! 8O This is - according to my sources (which I also already get confirmed from other sides) - a design limitation which already was introduced with Windows CE 1 and never were expended - even not with today's Windows CE 4 platform.
The result is if a user starts the 33rd process, any of the processes, running in the background is killed by the system. In "best case" it's an application you've launched only, in worst case it's a Windows CE task.
Users never have seen it before because by default Pocket PCs were never running that much processes after a softreset. Unfortunately it's different with the HTC Himalaya platform because by default it's running the typical Pocket PC apps plus the Pocket PC Phone Edition applications plus some HTC and O2 customized stuff like Bluetooth, IA Caller ID, IA Camera and for the O2 version O2 Active UI. This means that on a xda II something around 26 tasks are already running in the background - right away after a softreset. Now imagine if you install Spb GPRS Monitor, Pocket Plus and Fullscreen Keyboard also! One task is left for a customer application. Now start ActiveSync which starts 3 tasks by itself and you are done! 8O Your device will need a softreset!
I recently got this information confirmed from several OEMs as well as from other MVPs. So the point here is that not the HTC Himalaya (and I'm sure other devices soon too) is the bad guy here but some parts of the Windows CE architecture because it's running to much task as well as way 3rd party applications are developed.
This is one of the reasons that CE 4.x has the Services Manager. An application that loads DLLs that can perform background tasks so you can write a service instead of a complete task that requires a separate process slot.
Developers should expect their apps to be closed in the background and plan on it. ODMs should move their camera, caller ID and Bluetooth stuff into Services and away from Apps. This is always as it has been. Developers should know this. ODMs should know this too and shouldn't forget it when developing new devices and enhancing features!
Well, its quite a fine mess to get all this stuff fixed because lots of folks are going to have to work together. The OEMs need to reduce the number of processes they're using. Third party developers that write things like full screen keyboard applications really must redesign their software to be a service. And it wouldn't hurt for the Microsoft Mobile developers to reduce the number of processes they're using as well. The goal should be at least 8 slots free after soft reset. That should leave enough room for apps and ActiveSync.
Cheers ~ Arne
Related Articles INSIGHT The truth about the program limitation on the HTC Himalaya platform
Great info Arne! The question is what can we safely remove from the StartUp folder. At this moment in time I can only run 3 applications - each time a start a new one an existing one is closed. With 18 items in my StartUp folder it sounds like this could do with thining out, but what is safe to remove (if any....)?
Posted by Arne Hess on 24.11.03 - 18:41:07
You can safely remove:
* BTIcon: You will lose the BT icon in the Today screen only but still can access the BT manager from Settings -> Connections.
* stk: Which is for the SIM Application Toolkit but if you don't use SAT (or your SIM doesn't have it) you can also remove it without problems.
* IA Caller ID: If you don't use it at all (but it adds a lot of registry entries as well so it's better not to install it at all).
* Also you can remove *FlashMan while I'm not sure now which it is safe and which you better keep. It's that stuff for saving your settings to the ROM... Have to check which is for which permanent storage...
Posted by arebelspy on 24.11.03 - 18:57:45
Maybe I'll have to reinstall Pocket Hack Master, which shows all the running processes and their threads (and lets you kill them if needed). Of course, that's one more process running. *rolls eyes*
It's frusterating when all I have open is nPopw running in the background checking mail, I open Lexionary (dictionary) and nPopw closes without me noticing. Yeah I have a few things go at startup (gigatask, buttonmapper, etc) but it shouldn't be like that. =/
Posted by cheekymonkey on 24.11.03 - 21:25:22
Ok guys, here are my running proccesses (other than spb GPRS Monitor and PHM):
Can anyone please tell me what the likes of NK.EXE and gews.exe are, as well as all the *FlashMan.exes?
Posted by Frank on 24.11.03 - 23:24:08
Arne, great information - and big questionmarks for me...
Hm, how is it possible that nobody identified this as a serious problem during development and beta testing? I mean the result of starting ActiveSync resulting in the need for a soft reset... someone should have seen that earlier and come up with some kind of solution.
You point pretty much towards developpers here. Right, they should know and should act accordingly - especially regarding the situation that their application may be closed. But shouldn't that also start with ActiveSync in the first place?
OK, what does it mean for me then? Frequent soft resets whenever an application doesn't work anymore? Unepected wrong information in services like GPRS monitor which just may have been shut down while I download something? Hm, if so I would call that pretty poor... And MSFT should increase the limit as long as applications are not doing the right thing otherwise we will see many disappointed customers...
Posted by starstreak on 25.11.03 - 00:20:14
Um, what is STK and AI caller ID?
Posted by arebelspy on 25.11.03 - 07:32:09
What is "hands free"? I'd like to remove it from startup but am worried. Is that the bluetooth headset (hands free) profile? The speakerphone? What?
We need someone to identify all this junk for us.
BTW I removed all the *flashman junk from my startup (moved to my extended rom actually for safe keeping in case I do end up needing them), and my i-mate still works perfectly..
Posted by zyberlee on 25.11.03 - 07:40:11
Thank you very much Arnes, this make me feel much better on the problem of xda2 which firstly, might b the h/w problem or o/s problem, it's just a "limitation" of the OS then we can surely expect the newer version of OS will be fixed this limitation.
Thank to everybody who try to share their knowledge and xperiences.
Posted by Erick Bryce on 25.11.03 - 09:34:13
One flashman is for Contacts, one is for Calendar, one is for Tasks, and one is for Connection Settings. They should only be in there if you have chosen to save these specific datas to Flash ROM memory incase of a hard reset before you get to sync with your PC.
Posted by Oliver T on 25.11.03 - 10:43:53
So, that means theoretically I could be on a call, create a new note to jot something down during the conversation and it will close down the phone app and end my call ? Errr, maybe I should wait with selling my old trusty mobile phone after all.
Posted by Dejan on 25.11.03 - 11:54:53
My MDA II starts clocing programms at the boundary of 28 processes, not at 32. I wasn't able to get behind this limit....Seems MS reserve some slots for sth else....
Posted by RichB on 25.11.03 - 13:10:57
"For instance, we said the operating system would run a limited number of applications, so we could limit ourselves to 32 processes - yea, it's a limitation, and you know in the back of your mind that every limitation hurts, but it's not really a big limitation. We couldn't find a credible scenario that required more than 32 processes. And the truth is that because the operating system is multithreaded, the developer can just use threads instead of processes."
AFlashMan.exe = Appointment Flash backup ( I think)
CFlashMan.exe = Contacts Flash Backup (I think)
conmgr.exe = Connection Manager used for figuring out network
device.exe = device driver handler - required system process
filesys.exe = file system handler - required system process
gews.exe = Pocket PC graphics system - required system process
NK.EXE - Kernel - required system process
poutlook.exe - Pocket Outlook, not required
services.exe - can't remember...but I believe its a required system process
shell32.exe - Pocket PC shell - required system process
srvtrust.exe - security certificate stuff, not sure if its required
Posted by cheekymonkey on 25.11.03 - 19:58:27
@ RichB and Erick, amongst others, thanks for that.
I don't flash backup my contacts etc, so can the *FlashMan.exes be dumped from resident memory? They just sit there doing nothing and, well, like, I want a lean, mean machine dudes!
Posted by Alan Atkinson on 25.11.03 - 21:08:56
I have just loaded in Sprite's Pocket Backup Plus. Usually, after backup, the machine would need a soft reset. What I notice is that if the reset is not done immediately, and the XDA shuts down(power save); I would need to perform a soft-reset on it to get the XDA going because the system hangs.
Is this a symptom to the problem mentioned by Arne?