1. A non-transitory computer-readable medium embodying a program executable in at least one computing device, comprising: code that analyzes binary code of an application to determine a first listing of classes and a first listing of methods, wherein the first listing of classes includes local but not external classes used in the application, and the first listing of methods includes local but not external methods used in the application; code that analyzes metadata of the application to determine a second listing of classes and a second listing of methods, wherein the second listing of classes includes both local and external classes used in the application, and the second listing of methods includes both local and external methods used in the application; code that determines a listing of external classes from the first listing of classes and the second listing of classes; code that determines a listing of external methods from the first listing of methods and the second listing of methods; code that identifies a plurality of public application programming interface (API) definitions from a plurality of header files; and code that determines a plurality of public APIs invoked by the application by comparing the listing of external classes and the listing of external methods with the plurality of public API definitions.