I am guess ing this "hack" I am suggesting below is not the true Android way, but, an APK is a zip file. If you unzip the APK, you could probably read the package name from the contained manifest XML and get the icon from the contents as well.
If the app is not installed then you will need to unpack the APK file and parse the manifest file. It is not so simple as the manifest file is compiled into a binary file.