improve performance of adapter implementations by caching index, use data uri where possible in ViewKeyActivity