CN103294510A - 应用程序动态加载方法和装置 - Google Patents

应用程序动态加载方法和装置 Download PDF

Info

Publication number
CN103294510A
CN103294510A CN2013101984037A CN201310198403A CN103294510A CN 103294510 A CN103294510 A CN 103294510A CN 2013101984037 A CN2013101984037 A CN 2013101984037A CN 201310198403 A CN201310198403 A CN 201310198403A CN 103294510 A CN103294510 A CN 103294510A
Authority
CN
China
Prior art keywords
program module
module
program
storage area
memory
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.)
Pending
Application number
CN2013101984037A
Other languages
English (en)
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 FCAR TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN FCAR 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 FCAR TECHNOLOGY Co Ltd filed Critical SHENZHEN FCAR TECHNOLOGY Co Ltd
Priority to CN2013101984037A priority Critical patent/CN103294510A/zh
Publication of CN103294510A publication Critical patent/CN103294510A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明涉及一种应用程序动态加载方法和装置,在每次加载新的应用程序模块时覆盖同一存储地址的应用程序模块,节省内存空间,提高系统运行速度;而且不用在每次加载新的应用程序时都申请释放内存,减少内存碎片,提高系统运行的稳定性。

Description

应用程序动态加载方法和装置
技术领域
本发明涉及嵌入式系统设计技术领域,尤其涉及一种应用程序动态加载方法和装置。
背景技术
随着电子技术的飞速发展,嵌入式设备应用越来越广泛,复杂度也越来越高。传统嵌入式开发过程中需要将应用系统与操作系统编译链接成一个整体,然后下载到目标机上运行。如果在调试过程中发现问题,需要重新将应用系统与操作系统编译链接成一个整体然后重复下载到目标机上运行的过程,这样的开发流程周期长而且繁琐。
为了适应多样化的嵌入式应用和加快嵌入式系统的开发过程,现有技术中出现动态加载应用程序的技术,将应用程序与操作系统分开编译,在需要用到某一应用时,加载该应用,但该应用程序的模块均额外存储在内存中占用内存空间,需要经常释放内存。
发明内容
本发明的主要目的是提供一种应用程序动态加载方法和装置,旨在通过节省内存提高系统运行速度。
本发明提出一种应用程序动态加载的方法,包括:
侦测用户发送的控制指令;
侦测到用户发送控制指令时,调用存储设备中预存的与所述控制指令对应的程序模块;
将调用的所述程序模块存储在内存中的指定存储区域,并对内存中的指定存储区域的程序模块进行清除处理,并将调用的所述程序模块存储在清除处理后的所述指定存储区域中;
运行调用的在所述指定存储区域中的程序模块。
优选地,所述调用外部存储设备中预存的与所述控制指令相关的程序模块的步骤之前还包括:
将所述程序模块的源代码经过编译链接写入外部存储设备中。
优选地,所述运行所述程序模块的步骤包括:
通过应用程序接口由系统库中调用与所述程序模块对应系统程序;
通过所述系统程序运行所述程序模块。
优选地,所述存储设备为存储卡或硬盘。
本发明还提出一种应用程序动态加载装置,包括:
侦测模块,用于侦测用户发送的控制指令;
调用模块,用于在侦测到用户发送的控制指令时,调用存储设备中预存的与所述控制指令相关的程序模块;
存储模块,用于将调用的所述程序模块存储在内存中的指定存储区域,并对内存中的指定存储区域的程序模块进行清除处理,并将调用的所述程序模块存储在清除处理后的所述指定存储区域中;
运行模块,用于调用的在所述指定存储区域中的程序模块。
优选地,还包括写入模块,用于将所述程序模块的源代码经过编译链接写入外部存储设备中。
优选地,所述运行模块包括:
调用单元,用于通过应用程序接口由系统库中调用与所述程序模块对应系统程序;
运行单元,用于通过所述系统程序运行所述程序模块。
优选地,所述存储设备为存储卡或硬盘。
本发明提出的应用程序动态加载方法和装置,在每次加载新的应用程序模块时覆盖同一存储地址的应用程序模块,节省内存空间,提高系统运行速度;而且不用在每次加载新的应用程序时都申请释放内存,减少内存碎片,提高系统运行的稳定性。
附图说明
图1为本发明应用程序动态加载方法第一实施例的流程示意图;
图2为本发明应用程序动态加载方法第二实施例的流程示意图;
图3为本发明应用程序动态加载方法中运行调用的程序模块的流程示意图;
图4为本发明应用程序动态加载装置第一实施例的结构示意图;
图5为本发明应用程序动态加载装置第二实施例的结构示意图;
图6为本发明应用程序动态加载装置中运行模块的结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面结合附图及具体实施例就本发明的技术方案做进一步的说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明应用程序动态加载方法第一实施例的流程示意图。
本实施例提出的应用程序动态加载方法,包括:
步骤S10,侦测用户发送的控制指令;
步骤S20,侦测到用户发送控制指令时,调用存储设备中预存的与该控制指令对应的程序模块;
在侦测到用户发送的控制指令时,该控制指令需要运行应用程序才能实现,则调用与该控制指令相关的程序模块并运行才能实现该指令所对应的功能。存储装置优选为硬盘、内存卡等。
步骤S30,将调用的所述程序模块存储在内存中的指定存储区域,并对内存中的指定存储区域的程序模块进行清除处理,并将调用的所述程序模块存储在清除处理后的所述指定存储区域中;
步骤S40,运行调用的在所述指定存储区域中的程序模块。
将调用的程序模块保存在内存中,该程序才能在系统中稳定运行,优选将程序模块存储在RAM(random access memory,随机存储器)中。指定地址是指系统为应用程序指定的存储地址,在存储该程序模块的过程中覆盖掉该存储地址中之前运行的程序模块,节省内存。然后在内存中运行该被调用的程序模块。
本实施例提出的应用程序动态加载方法,在每次加载新的应用程序模块时覆盖同一存储地址的应用程序模块,节省内存空间,提高系统运行速度;而且不用在每次加载新的应用程序时都申请释放内存,减少内存碎片,提高系统运行的稳定性。
参照图2,图2为本发明应用程序动态加载方法第二实施例的流程示意图。
基于第一实施例提出本发明应用程序动态加载方法第二实施例,在本实施例中,步骤S10之前还包括:
步骤S50,将程序模块的源代码经过编译链接写入存储设备中。
源代码是指未编译的按照一定的程序设计语言规范书写的文本文件,将设计好的源代码编译成为相应的应用程序,将应用程序写入存储设备中,在需要实现某一中应用时,有存储设备中调用与该应用对应的应用程序。
参照图3,图3为本发明应用程序动态加载方法中运行调用的程序模块的流程示意图。
在第一实施例和第二实施例中,步骤S40包括:
步骤S41,通过应用程序接口由系统库中调用与该程序模块对应系统程序;
步骤S42,通过系统程序运行该程序模块。
应用程序接口是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 应用程序接口而使操作系统去执行应用程序的命令。
参照图4,图4为本发明应用程序动态加载装置第一实施例的结构示意图。
本实施例提出的应用程序动态加载装置,包括:
侦测模块10,用于侦测用户发送的控制指令;
调用模块20,用于在侦测到用户发送的控制指令时,调用存储设备中预存的与该控制指令相应的程序模块;
在侦测到用户发送的控制指令时,该控制指令需要运行应用程序才能实现,则调用与该控制指令相关的程序模块并运行才能实现该指令所对应的功能。存储装置优选为硬盘、内存卡等。
存储模块30,用于将调用的所述程序模块存储在内存中的指定存储区域,并对内存中的指定存储区域的程序模块进行清除处理,并将调用的所述程序模块存储在清除处理后的所述指定存储区域中;
运行模块40,用于运行调用的在所述指定存储区域中的程序模块。
将调用的程序模块保存在内存中,该程序才能在系统中稳定运行,优选将程序模块存储在RAM(random access memory,随机存储器)中。指定地址是指系统为应用程序指定的存储地址,在存储该程序模块的过程中覆盖掉该存储地址中之前运行的程序模块,节省内存。然后在内存中运行该被调用的程序模块。
本实施例提出的应用程序动态加载方法,在每次加载新的应用程序模块时覆盖同一存储地址的应用程序模块,节省内存空间,提高系统运行速度;而且不用在每次加载新的应用程序时都申请释放内存,减少内存碎片,提高系统运行的稳定性。
参照图5,图5为本发明应用程序动态加载装置第二实施例的结构示意图。
基于第一实施例提出本发明序动态加载装置第二实施例,在本实施例中还包括写入模块50,用于将所述程序模块的源代码经过编译链接写入存储设备中。
源代码是指未编译的按照一定的程序设计语言规范书写的文本文件,将设计好的源代码编译成为相应的应用程序,将应用程序写入存储设备中,在需要实现某一中应用时,有存储设备中调用与该应用对应的应用程序。
参照图6,图6为本发明应用程序动态加载装置中运行模块的结构示意图。
在第一实施例和第二实施例中,运行模块40包括:
调用单元41,用于通过应用程序接口由系统库中调用与所述程序模块对应系统程序;
运行单元42,用于通过所述系统程序运行所述程序模块。
应用程序接口是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 应用程序接口而使操作系统去执行应用程序的命令。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种应用程序动态加载方法, 其特征在于,包括:
侦测用户发送的控制指令;
侦测到用户发送控制指令时,调用存储设备中预存的与所述控制指令对应的程序模块;
将调用的所述程序模块存储在内存中的指定存储区域,并对内存中的指定存储区域的程序模块进行清除处理,并将调用的所述程序模块存储在清除处理后的所述指定存储区域中;
运行调用的在所述指定存储区域中的程序模块。
2.根据权利要求1所述的方法,其特征在于,所述调用外部存储设备中预存的与所述控制指令相关的程序模块的步骤之前还包括:
将所述程序模块的源代码经过编译链接写入存储设备中。
3.根据权利要求1或2所述的方法,其特征在于,所述运行所述程序模块的步骤包括:
通过应用程序接口由系统库中调用与所述程序模块对应系统程序;
通过所述系统程序运行所述程序模块。
4.根据权利要求3所述的方法,其特征在于,所述存储设备为存储卡或硬盘。
5.一种应用程序动态加载装置,其特征在于,包括:
侦测模块,用于侦测用户发送的控制指令;
调用模块,用于在侦测到用户发送的控制指令时,调用存储设备中预存的与所述控制指令对应的程序模块;
存储模块,用于将调用的所述程序模块存储在内存中的指定存储区域,并对内存中的指定存储区域的程序模块进行清除处理,并将调用的所述程序模块存储在清除处理后的所述指定存储区域中;
运行模块,用于运行调用的在所述指定存储区域中的程序模块。
6.根据权利要求5所述的装置,其特征在于,还包括写入模块,用于将所述程序模块的源代码经过编译链接写入存储设备中。
7.根据权利要求5或6所述的装置,其特征在于,所述运行模块包括:
调用单元,用于通过应用程序接口由系统库中调用与所述程序模块对应系统程序;
运行单元,用于通过所述系统程序运行所述程序模块。
8.根据权利要求7所述的装置,其特征在于,所述存储设备为存储卡或硬盘。
CN2013101984037A 2013-05-24 2013-05-24 应用程序动态加载方法和装置 Pending CN103294510A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013101984037A CN103294510A (zh) 2013-05-24 2013-05-24 应用程序动态加载方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013101984037A CN103294510A (zh) 2013-05-24 2013-05-24 应用程序动态加载方法和装置

