Personally I like Android declaration of permissions upfront in app (btw: all the critical permissions are usually listed first in red/amber so you wont miss them). During installation, I can know what kind of permissions the app required. Then I can decide whether I want to install it. Plus, for critical permissions, the user will be prompted again to authorize when the app uses those permissions. So it is like two levels of authorization.
As far as I know, iOS never make known an app permissions during installation. Theoretically an app can have ALL permissions (including dangerous ones) and the app still get installed with the user oblivious about it. It is only when you run the app the authorization popup. There is a danger with this too. If the app keeps popping up authorization boxes, then some users just click allow without much thought.