The real successful strategy is to do it very slowly and gradually. With each release make it a tiny bit more annoying to install and run non-store apps. Make them slower - "this app is not trusted so it needs to be monitored for your safety which might negatively affect its performance". Users will prefer store apps and will put pressure on app developers to publish on app store.
If they do it well then hardly anybody will even notice they finally killed the non-store apps.