Patent ID: 9569184
Date: 2017-02-14
CPC Classifications: G06F

Claim:
1. A method comprising: receiving, at a computing device, at least one device-type-specific installation package for an application from an online provider, the at least one device-type-specific installation package comprising a file with non-executable machine dependent intermediate language (MDIL) code generated by the online provider for the application, one or more resource files that can be used by the application when it is executed, a listing of files that indicates at least one of a set of MDIL files included in the at least one device-type-specific installation package, and a listing of one or more libraries that are to be bound to the code of respective indicated MDIL files, wherein the non-executable MDIL code was previously compiled remotely from the computing device and transmitted by the online provider, and wherein the non-executable MDIL code includes machine-dependent instructions and pseudo instructions with unresolved symbolic references to be resolved into native code during installation of the application, the machine-dependent instructions being based on a processor instruction set for a processor; wherein the at least one device-type-specific installation package was previously stored remotely from the computing device, along with a variety of other device-type-specific installation packages, at an online marketplace; at the computing device, installing the application on the computing device by generating a native image for the application by binding the non-executable MDIL code, the generating the native image comprising: updating a set of libraries on the computing device, the set of libraries including at least one library of the one or more libraries bound to the portion of the non-executable MDIL code; after the updating of the set of libraries on the computing device, generating an updated native image for the application by binding the portion of the non-executable MDIL code with the at least one library of the one or more libraries, wherein the binding avoids re-compilation on the computing device for the application in response to the updating of the set of libraries.