Jump to content

How to package large install??


Guest revolution.cx

Recommended Posts

Guest revolution.cx

Well I finally have Lextionary (dictionary program) for SmartPhone basically finished and I'm running into a serious limitation with the ActiveSync install process and the small amount of memory of the SPV.

The CAB file for Lextionary is about 6.4mb.

ActiveSync copies the CAB file to internal phone memory first (no option for otherwise) and then prompts for the install location on the phone. Obviously a 6.4 mb CAB won't fit on the phone so the install can't happen. I did free up everything I could and installed anyway but it failed and left the partial cab on the phone. This meant there was no storage space on the phone so I rebooted and it couldn't complete the boot. Had to hard reset. POS.

Anyway, my ideas for a solution are:

1. Write a desktop prog that uses RAPI to copy the CAB file directly to the storage card and then executes it, resulting in an install.

2. Pull the database out of the install (it's 95% of the data). When Lextionary is run it downloads the database directly to the phone. This means the user has to have pass through enabled or not mind downloading a rediculous amount of data over the air.

3. Split the database up into multiple CABs which allegedly ActiveSync can handle as one install. I bet it puts up a "select location" dialog on the phone for each one. The individual CABs will have to be 1 or 2 mb anyway in order for most people to have enough free internal space to install.

4. Some simple and elegant solution suggested by members of this forum!!

Any help is appreciated.

Hayes

Link to comment
Share on other sites

Guest Soyale

Your aim should be to keep the application within the bounds of the standard installation/uninstallation process although this is difficult given the size of the file!

A lot here depends on whether you can compress what sounds like a huge dictionary file down to a reasonable size! If you can use some kind of standard algorithm like GZIP and get good compression of the file try the following:

1. Write code to compress and decompress your file

2. Add your extra compressed file to your CAB file. Hopefully it will now be of a reasonable size

3. Create a CE setup DLL. This has two entry and two exit points (Install_Init, Install_Exit, Uninstall_Init, Uninstall_Exit).

4. In Install_Init, make sure you check the install location which is one of the passed parameters. If it is NOT a storage card, inform the user that they cannot install the application to their phone and they must install to a storage card, giving tips on how to achieve this.

5. In Install_Exit decompress your compressed file to your install directory and delete the uncompressed version.

Hey presto. Application installed.

jp

Link to comment
Share on other sites

Guest Carnivor

why not just have the installer do the dictionary prog. then just have it so ppl have to copy the actuall dictionary to a location on the SD card. This leads to possibilities of being able to have multiple languages installed aswell.

Link to comment
Share on other sites

Guest Soyale

Experience tells me that getting users to copy a file to an SD card is not a good end user experience for the majority of users although this would solve the problem.

Link to comment
Share on other sites

Guest revolution.cx

Well it's already compressed since it's a CAB file and any additional compression with a superior algorithm will only get another 5% at most, so that's out as a solution.

Lextionary is a manual install on HPC's since there's some sort of bug in the install sub-system on those devices and they can't handle more than 4 mb or so. It works OK but HPC users these days are pretty used to fending for themselves.

My latest idea is to have a custom install program that calls CE services to get just the dictionary program part installed in the normal way and when that is complete use RAPI calls to install the database on the storage card.

I'll post back here with the results of this experiment...

Link to comment
Share on other sites

Guest revolution.cx

So I wrote a simple RAPI program that copies the CAB file to the storage card and then uses CeCreateProcess() to launch wceload on the cab file. Works like a charm.

User downloads and runs the setup .exe and then they are prompted for install location on the SmartPhone (though storage card is the only place it can go, can't figure how to force that).

Downside: app doesn't show up in desktop add/remove programs, user has to use remove programs on the phone.

Now I just have to add a nice readme and EULA dialog and I'm all set.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.