Is it possible to change an application icon directly from the program?
I mean, change icon.png
in the res\drawable
folder.
I would like to let users to change application's icon from the program so next time they would see the previously selected icon in the launcher.
Assuming you mean changing the icon shown on the home screen, this could easily be done by creating a widget that does exactly this. Here's an article that demonstrate how that can be accomplished for a "new messages" type application similar to iPhone: