1. A method of securing an app for execution on a device using an app security program, the method comprising: generating Java class files for the app security program, said generating dictated by a plurality of app security policies separate from the app security program and located in a plurality of policy gates, each policy gate including at least one app security policy, the plurality of policy gates managed by a policy gate manager, wherein said policy gate manager informs each policy gate of each checkpoint that occurs during an execution lifecycle of the security-wrapped app and wherein each policy gate calls a function in response to the checkpoint; replacing Java class files for the app with the Java class files for the app security program, wherein the Java class files for the app that are being replaced function as a proxy between the app and a device operating system; creating a security-wrapped app upon completion of said replacing of Java class files for the app; preparing the security-wrapped app for execution on the device; and re-signing the security-wrapped app with a new key.