Publications (1)

Publication Number Publication Date
CN103294510A true CN103294510A (zh) 2013-09-11

Family

ID=49095447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013101984037A Pending CN103294510A (zh) 2013-05-24 2013-05-24 应用程序动态加载方法和装置

Country Status (1)

Country Link
CN (1) CN103294510A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714826A (zh) * 2015-03-23 2015-06-17 小米科技有限责任公司 应用主题的加载方法及装置
CN105786554A (zh) * 2014-12-23 2016-07-20 希姆通信息技术(上海)有限公司 一种动态利用内存的方法及设备
CN106371884A (zh) * 2016-09-18 2017-02-01 时瑞科技(深圳)有限公司 通用嵌入式加载应用系统及方法
CN113450627A (zh) * 2021-06-25 2021-09-28 上海商汤临港智能科技有限公司 实验项目运行方法及装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370655B1 (en) * 1998-10-19 2002-04-09 Winbond Electronics Corp. Method and system for reversed-sequence code loading into partially defective memory
CN101452391A (zh) * 2007-12-07 2009-06-10 希姆通信息技术(上海)有限公司 嵌入式系统中的内存装入方法
CN101493775A (zh) * 2009-03-06 2009-07-29 北京北纬通信科技股份有限公司 嵌入式系统的动态加载系统及其加载方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370655B1 (en) * 1998-10-19 2002-04-09 Winbond Electronics Corp. Method and system for reversed-sequence code loading into partially defective memory
CN101452391A (zh) * 2007-12-07 2009-06-10 希姆通信息技术(上海)有限公司 嵌入式系统中的内存装入方法
CN101493775A (zh) * 2009-03-06 2009-07-29 北京北纬通信科技股份有限公司 嵌入式系统的动态加载系统及其加载方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘鹏飞: "基于嵌入式手机平台的内存动态加载技术的研究与应用", 《万方学位论文》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786554A (zh) * 2014-12-23 2016-07-20 希姆通信息技术(上海)有限公司 一种动态利用内存的方法及设备
CN104714826A (zh) * 2015-03-23 2015-06-17 小米科技有限责任公司 应用主题的加载方法及装置
WO2016150104A1 (zh) * 2015-03-23 2016-09-29 小米科技有限责任公司 应用主题的加载方法及装置
KR20160124403A (ko) * 2015-03-23 2016-10-27 시아오미 아이엔씨. 테마 어플리케이션을 로딩하기 위한 방법 및 디바이스
KR101712762B1 (ko) 2015-03-23 2017-03-22 시아오미 아이엔씨. 테마 어플리케이션을 로딩하기 위한 방법 및 디바이스
RU2626089C2 (ru) * 2015-03-23 2017-07-21 Сяоми Инк. Способ и устройство для загрузки приложения темы
CN104714826B (zh) * 2015-03-23 2018-10-26 小米科技有限责任公司 应用主题的加载方法及装置
CN106371884A (zh) * 2016-09-18 2017-02-01 时瑞科技(深圳)有限公司 通用嵌入式加载应用系统及方法
CN106371884B (zh) * 2016-09-18 2019-12-20 时瑞科技(深圳)有限公司 通用嵌入式加载应用系统及方法
CN113450627A (zh) * 2021-06-25 2021-09-28 上海商汤临港智能科技有限公司 实验项目运行方法及装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US11119918B2 (en) Execution using multiple page tables
CN103294510A (zh) 应用程序动态加载方法和装置
CN104298534B (zh) 基于Lua语言的编程方法和装置
CN104657258B (zh) 一种向目标进程内注入Java字节码的方法及装置
US9569234B2 (en) Dynamic bit-width modification of internal pointers of a virtual machine
CN103793249A (zh) 一种Java虚拟机中类库的多线程预加载方法
CN103777978A (zh) 一种基于Linux内核的用户态自动探测3G-USB网卡方法
CN108829465B (zh) 一种基于直接读写flash的本地动态加载系统及方法
CN104239131A (zh) 一种关闭应用程序的方法及装置
CN102004662A (zh) 嵌入式可裁剪式虚拟机
CN103309741B (zh) 调用插件功能的方法和装置
CN103488517A (zh) Php代码编译方法、php代码运行方法及装置
CN104536773B (zh) 基于内存扫描的嵌入式软件动态内存回收方法
CN101763273A (zh) 一种在嵌入式系统的扩展存储器中动态装入代码的方法
CN103544415B (zh) 一种移动平台应用软件的加固方法
CN103530165B (zh) 一种应用于物联网行业的java解决方案
CN104063329B (zh) 64位立即数处理方法及装置
US9471344B1 (en) Hardware support for processing virtual machine instructions
CN100573450C (zh) 在具有与非闪速存储器的系统执行应用程序的方法和设备
CN102508715B (zh) 一种基于多线程的对象调用方法和装置
Kent et al. Hardware/software co-design of a Java virtual machine
CN107025105B (zh) 代码生成方法及装置
US9262186B2 (en) Code rearranger and method for rearranging code for a virtual machine
CN104281443B (zh) 利用tcm实现代码、数据替换的方法
CN103942051A (zh) 基于paas平台的应用部署方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 518000 Guangdong city of Shenzhen province Nanshan District high tech Zone Technology in two Road No. 39 Wanji Industrial Park N401-N406

Applicant after: Shenzhen Fcar Technology Co., Ltd.

Address before: 518000 Guangdong city of Shenzhen province Nanshan District high tech Zone Technology in two Road No. 39 Wanji Industrial Park N401-N406

Applicant before: Shenzhen Fcar Technology Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SHENZHEN FCAR TECHNOLOGY LTD. TO: SHENZHEN FCAR TECHNOLOGY CO., LTD.

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130911