A roundup of generic cleaning utilities – SKTools, MemMaid, Space Reclaimer, Pocket Mechanic, Power Clean (in Battery Pack Pro) and FastCleanup
The Windows Mobile operating system isn’t as simple as, for example, MS-DOS or Palm OS. This means it contains some extra constructs, in addition to the file system
, storing plain files, which may already be known to most readers.
First, it contains the Registry
to store application- and system-related data.
Second, it contains the System Databases
, which have similar purposes as the Registry, but are used to store other kind of information – for example, PIM data (calendar/contact records etc).
These two kinds of entities can’t be seen in the file system, only with special programs. To browse (or, even modify) the contents of the Registry, you’ll need to use a Registry Editor
; and, to see the contents of the system databases, you may want to turn to a system database viewer like Pocket dbExplorer
Unfortunately, even during normal work of a PDA, all the above three kinds of storage (file system, registry and system databases) may go “wrong
”. For example, if you uninstall some programs that are automatically started after switching on the PDA, there is a high chance
you’ll be presented a "Notification Error - Cannot execute XXX.exe"
message every time you switch on the PPC because of the “dangling
” references (links that point to no-longer existing files) in a system database called “DB_notify_events
”. Also, duplicated Contacts, which is a common annoyance with current Windows Mobile versions because of ActiveSync problems, stack up in a system database (namely, “Contacts Database
”). Therefore, if you wanted to fix all these errors by hand, you would need some knowledge of using a system database explorer/editor tool like the above-mentioned Pocket dbExplorer and also the system databases themselves (in which database to look for the error etc.)
The same stands for the Registry. The most common problem with the Registry is the problem “dangling
” file extension. If you uninstall some sloppily written Pocket PC applications (for example, Platform4Player
) which have (re)defined some file extension to point to them, these definitions will still refer to the already-uninstalled programs, resulting in the inability to start the original/another application, passing the given data file to it, by simply clicking the latter.
Also, the Registry in the Pocket PC likes to get cluttered. For example, if you install a program, the registry will contain several subkeys referring to its CAB file under HKEY_LOCAL_MACHINE\SOFTWARE\Apps
, even after you uninstall the given app. Eliminating these will result in the system becoming a bit faster and less cluttered.
Also, the DLL registration entries under HKEY_CLASSES_ROOT\TypeLib
may become “dangling”, particularly if you choose to remove the application that registered these DLL’s via hand and not via the standard way (Remove Programs
in the Settings or via ActiveSync – see this tutorial
on using ActiveSync for program removing/relocation).
Finally, the files in the standard file system – full of mail body files, full of synchronized AvantGo files, full of Pocket Internet Explorer (PIE), NetFront etc. cache files, scattered over several directories. Some apps do have built-in means to delete these files (for example, in PIE, Tools/Options/Memory/Delete Files
on WM2003SE and Tools/Options/Delete Files
on WM2003 devices), but these options take several taps to bring up, and if you still prefer using them, you only elminate one set of problems, while the other set of problems remain – ones with the Registry, the System Databases and the File System.
Some, known examples of other File System problems are dead and/or duplicated link files in \Windows\Start Menu). You can check for all problems, delete all the unnecessary files by hand any time, but it’ll certainly take a lot of time, and you’ll certainly end up doing the same again and again
Therefore, an app that checks for all these (and a lot more) problems is certainly welcome. In this roundup, I compare all the available solutions.
This is, in my opinion, by far the best Pocket PC cleaner tool. It has a lot (really a lot!) of features.
, the other app that is really worth purchasing, only beats SKTools in few areas:
- MemMaid keeps a list of “safely
” movable DLL’s. You may want to read this
thread for my previous posts/articles on relocating DLL’s, so, I won’t here repeat what I’ve said there on this subject.
- MemMaid has a much better structured and logical GUI. SKTools is very hard for a newcomer that doesn’t know much about how Pocket PC’s work.
Otherwise, SKTools is indeed much better, has much more sophisticated configuration options etc.
Some areas SKTools excels at, even compared to MemMaid:
- System Database handling
: in this respect, it’s even better in some respects than Pocket dbExplorer
, my – so far – favourite database handler app because Pocket dbExplorer doesn’t support importing from textual (CSV/TSV/XML) files and doesn’t support browsing system databases (ones whose name start with a \; for example, \ConfigMetabase
), to name the two most important problems. SKTools, however, doesn’t support any kind of inline database browser (this is not as big a problem as you can always export a database in SKTools and browse the exported file with a text/XML editor) and/or advanced tools like automated WinCE database backups. For an inexpensive tool like this, however, SKTools offers much more, even System Database handling-wise, than you’d expect for its price.
- backup/restore of the entire system
. SKTools is not only a “cleaning” tool; it can even act as a complete backup/restore package.
- registry tweaker application
. Much as it doesn’t contain all
the known PPC registry hacks (unlike, say, tweaks2k2
), you may still find its registry tweaking capabilities excellent.
And the list continues… you should really give this app a test ride! (Hope you won’t be disappointed by the ugly and non-structured GUI and the vast number of the configuration options.)
A great app with a lot of features. In the hand of a real PPC geek, however, it feels like a much weaker tool (except for the built-in list of relocatable DLL’s) than SKTools. For an inexperienced PPC user, however, it can be easier to use than SKTools because it has a far prettier and more logical user interface. So, if you find SKTools too complicated, give a try to MemMaid – you certainly won’t regret it! Also, MemMaid is the way to go if you want to be absolutely safe about relocating shared DLL’s to the System Path (read my remarks on this subject in the SKTools section).
Space Reclaimer 2.3
Compared to SKTools or MemMaid, this app is certainly much less capable. I don’t think it’s worth the money - SKTools or MemMaid are much better value for the money.
Pocket Mechanic 1.59
Well, I wouldn’t recommend this application as much as SKTools or MemMaid either. It has far fewer features. Furthermore, you should not use its ‘scan’ function
. Its card benchmarks don’t necessarily result in usable results either – a simple file copy in Total Commander
or Resco File Explorer will give you much
more closer-to-life results. Furthermore, as far as its storage card formatting capabilities are concerned (please read this thread
on the various options), SKTools – or, for that matter, the built-in format
utility of Windows (see the /A
option for allocation unit size) – delivers the same feature set. Finally, with solid-state, flash ROM-based memory cards, it’s useless to use its other capability, defragmentation
. And, if you really want to defragment your cards (because you (also) use MicroDrives), then, the built-in Disk Defragmenter
in Windows will be at hand – for free (even if you don’t have a card reader – then, via Card Export
FastCleanup for Pocket PC v1.3
A free application, with very limited capabilities. If you prefer freeware apps, you can give it a try. If you don’t mind paying for your tools, go for SKTools or MemMaid instead.
Battery Pack Pro 2.0.3
I’ve included this app in my roundup because two of its modules, Power Clean
and Power Adjust
have (some – very limited!) system cleanup and registry tweaking capabilities, respectively. I wouldn’t recommend this application, however, for these tasks, unless you really need its Today capabilities. Otherwise, if you only plan to use its cleaning/tweaking capabilities, it’s a memory-, price- and CPU-hog overkill.
Much as it’s free, it’s absolutely useless because it hasn’t been upgraded to be WM2003-compliant. This means it searches /Windows/Temporary Internet Files/
instead of the subdirectories of /Windows/Profiles/
. That is, it won’t find anything on any new(er) Pocket PC.
How did I test?
In order to be absolutely objective, I’ve made (with a lot of effort and testing!) a table of all the features of the apps. I haven’t used the feature list provided by the developers but checked the actual work myself (actually, the feature lists, in general, only mention “RAM cleanup” and other generic things, which can mean 10-15 things if you scrutinize it). If I had used the “official” feature lists, I wouldn’t have, for example, noticed SpeedClean
’s being only pre-WM2003-compliant.
The comparison table
, as usual, is on an external server
because of the lack on in-line table support in the local forum engine. Sorry!
for some of the tests:
group: cache/cookie/bookmark/ temp log file etc. cleanup, strictly in the file system.
“User-defined Temp directory?
” may need further explanation: the ability to define a custom directory (or, with most tools, two custom directories) to be cleaned up is advantageous. Think of third-party tools creating, say, temp files in the main memory. Then, you just input the directory path in here and the directory is automatically cleaned for you.
“Scan for files of arbitrary (settable) extension?
” is pretty similar in usability to the previous test mentioned. In addition to the wired-in file extensions (.tmp/.bak/.log in general), a program whose log etc. files you may want to clean up may have chosen to give them a special extension. Therefore, the more extensions you can list, the better (SKTools is the winner in this area).
“Generic file finder?
” – it may be advantageous to have some kind of file finder better than the built-in Find utility in Windows Mobile (see Programs/Find
) because, when it comes to finding files, the latter is severely restricted (that is, the only option you can set is “Larger than 64 KB
”). A decent file finder that is (that is, would be – for example, Total Commander 2.0 is buggy in this respect
) capable of file size/date-based searches would be certainly welcome.
“Storage Usage (navigable tree view)
”: to find out which directories occupy the most memory, this, especially if it has a decent tree view (SKTools doesn’t have, unfortunately – MemMaid is better in this respect), may be advantageous. Please note that none of the applications have anything similar to ‘dir /s >outputfilename’
, which is the best way of making a file system directory list ‘snapshot’ to be sent to others over the Internet
WinCE system databases
group: everything related to the System Databases.
“Ability to add new events to DB_notify_events?
” – can you set up any program to be invoked at a given time from inside the cleaning tool? It’s like Cron in Unix
“Dangling (dead) check in DB_notify_events (Notification Queue)?
” – this is a stumbling block for all
the tested apps – not one of them supports finding ‘dead’ links. This is why you can’t fix, for example, the eWallet/Skype/etc. "Notification Error - Cannot execute XXX.exe"
errors using any of these utilities. Which is a pity, indeed, as implementing this feature is, actually, very easy programmatically.
“Dangling pointer check in mailer DB’s?
” – another area none of these apps support. They should, however: there will be a lot of cases when you (seemingly) delete all your mail from inside the built-in Pocket Inbox/Messaging, but the mail bodies aren’t deleted from the file system. That is, deleting from Messaging, in some cases, only cleans up the related WindowsCE system database (which only holds the headers of the mail) and not the \Windows\Messaging
directory in the file system (which holds the bodies of the mail messages, without the headers). Adding support for existence test would programmatically also be very easy based on my explanation
of how Windows Mobile stores mail information and how the related WindowsCE system database and the file system interact.
Boot-time service/program loading control
group: it’s nice to have tools to remove autostart programs or even services. As there’re four areas (one in the file system (\Windows\Startup
), two in the registry (HKLM\Services, HKLM\init
) and one in our old friend, the DB_notify_events
system database) where autostart programs may be started from, I’ve scrutinized the support for the first three of them (as DB_notify_events
is not supported by any of the apps in this respect, I haven’t listed it here). Unfortunately, all the apps could have better support for listing/removing apps – not even SKTools is a 100% performer in this respect because it doesn’t allow for removing services from HKLM\init
(programmatically, it’s, again, very easy – just deleting the given registry entry).
: this group lists the registry cleanup capabilities of the applications.
“HKEY_CLASSES_ROOT extension validity test?
”: in HKEY_CLASSES_ROOT, all the known extensions are listed and also linked to programs that are able to work on files with the given file extension. In this test, I’ve checked (by creating a link that didn’t point to an existing executable file) whether the tested apps are able to spot problems resulting from missing targets (see the Philips thread in the introduction!).
“HKLM\Software\Apps CAB and \Windows\AppMgr existence test?
”: another area of problems is the cluttered HKLM\Software\Apps
. In this test, I’ve checked whether the given app is able to clean up the unnecessary install .CAB
information from here.
group: this is not really related to (not even registry) cleanup; still, it’s nice to have even built-in registry tweaking capabilities in some of the tested apps. As can clearly be seen, SKTools excels in this area too. Well worth the money!
“System path setting?/ Relocate DLL’s from inside the app?
” – read this
threads on the importance/utility of this.
” – note that, much as SKTools is able to set a lot of Font properties, it isn’t able to access/set the WM2003SE
. This shortcoming could very easily be fixed. (Otherwise, another big plus for SKTools.)
Also, SKTools is able to list the hardware button
settings, verbatim, from the Registry. I, however, haven’t made this a separate test case because I didn’t find it that important as SKTools is the only app to be able to list this information and it isn’t able to modify anything in the button-related Registry area.
”Built-in PIE Favorites cleanup?
” – please read this thread
on this subject.
In the Other
category, I’ve listed capabilities that don’t really belong to any groups. All of them are extra services (for example “Storage card handling
”, which SKTools excels at too) not particularly related to cleanup operations.
Finally, the Starting modes
lists two modes in addition to starting the application by hand: to make the application start (and even work in the background, see for example “silent mode
”) upon booting into the operating system. An even more advanced mode of start is scheduling (“Scheduled run?
”). Of the applications, again, SKTools is the best in this respect.
Note that all of these applications run flawlessly on the PDA (except for Battery Pack Pro, but you won’t want to use it solely for cleanup purposes) and can co-exist on the same device – they don’t interfere in each other / the rest of the system.
That is, you can safely install more than one of them on your PDA.