This document discusses the new runtime permissions model in Android Marshmallow. Key points include:
- Apps now request permissions at runtime when the associated feature is needed rather than during install. This improves privacy and reduces permission friction.
- Legacy apps still request permissions at install but users can revoke permissions. Apps won't crash without permissions but may return no data.
- Best practices include only requesting minimal permissions upfront and checking permissions before each use rather than caching results.