A method of monitoring portable communication devices to analyze context data to maximize performance, the method being performed by a portable computing device, and the method comprising: monitoring context data on a portable communication device of a user wherein context data comprises at least two of: time of day; location; signal strength of various communication forms; applications used; throughput needed for the applications; latency needed; battery usage; analyzing the context data; determining optimal connection characteristics based on the analysis of the context data by determining, based on the analysis of a plurality of points in time in the past, a latency threshold and a bandwidth threshold in view of the apps in use and the battery life available at the present time; receiving communication availability indications from a plurality of communication forms; determining communication characteristics of the communication forms wherein the communication characteristics comprise at least two of: latency; bandwidth; battery requirements; signal strength; error rate; analyzing the communication characteristics; comparing the communication characteristics to the optimal connection characteristics; determining a best fit communication form by determining which communication form is over the latency threshold and over the bandwidth threshold and results in the minimum battery drain; and suggesting the best fit communication form be used, wherein analyzing the context data further comprises: analyzing the total battery drain considering other the context data at a point in time; analyzing the drain rate of the battery for specific apps by considering the context data at the point in time; analyzing the bandwidth usage rate for the specific apps at the point in time; analyzing the latency rate required by the specific apps at the point in time; analyzing the current battery level at the point in time; and analyzing the battery drain by each communication form. monitoring context data on a portable communication device of a user wherein context data comprises at least two of: time of day; location; signal strength of various communication forms; applications used; throughput needed for the applications; latency needed; battery usage; time of day; location; signal strength of various communication forms; applications used; throughput needed for the applications; latency needed; battery usage; analyzing the context data; determining optimal connection characteristics based on the analysis of the context data by determining, based on the analysis of a plurality of points in time in the past, a latency threshold and a bandwidth threshold in view of the apps in use and the battery life available at the present time; receiving communication availability indications from a plurality of communication forms; determining communication characteristics of the communication forms wherein the communication characteristics comprise at least two of: latency; bandwidth; battery requirements; signal strength; error rate; latency; bandwidth; battery requirements; signal strength; error rate; analyzing the communication characteristics; comparing the communication characteristics to the optimal connection characteristics; determining a best fit communication form by determining which communication form is over the latency threshold and over the bandwidth threshold and results in the minimum battery drain; and suggesting the best fit communication form be used, wherein analyzing the context data further comprises: analyzing the total battery drain considering other the context data at a point in time; analyzing the drain rate of the battery for specific apps by considering the context data at the point in time; analyzing the bandwidth usage rate for the specific apps at the point in time; analyzing the latency rate required by the specific apps at the point in time; analyzing the current battery level at the point in time; and analyzing the battery drain by each communication form. analyzing the total battery drain considering other the context data at a point in time; analyzing the drain rate of the battery for specific apps by considering the context data at the point in time; analyzing the bandwidth usage rate for the specific apps at the point in time; analyzing the latency rate required by the specific apps at the point in time; analyzing the current battery level at the point in time; and analyzing the battery drain by each communication form.