论文部分内容阅读
随着第四代通信技术4G如火如荼的发展推广,无线带宽和传输速度都得到了空前的提升,为智能移动终端添加内容丰富的应用提供了良好的平台。随着手机应用APP越来越多,安装包也逐渐增多,这样容易造成手机内存的浪费,以至于用户体验变差。因此,APP的开发与更新对于APP开发者的要求越来越高。目前广泛使用的技术是DL的Android动态加载框架技术,该框架简单、开源,兼容性良好,但是也有许多的不足之处:开发者使用不透明,开发软件时需要系统掌握全部要点,开发层的四大组件支持的不够,资源和类的加载比较累赘,过多依赖that语法等。本文提出的技术方案是为Android系统设计出一套新的便于插件化开发的基础框架-MyFlex。满足了开发者独立开发插件apk以及集成到宿主中的需求。进行需求分析,然后确定技术框架的功能,再编写程序的代码,调试程序,运行程序,并对程序进行优化完善。MyFlex插件化框架实现的技术点类的加载技术、资源加载技术、四大组件技术作为本文研究的重点。MyFlex插件化框架的类加载的技术采用通ClassLoader动态加载未安装的apk。资源加载的技术通过通过调用AssetManager中的addAssetPath方法,决解资源加载问题。对四大组件的深入分析了Android系统的Framework源码,对四大组件的特性分析,对于Activity通过实现代InstrumentationWrapper,Hook掉AMS在通过调用StartActivity的时候重定向插件的Activity,映射成框架占坑的Activity,系统启动完成后回到Activity时候再次重新映射回到插件Activity达到Activity的生命周期的管理;对于Service是在插件化框架中占坑Service,通过分发代理机制自己开发一套机制维护Service的生命周期管理。本插件化框架MyFlex实现了开发者使用透明化,类的加载技术、资源加载技术、四大组件技术支持的很好,不再依赖于that的语法。实现了APP以插件的形式添加进来,插件不需要安装,只需要用户按需下载到某个位置,使用的时候以动态形式加载进来。经过验证,本文提出的技术方案能够多方位多角度考虑到用户可能的运用场景,用户使用方便。