CN101702130A - 一种移动终端加载共享函数库的方法和装置 - Google Patents

一种移动终端加载共享函数库的方法和装置 Download PDF

Info

Publication number
CN101702130A
CN101702130A CN200910212394A CN200910212394A CN101702130A CN 101702130 A CN101702130 A CN 101702130A CN 200910212394 A CN200910212394 A CN 200910212394A CN 200910212394 A CN200910212394 A CN 200910212394A CN 101702130 A CN101702130 A CN 101702130A
Authority
CN
China
Prior art keywords
sharing function
file
function library
collector
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910212394A
Other languages
English (en)
Other versions
CN101702130B (zh
Inventor
金威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Wuju Technology Co Ltd
Original Assignee
Shenzhen Wuju Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Wuju Technology Co Ltd filed Critical Shenzhen Wuju Technology Co Ltd
Priority to CN 200910212394 priority Critical patent/CN101702130B/zh
Publication of CN101702130A publication Critical patent/CN101702130A/zh
Application granted granted Critical
Publication of CN101702130B publication Critical patent/CN101702130B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明提出了一种移动终端加载共享函数库的方法和装置。通过将应用程序D、导入接口头文件B和源文件C一起编译成预定格式的文件E,并将共享函数库文件A与文件E存储在外部存储中,可以将相对通用的模块独立编译成共享函数库。本发明可以缩减应用程序的大小,降低运行时消耗的内存空间,避免不必要的资源浪费,尤其适用于嵌入式的环境。另外,在修改程序时,也不必编译所有的模块,提高了程序的编译速度。

Description

一种移动终端加载共享函数库的方法和装置
技术领域
本发明涉及应用程序的运行,特别是涉及移动终端加载共享函数库的方法和装置。
背景技术
移动终端应用程序的可下载是指,移动终端能支持将某些独立的可选择可替换的软件模块并且将其下载到移动终端中以实现不同的扩展功能。目前这种功能可扩展性已被看作“智能手机”的重要功能之一。本发明所称的移动终端是指手机、个人数字助理(PDA,Personal Digital Assistant)等具有无线通讯功能的小型手持式移动通信设备。
通过将移动终端外部存储(譬如手机扩展卡)上的代码和数据拷入内存中运行解决了非智能手机不能动态加载运行应用程序的限制。但是应用程序之间彼此独立,而每个应用又由许多模块组成,各模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。其中可能存在一些模块的功能较为通用,在不同的应用中都会被使用。如果将所有模块的源代码都静态编译到应用程序中,会有两个问题:一是增加了应用程序的大小,不仅占用更多的磁盘空间,运行时也会消耗较大的内存空间,造成系统资源的浪费;其二,每次修改程序时都必须编译所有源代码,增加了编译过程的复杂性。
发明内容
针对现有技术的上述不足,本发明的一个目的是提供一种移动终端加载共享函数库的方法,可以将相对通用的模块独立编译成共享函数库。
本发明移动终端加载共享函数库的方法,包括:
步骤1:将共享函数库编译成预定格式的共享函数库文件A,所述共享函数库至少提供导入接口头文件B;
步骤2:将所述导入接口头文件B解析成相应的源文件C;
步骤3:将应用程序D、导入接口头文件B和源文件C一起编译成预定格式的文件E;
步骤4:将所述共享函数库文件A与所述文件E存储在所述移动终端外部存储装置中;
步骤5:从所述移动终端外部存储装置中加载运行所述文件E,并加载所述共享函数库文件A。
作为上述技术方案的优选,所述步骤5具体为:
步骤51:从所述移动终端外部存储装置中加载运行所述文件E;
步骤52:判断是否需要调用所述共享函数库文件A,若是,从所述移动终端外部存储装置中加载所述共享函数库文件A;若否,直接运行所述应用程序D。
作为上述技术方案的优选,该方法还包括:
步骤6:判断是否需要卸载所述共享函数库A,若是,则卸载所述共享函数库A,若否,则运行应用程序D。
作为上述技术方案的优选,所述共享函数库文件A还编译成提供共享函数库入口处所创建的导出函数的名称和/或地址映射表的格式。
作为上述技术方案的优选,所述源文件C用于负责完成程序跳转和上下文处理。
本发明的另一个目的是提供一种移动终端加载共享函数库的装置,包括:
第一编译模块,用于将共享函数库编译成预定格式的共享函数库文件A;
解析模块,用于将所述第一编译模块提供的导入接口头文件B解析成相应的源文件C;
第二编译模块,用于将应用程序D、第一编译模块提供的导入接口头文件B和解析模块提供的源文件C一起编译成文件E;
存储模块,用于将所述第一编译模块的共享函数库文件A与所述第二编译模块编译的文件E存储在所述移动终端外部存储装置中;
加载及运行模块,用于从所述移动终端外部存储装置中加载运行所述编译模块的文件E,并加载所述第一编译模块编译的共享函数库文件A。
作为上述技术方案的优选,所述加载及运行模块具体包括:
第一加载模块,用于从所述移动终端外部存储装置中加载运行所述第二编译模块编译的文件E;
第一判断模块,用于判断是否需要调用所述共享函数库文件A;
第二加载模块,用于从所述移动终端外部存储装置中加载所述共享函数库A。
作为上述技术方案的优选,该装置还包括:
第二判断模块,用于判断是否需要卸载所述共享函数库A;
卸载模块,用于当所述第二判断模块的结果为是时,卸载所述共享函数库A。
作为上述技术方案的优选,所述第一编译模块还将共享函数库文件A编译成提供共享函数库入口处所创建的导出函数的名称和/或地址映射表的格式。
作为上述技术方案的优选,所述解析模块中的源文件C用于负责完成程序跳转和上下文处理。
本发明构建共享函数库的方法和装置,将相对通用的模块独立编译成共享函数库,应用程序在运行时可根据需要加载相应的共享函数库。因此可以缩减应用程序的大小,降低运行时消耗的内存空间,避免不必要的资源浪费,尤其适用于嵌入式的环境。另外,在修改程序时,也不必编译所有的模块,提高了程序的编译速度。
附图说明
图1是本发明加载共享函数库方法的一优选实施例的流程图;
图2是本发明实施例的单元关系图;
图3是本发明加载共享函数库方法的另一优选实施例的流程图;
图4是本发明加载共享函数库装置的一优选实施例的结构简图;
图5是本发明加载共享函数库装置的另一优选实施例的结构简图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步的详细说明。对于所属技术领域的技术人员而言,从对本发明的详细说明中,本发明的上述和其他目的、特征和优点将显而易见。
实施例1
本发明移动终端加载共享函数库方法的优选实施例的流程图如图1所示,其包括:
步骤1:将共享函数库编译成预定格式的共享函数库文件A,所述共享函数库至少提供导入接口头文件B;
步骤2:将所述导入接口头文件B解析成相应的源文件C;
步骤3:将应用程序D、导入接口头文件B和源文件C一起编译成预定格式的文件E;
步骤4:将所述共享函数库文件A与所述文件E存储在所述移动终端外部存储装置中;
步骤5:从所述移动终端外部存储装置中加载运行所述文件E,并加载所述共享函数库文件A。
可以通过图2所示的单元关系图来实现本发明共享函数库的编译。
实施例2
本发明加载共享函数库方法的另一优选实施例的流程图如图3所示,其包括:
步骤201:先制作共享函数库,并编译成预定格式的共享函数库文件A;
其中,预定格式的共享函数库文件A要提供所导出的函数的具体体现、与导出函数相对应的提供给应用程序使用的导入接口头文件B和共享函数库入口处所创建的导出函数的名称与地址映射表。
步骤202:使用文件生成工具将共享函数库提供的导入接口头文件B解析生成相应的源文件C;
其中,源文件C主要负责完成程序跳转和上下文处理。
步骤203:应用程序D、导入接口头文件B和步骤202中生成的相应的源文件C一起编译成预定格式的文件E;
步骤204:将共享函数库A与步骤203中应用程序编译好的文件E放入移动终端外部存储(譬如手机扩展卡)中;
步骤205:用户启动加载应用程序到移动终端;
步骤206:装载运行步骤203中编译好的文件;
步骤207:运行过程中判断是否需要调用共享函数库A,需要调用则执行步骤208;不需要调用共享函数库则运行应用程序(步骤211)即可;
步骤208:装载共享函数库A;
步骤209:判断是否需要卸载共享函数库A,需要卸载则卸载共享函数库A(步骤210),不需要卸载则继续运行应用程序(步骤211);
步骤210:卸载共享函数库A;
步骤211:继续运行应用程序。
实施例3
本发明加载共享函数库装置的优选实施例的结构简图如图4所示,其包括:
第一编译模块31,用于将共享函数库编译成预定格式的共享函数库文件A;
解析模块32,用于将所述第一编译模块提供的导入接口头文件B解析成相应的源文件C;
第二编译模块33,用于将应用程序D、第一编译模块提供的导入接口头文件B和解析模块提供的源文件C一起编译成文件E;
存储模块34,用于将所述第一编译模块的共享函数库文件A与所述第二编译模块编译的文件E存储在所述移动终端外部存储装置中;
加载及运行模块35,用于从所述移动终端外部存储装置中加载运行所述编译模块的文件E,并加载所述第一编译模块编译的共享函数库文件A。
实施例4
本发明加载共享函数库装置的另一优选实施例的结构简图如图5所示,其包括相互关联的编译单元4A和加载及运行单元4B。
其中,编译单元4A具体包括:
第一编译模块41,用于将共享函数库编译成预定格式的共享函数库文件A;
解析模块42,用于将所述第一编译模块提供的导入接口头文件B解析成相应的源文件C;
第二编译模块43,用于将应用程序D、第一编译模块提供的导入接口头文件B和解析模块提供的源文件C一起编译成文件E;
存储模块44,用于将所述第一编译模块的共享函数库文件A与所述第二编译模块编译的文件E存储在所述移动终端外部存储装置中。
加载及运行单元4B具体包括:
第一加载模块45,用于从所述移动终端外部存储装置中加载运行所述第二编译模块编译的文件E;
第一判断模块46,用于判断是否需要调用所述共享函数库文件A;
第二加载模块47,用于从所述移动终端外部存储装置中加载所述共享函数库A;
第二判断模块48,用于判断是否需要卸载所述共享函数库A;
卸载模块49,用于当所述第二判断模块的结果为是时,卸载所述共享函数库A。
本发明移动终端加载共享函数库的方法和装置,将相对通用的模块独立编译成共享函数库,应用程序在运行时可根据需要加载相应的共享函数库。因此可以缩减应用程序的大小,降低运行时消耗的内存空间,避免不必要的资源浪费,尤其适用于嵌入式的环境。另外,在修改程序时,也不必编译所有的模块,提高了程序的编译速度。
应当理解,本发明虽然已通过以上实施例及其附图而清楚说明,然而在不背离本发明精神及其实质的情况下,所属技术领域的技术人员当可根据本发明作出各种相应的变化和修正,但这些相应的变化和修正都应属于本发明的权利要求的保护范围。

Claims (10)

1.一种移动终端加载共享函数库的方法,其特征在于,包括:
步骤1:将共享函数库编译成预定格式的共享函数库文件A,所述共享函数库至少提供导入接口头文件B;
步骤2:将所述导入接口头文件B解析成相应的源文件C;
步骤3:将应用程序D、导入接口头文件B和源文件C一起编译成预定格式的文件E;
步骤4:将所述共享函数库文件A与所述文件E存储在所述移动终端外部存储装置中;
步骤5:从所述移动终端外部存储装置中加载运行所述文件E,并加载所述共享函数库文件A。
2.如权利要求1所述的方法,其特征在于,所述步骤5具体为:
步骤51:从所述移动终端外部存储装置中加载运行所述文件E;
步骤52:判断是否需要调用所述共享函数库文件A,若是,从所述移动终端外部存储装置中加载所述共享函数库文件A;若否,直接运行所述应用程序D。
3.如权利要求1所述的方法,其特征在于,还包括:
步骤6:判断是否需要卸载所述共享函数库A,若是,则卸载所述共享函数库A,若否,则运行应用程序D。
4.如权利要求1所述的方法,其特征在于,所述共享函数库文件A还编译成提供共享函数库入口处所创建的导出函数的名称和/或地址映射表的格式。
5.如权利要求1所述的方法,其特征在于,所述源文件C用于负责完成程序跳转和上下文处理。
6.一种移动终端加载共享函数库的装置,其特征在于,包括:
第一编译模块,用于将共享函数库编译成预定格式的共享函数库文件A;
解析模块,用于将所述第一编译模块提供的导入接口头文件B解析成相应的源文件C;
第二编译模块,用于将应用程序D、第一编译模块提供的导入接口头文件B和解析模块提供的源文件C一起编译成文件E;
存储模块,用于将所述第一编译模块的共享函数库文件A与所述第二编译模块编译的文件E存储在所述移动终端外部存储装置中;
加载及运行模块,用于从所述移动终端外部存储装置中加载运行所述编译模块的文件E,并加载所述第一编译模块编译的共享函数库文件A。
7.如权利要求6所述的装置,其特征在于,所述加载及运行模块具体包括:
第一加载模块,用于从所述移动终端外部存储装置中加载运行所述第二编译模块编译的文件E;
第一判断模块,用于判断是否需要调用所述共享函数库文件A;
第二加载模块,用于从所述移动终端外部存储装置中加载所述共享函数库A。
8.如权利要求6所述的装置,其特征在于,还包括:
第二判断模块,用于判断是否需要卸载所述共享函数库A;
卸载模块,用于当所述第二判断模块的结果为是时,卸载所述共享函数库A。
9.如权利要求6所述的装置,其特征在于,所述第一编译模块还将共享函数库文件A编译成提供共享函数库入口处所创建的导出函数的名称和/或地址映射表的格式。
10.如权利要求6所述的装置,其特征在于,所述解析模块中的源文件C用于负责完成程序跳转和上下文处理。
CN 200910212394 2009-11-12 2009-11-12 一种移动终端加载共享函数库的方法和装置 Expired - Fee Related CN101702130B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910212394 CN101702130B (zh) 2009-11-12 2009-11-12 一种移动终端加载共享函数库的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910212394 CN101702130B (zh) 2009-11-12 2009-11-12 一种移动终端加载共享函数库的方法和装置

Publications (2)

Publication Number Publication Date
CN101702130A true CN101702130A (zh) 2010-05-05
CN101702130B CN101702130B (zh) 2012-12-26

Family

ID=42157047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910212394 Expired - Fee Related CN101702130B (zh) 2009-11-12 2009-11-12 一种移动终端加载共享函数库的方法和装置

Country Status (1)

Country Link
CN (1) CN101702130B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147743A (zh) * 2011-03-28 2011-08-10 博视联(苏州)信息科技有限公司 加快嵌入式系统应用程序启动速度的方法
CN103186730A (zh) * 2013-03-26 2013-07-03 北京深思数盾科技有限公司 保护.net软件安全的方法和设备
CN103246848A (zh) * 2013-03-26 2013-08-14 北京深思数盾科技有限公司 保护软件安全的方法和设备
CN103729224A (zh) * 2013-12-30 2014-04-16 广州华多网络科技有限公司 基于开放平台的应用加载方法及装置
CN107077365A (zh) * 2014-09-19 2017-08-18 微软技术许可有限责任公司 有选择地加载预编译的头部和/或其部分
CN107085514A (zh) * 2017-03-06 2017-08-22 北京安博通科技股份有限公司 共享库升级方法及装置
CN107292132A (zh) * 2016-03-30 2017-10-24 北京娜迦信息科技发展有限公司 用于安卓系统的共享对象文件的加载方法与装置
CN107316245A (zh) * 2017-06-19 2017-11-03 泰康保险集团股份有限公司 费用理算方法及系统
CN109739824A (zh) * 2018-12-28 2019-05-10 斑马网络技术有限公司 日志获取方法及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100552628C (zh) * 2005-09-02 2009-10-21 腾讯科技(深圳)有限公司 在无线二进制运行环境平台实现动态链接库方法
CN100414501C (zh) * 2006-07-18 2008-08-27 华为技术有限公司 一种嵌入式操作系统加载逻辑文件的方法和嵌入式系统
CN100492286C (zh) * 2007-02-02 2009-05-27 浙江大学 一种嵌入式系统开发平台图形库的性能优化设计方法
CN101470619A (zh) * 2007-12-29 2009-07-01 安凯(广州)软件技术有限公司 一种基于微核操作系统的应用程序动态加载方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147743A (zh) * 2011-03-28 2011-08-10 博视联(苏州)信息科技有限公司 加快嵌入式系统应用程序启动速度的方法
CN103186730B (zh) * 2013-03-26 2016-05-18 北京深思数盾科技股份有限公司 保护.net软件安全的方法和设备
CN103186730A (zh) * 2013-03-26 2013-07-03 北京深思数盾科技有限公司 保护.net软件安全的方法和设备
CN103246848A (zh) * 2013-03-26 2013-08-14 北京深思数盾科技有限公司 保护软件安全的方法和设备
CN103246848B (zh) * 2013-03-26 2016-05-18 北京深思数盾科技股份有限公司 保护软件安全的方法和设备
CN103729224B (zh) * 2013-12-30 2017-06-16 广州华多网络科技有限公司 基于开放平台的应用加载方法及装置
CN103729224A (zh) * 2013-12-30 2014-04-16 广州华多网络科技有限公司 基于开放平台的应用加载方法及装置
CN107077365A (zh) * 2014-09-19 2017-08-18 微软技术许可有限责任公司 有选择地加载预编译的头部和/或其部分
CN107292132A (zh) * 2016-03-30 2017-10-24 北京娜迦信息科技发展有限公司 用于安卓系统的共享对象文件的加载方法与装置
CN107292132B (zh) * 2016-03-30 2023-03-14 北京娜迦信息科技发展有限公司 用于安卓系统的共享对象文件的加载方法与装置
CN107085514A (zh) * 2017-03-06 2017-08-22 北京安博通科技股份有限公司 共享库升级方法及装置
CN107085514B (zh) * 2017-03-06 2021-02-19 北京安博通科技股份有限公司 共享库升级方法及装置
CN107316245A (zh) * 2017-06-19 2017-11-03 泰康保险集团股份有限公司 费用理算方法及系统
CN109739824A (zh) * 2018-12-28 2019-05-10 斑马网络技术有限公司 日志获取方法及设备

Also Published As

Publication number Publication date
CN101702130B (zh) 2012-12-26

Similar Documents

Publication Publication Date Title
CN101702130B (zh) 一种移动终端加载共享函数库的方法和装置
US8281169B2 (en) Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
CN101833464A (zh) 一种移动终端分段加载应用程序的方法及装置
CN101458629B (zh) 嵌入式实时操作系统中实现动态加载的方法和装置
CN103729210B (zh) 一种实现一个刷机包支持多种制式智能终端的方法及装置
CN101673204A (zh) 一种基于arm的手机应用程序动态加载方法
CN104267981B (zh) 一种加载桌面上的应用布局的方法及装置
CN103902265A (zh) 一种应用实现方法及相关装置
CN101937356B (zh) 一种编译WebKit浏览器的方法及装置
CN101840345A (zh) 一种配置参数的识别方法、系统及嵌入式设备
CN102323887A (zh) 基于浏览器引擎的动态加载Widget的方法及移动终端
CN104731622A (zh) 一种应用程序的加载方法、装置和移动终端
CN102830959A (zh) 一种嵌入式浏览器接口动态扩展方法及系统
CN101894028A (zh) Linux内核镜像数据支持多种CPU的实现方法及装置
CN105320558A (zh) 一种移动终端及其启动的方法
CN107562499A (zh) 应用加载的方法、装置和计算机可读存储介质
US7574705B2 (en) Method and apparatus for efficiently resolving symbolic references in a virtual machine
CN101847104A (zh) 一种内存参数的配置方法、系统及嵌入式设备
CN101714120A (zh) 资料存储系统及方法
US10348867B1 (en) Enhanced protocol socket domain
CN100568178C (zh) 一种控件添加方法
CN105893098A (zh) 智能卡应用平台装载、应用程序安装及运行的方法及系统
CN114489827B (zh) 动态库加载方法、核部署的调整方法及相关装置
CN101770508B (zh) 移动通信终端中的数据访问方法和设备
CN102202129A (zh) 实现手机操作系统加载的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121226

Termination date: 20131112