There are three main types of menus in Android: context menus, options menus, and submenus. Context menus appear with a long press on a view and don't support icons. Options menus appear when the device menu button is pressed and support icons. Submenus are used to organize related menu items under a title. It is best to define menus in XML resource files rather than creating them programmatically in code.