1. A method implemented by a computing device for managing a resource thereof, comprising: determining a first amount of the resource that is used by a first instance of an application while being executed by the computing device, the determining including determining an amount of the resource that is used by a foreground process associated with the first instance of the application and one or more background tasks associated with the first instance of the application; calculating a first predicted resource usage amount for the application based at least on the first amount; storing the first predicted resource usage amount in a data store; determining a second amount of the resource to be allocated to a second instance of the application to be executed by the computing device based at least on the first predicted resource usage amount stored in the data store.