I followed the instructions in docs.rhomobile and was able to decouple the application from webkit.
This allows you to package your app without webkit, hence reducing the footprint significantly.
Have you included the following to your build.yml file?
Also, was the RhoElements shared runtime installed on the device?
For your 3rd party libraries, you may want to house them in the public folder. Alternatively, they could package them up and deployed as a separate .cab file and put in the designated folder(s).
I did the same thing you did:
1. I installed the latest version of RhoElement cab file in the windows mobile device;
2. I added the "use_shared_runtime:yes" in build.yml
The thing is I found not only the 3rd party libraries, but also my extension, and Rhodes extensions are all gone, for example, we use zlib, and specify it in the build.yml,
but it is not in my application folder. Anyway there is a \lib folder in the application when you build as non-shared mode, but it is gone when you build the app as shared mode.
I don't know how to deal with it.
It appears as the /lib folder is part of the RhoE shared runtime install and not the app, therefore containing only standard libraries and hence missing your 3rd party libs. My thought here is to re-build a RhoE shared runtime that includes the extensions as per buld.yml.
Let me do some more digging.
Here is what I found: extension libraries are loaded and deployed along with the RhoE shared runtime. As suspected, in order to incorporate extensions into the underlying runtime a new runtime needs to be created. The project for this ships with RhoStudio... Can be located here: "D:\MotorolaRhoMobileSuite220.127.116.11\RhoElements2"
Once the project is loaded and setup in your workspace proceed with viewing the Buiid.yml file. Here are several relevant steps to do:
- Under wm: point to the proper sdk:
- Add your specific extensions:
- Its important NOT to change the project name... leave as "name: RhoElements". This will ensure it gets install in the proper folder structure your application will look in.
- Don't forget to add physical folders containing 3rd libraries into the project
This should build a RhoE shared runtime including your extensions to support the application.
Hope this proves to be helpful.
Do you mean extensions should be included within the RhoElement module? This is not good. I believe they should be included in the application module, since they are application specific. If they have to be in the RhoElement module, then it is pointless for shared mode.
It means every time we have to build 2 modules, one for RhoElement, and one for application. What if there 2 two different app use different extensions, but both use RhoElement?
I feel it looks like a bug for building the shared module for RhoMobile platform
Another way to look at it is that extensions are avail and shared by all applications... so extensions are not duplicated in apps, hence the term RhoElements shared runtime.