论文部分内容阅读
近些年,移动网络发展迅速,智能手机的用户数量也因此急剧增加。手机不再是简单的通讯工具,用户的上网方式开始从PC端转移到移动端。各种移动终端应用程序层出不穷,移动软件市场的竞争越来越激烈。同时用户也开始不再满足于传统的一体化开发交付模式,而开始追求个性化的应用程序。受到模块化开发方式在PC端软件开发中所体现出的灵活性和高效性的启发,帮助开发人员开发满足用户要求的应用程序,和适应当今移动软件开发激烈的竞争,本文提出了Android平台上的模块动态加载技术,实现Android平台上的模块化开发,将应用程序划分为宿主程序和各个模块程序,通过宿主程序与功能模块交互,而功能模块之间相互独立,降低应用程序开发的耦合度,更有利于开发人员之间的分工合作,构建更加灵活的应用程序。通过研究和对比Windows动态链接库、嵌入式Linux动态加载方法、Java动态加载机制,以及对OSGi技术的深入研究,本文总结出OSGi技术适用于Android平台的模块动态加载方法的实现。对Apache Felix、Equinox和Knopflerfish三种OSGi开源框架实现进行比较,本文选择更为轻量级的Knopflerfish框架与Android平台相结合,设计实现一个简单的模块动态加载框架。该框架以OSGi技术为基础,通过对比OSGi框架的运行环境层与Android平台,发现两者的相通之处。将OSGi技术与Android平台相结合,实现Android平台上的模块化开发。将OSGi框架的模块层、生命周期层、服务层在Knopflerfish框架原实现方法的基础上,针对Android平台进行修改和扩充,使OSGi框架适用于Android平台。经过在实际项目中的应用和测试,验证了该框架能够实现Android应用程序运行时模块的动态加载与卸载,添加和删除功能模块时,不需要重新编译应用程序。模块动态加载框架降低了Android平台上软件开发的复杂度和耦合度,有效提高了开发效率,降低了开发成本,提高了代码的重用性。开发的应用程序也更加灵活,满足了用户对个性化应用程序的需求。