Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MODULE INITIALIZATION METHOD AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2018/040925
Kind Code:
A1
Abstract:
The invention relates to the field of system initialization, and specifically, to a module initialization method and system. The method comprises: preconfiguring a module initialization program; configuring the module initialization program to be in a non-root partition; and adding, into a system initialization script, a line to initialize the module initialization program. The embodiment is utilized to separate, from a system initialization program, a module initialization program, and configure the module initialization program to be in a non-root partition. As a result, an initialization process of a module can be modified without modifying the corresponding system, increasing the level of system modulization.

Inventors:
WU XUAN (CN)
CHEN QINGBIN (CN)
WANG BIN (CN)
Application Number:
PCT/CN2017/097821
Publication Date:
March 08, 2018
Filing Date:
August 17, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FUJIAN LANDI COMMERCIAL EQUIP (CN)
International Classes:
G06F9/44
Foreign References:
CN106371839A2017-02-01
CN102486723A2012-06-06
CN105468376A2016-04-06
CN101140523A2008-03-12
Attorney, Agent or Firm:
BORSAM INTELLECTUAL PROPERTY (FUZHOU) (CN)
Download PDF:
Claims:
权利要求书

一种模块初始化的方法, 其特征在于, 包括:

预设模块初始化程序;

设置所述模块初始化程序于非根分区;

添加启动所述模块初始化程序的语句至系统初始化脚本。

根据权利要求 1所述的一种模块初始化的方法, 其特征在于, 所述模 块初始化程序, 包括:

预设模块初始化顺序表; 所述模块初始化顺序表包括特定模块的名称 、 初始化脚本路径及配置信息;

依次获取所述模块初始化顺序表中一特定模块的初始化脚本路径; 通过套接字通信方式发送所述路径至系统初始化程序。

根据权利要求 2所述的一种模块初始化的方法, 其特征在于, 所述模 块初始化程序, 还包括:

添加新增模块的名称、 初始化脚本路径及配置信息至所述模块初始化 顺序表。

根据权利要求 2所述的一种模块初始化的方法, 其特征在于, 所述模 块初始化程序, 还包括:

获取待修改模块的名称;

修改所述模块初始化顺序表中所述待修改模块的相应的信息; 更新所述模块初始化顺序表。

根据权利要求 1所述的一种模块初始化的方法, 其特征在于, 还包括 启动所述模块初始化程序;

系统的初始化程序解析特定模块的初始化脚本, 获取处理动作; 添加 所述处理动作至队列; 依次执行所述队列中的处理动作。

[权利要求 6] 根据权利要求 3所述的一种模块初始化的方法, 其特征在于, 启动所 述模块初始化程序, 具体为:

启动系统的初始化程序; 所述系统的初始化程序执行系统的初始化脚本;

执行所述系统的初始化脚本中的启动模块初始化程序的语句。

[权利要求 7] —种模块初始化的系统, 其特征在于, 包括:

第一预设模块, 用于预设模块初始化程序;

设置模块, 用于设置所述模块初始化程序于非根分区;

第一添加模块, 用于添加启动所述模块初始化程序的语句至系统初始 化脚本。

[权利要求 8] 根据权利要求 7所述的一种模块初始化的系统, 其特征在于, 还包括 第二预设模块, 用于预设模块初始化顺序表; 所述模块初始化顺序表 包括特定模块的名称、 初始化脚本路径及配置信息;

第一获取模块, 用于依次获取所述模块初始化顺序表中一特定模块的 初始化脚本路径;

发送模块, 用于通过套接字通信方式发送所述路径至系统初始化程序 [权利要求 9] 根据权利要求 7所述的一种模块初始化的系统, 其特征在于, 还包括 第二添加模块, 用于添加新增模块的名称、 初始化脚本路径及配置信 息至所述模块初始化顺序表;

第二获取模块, 用于获取待修改模块的名称;

修改模块, 用于修改所述模块初始化顺序表中所述待修改模块的相应 的信息;

更新模块, 用于更新所述模块初始化顺序表。

[权利要求 10] 根据权利要求 7所述的一种模块初始化的系统, 其特征在于, 还包括 第二执行模块, 用于执行所述系统的初始化脚本中的启动模块初始化 程序的语句;

系统初始化模块, 用于使系统的初始化程序解析特定模块的初始化脚 本, 获取处理动作; 添加所述处理动作至队列; 依次执行所述队列中 的处理动作。

Description:
发明名称:一种模块初始化的方法及系统

技术领域

[0001] 本发明涉及系统初始化领域, 尤其涉及一种模块初始化的方法及系统。

背景技术

[0002] 随着安卓系统在手机上所占份额越来越大, 支付终端也幵始使用安卓系统, 各 厂商相应推出了智能终端。 在安卓系统中, 初始化过程是通过 init程序执行 iniLrc 及其包含的各种初始化脚本完成的。 而 iniLrc和相关脚本, 以及 init程序, 都位于 根分区中, 根分区是 ramdisk分区, 通常和 Linux内核编译在一起进行使用。 在使 用安卓系统的支付终端中, 各外设驱动 (比如打印、 卡、 通讯方式等) 的内核 模块和后台服务加载都需要在根分区的初始化 脚本中定义相关操作。 各外设驱 动如果按模块单独维护, 则一旦需要修改模块初始化过程, 相应需要升级整个 安卓系统, 系统模块化程度差。 如果将外设驱动目标代码也加入安卓系统一起 维护, 则更新一个模块则需要更新整个安卓系统, 下载吋间长且需要更多下载 流量费用。

技术问题

[0003] 本发明所要解决的技术问题是: 提供一种模块初始化的方法及系统, 实现提高 系统的模块化程度。

问题的解决方案

技术解决方案

[0004] 为了解决上述技术问题, 本发明采用的技术方案为:

[0005] 本发明提供一种模块初始化的方法, 包括:

[0006] 预设模块初始化程序;

[0007] 设置所述模块初始化程序于非根分区;

[0008] 添加启动所述模块初始化程序的语句至系统初 始化脚本。

[0009] 本发明还提供一种模块初始化的系统, 包括:

[0010] 第一预设模块, 用于预设模块初始化程序; [0011] 设置模块, 用于设置所述模块初始化程序于非根分区;

[0012] 第一添加模块, 用于添加启动所述模块初始化程序的语句至系 统初始化脚本。

发明的有益效果

有益效果

[0013] 本发明的有益效果在于: 现有技术中, 当系统启动吋, 会自动执行位于根分区 的系统初始化程序, 系统初始化程序先配置各模块的信息, 再调用系统初始化 脚本启动各模块。 本发明通过模块初始化程序依次执行各模块的 初始化程序和 初始化脚本, 并在系统初始化脚本中添加启动模块初始化程 序的语句, 使得当 系统初始化脚本被执行吋, 会调用模块初始化程序从而达到初始化各模块 的目 的。 通过将模块的初始化过程从系统初始化程序中 分离出来, 并将模块初始化 程序设置于非根分区, 实现当需要修改模块的初始化过程吋, 无需更新相应的 系统, 从而提高系统的模块化程度。

对附图的简要说明

附图说明

[0014] 图 1为本发明一种模块初始化的方法的流程框图

[0015] 图 2为本发明一种模块初始化的系统的结构框图

[0016] 标号说明:

[0017] 1、 第一预设模块; 2、 设置模块; 3、 第一添加模块; 4、 第二预设模块; 5、 第一获取模块; 6、 发送模块; 7、 第二添加模块; 8、 第二获取模块; 9、 修改 模块; 10、 更新模块; 11、 启动模块; 12、 第一执行模块; 13、 第二执行模块 ; 14、 系统初始化模块。

具体实施方式

[0018] 本发明最关键的构思在于: 通过将模块的初始化过程从系统初始化程序中 分离 出来, 实现当需要修改模块的初始化过程吋, 无需更新相应的系统, 提高系统 的模块化程度。

[0019] [0020] 如图 1所示, 本发明提供一种模块初始化的方法, 包括:

[0021] 预设模块初始化程序;

[0022] 设置所述模块初始化程序于非根分区;

[0023] 添加启动所述模块初始化程序的语句至系统初 始化脚本。

[0024] 进一步地, 所述模块初始化程序, 包括:

[0025] 预设模块初始化顺序表; 所述模块初始化顺序表包括一特定模块的名称 、 初始 化脚本路径及配置信息;

[0026] 依次获取所述模块初始化顺序表中一特定模块 的初始化脚本路径;

[0027] 通过套接字通信方式发送所述路径至系统初始 化程序。

[0028] 由上述描述可知, 所述模块初始化程序可依次将模块初始化顺序 表中各个模块 的初始化脚本路径发送给系统初始化程序, 由系统初始化程序执行相应的模块 初始化脚本, 从而达到初始化模块的目的。

[0029] 进一步地, 所述模块初始化程序, 还包括:

[0030] 添加新增模块的名称、 初始化脚本路径及配置信息至所述模块初始化 顺序表。

[0031] 由上述描述可知, 实现当系统新增模块吋, 只需将新增模块的信息添加至由模 块初始化程序维护的模块初始化顺序表即可, 无需更新系统。

[0032] 进一步地, 所述模块初始化程序, 还包括:

[0033] 获取待修改模块的名称;

[0034] 修改所述模块初始化顺序表中所述待修改模块 的相应的信息;

[0035] 更新所述模块初始化顺序表。

[0036] 由上述描述可知, 实现当需要修改模块的信息吋, 只需修改由模块初始化程序 维护的模块初始化顺序表即可, 而无需更新系统。 进一步地, 还包括:

[0037] 启动所述模块初始化程序;

[0038] 系统的初始化程序解析特定模块的初始化脚本 , 获取处理动作; 添加所述处理 动作至队列; 依次执行所述队列中的处理动作。

[0039] 由上述描述可知, 系统的初始化程序可通过解析特定模块的初始 化脚本完成初 始化特定模块的操作。

[0040] 进一步地, 启动所述模块初始化程序, 具体为: [0041] 启动系统的初始化程序;

[0042] 所述系统的初始化程序执行系统的初始化脚本 ;

[0043] 执行所述系统的初始化脚本中的启动模块初始 化程序的语句。

[0044] 由上述描述可知, 当系统启动吋会自动启动系统的初始化程序, 由于已将启动 模块初始化程序的语句添加至系统的初始化脚 本, 使得当系统的初始化程序调 用系统的初始化脚本吋会启动模块初始化程序 , 从而实现当启动系统吋, 自动 初始化各模块。

[0045]

[0046] 如图 2所示, 本发明还提供一种模块初始化的系统, 包括:

[0047] 第一预设模块 1, 用于预设模块初始化程序;

[0048] 设置模块 2, 用于设置所述模块初始化程序于非根分区;

[0049] 第一添加模块 3, 用于添加启动所述模块初始化程序的语句至系 统初始化脚本 [0050] 进一步地, 还包括:

[0051] 第二预设模块 4, 用于预设模块初始化顺序表; 所述模块初始化顺序表包括特 定模块的名称、 初始化脚本路径及配置信息;

[0052] 第一获取模块 5, 用于依次获取所述模块初始化顺序表中一特定 模块的初始化 脚本路径;

[0053] 发送模块 6, 用于通过套接字通信方式发送所述路径至系统 初始化程序。

[0054] 进一步地, 还包括:

[0055] 第二添加模块 7, 用于添加新增模块的名称、 初始化脚本路径及配置信息至所 述模块初始化顺序表;

[0056] 第二获取模块 8, 用于获取待修改模块的名称;

[0057] 修改模块 9, 用于修改所述模块初始化顺序表中所述待修改 模块的相应的信息

[0058] 更新模块 10, 用于更新所述模块初始化顺序表。

[0059] 进一步地, 还包括:

[0060] 启动模块 11, 用于启动系统的初始化程序; [0061] 第一执行模块 12, 用于使所述系统的初始化程序执行系统的初始 化脚本;

[0062] 第二执行模块 13, 用于执行所述系统的初始化脚本中的启动模块 初始化程序的 语句;

[0063] 系统初始化模块 14, 用于使系统的初始化程序解析特定模块的初始 化脚本, 获 取处理动作; 添加所述处理动作至队列; 依次执行所述队列中的处理动作。

[0064]

[0065] 本发明的实施例一为:

[0066] 预设模块初始化程序;

[0067] 设置所述模块初始化程序于非根分区;

[0068] 添加启动所述模块初始化程序的语句至系统初 始化脚本;

[0069] 启动系统的初始化程序;

[0070] 所述系统的初始化程序执行系统的初始化脚本 ;

[0071] 执行所述系统的初始化脚本中的启动模块初始 化程序的语句;

[0072] 启动所述模块初始化程序;

[0073] 预设模块初始化顺序表; 所述模块初始化顺序表包括特定模块的名称、 初始化 脚本路径及配置信息;

[0074] 依次获取所述模块初始化顺序表中一特定模块 的初始化脚本路径;

[0075] 通过套接字通信方式发送所述路径至系统初始 化程序;

[0076] 系统的初始化程序解析特定模块的初始化脚本 , 获取处理动作; 添加所述处理 动作至队列; 依次执行所述队列中的处理动作。

[0077] 由上述描述可知, 本实施例实现了在系统启动吋初始化各个模块 。

[0078]

[0079] 本发明的实施例二为:

[0080] 预设模块初始化程序;

[0081] 设置所述模块初始化程序于非根分区;

[0082] 添加启动所述模块初始化程序的语句至系统初 始化脚本;

[0083] 添加新增模块的名称、 初始化脚本路径及配置信息至模块初始化顺序 表。

[0084] 由上述描述可知, 实现当系统新增模块吋, 只需将新增模块的信息添加至由模 块初始化程序维护的模块初始化顺序表即可, 无需更新系统。

[0085]

[0086] 本发明的实施例三为:

[0087] 预设模块初始化程序;

[0088] 设置所述模块初始化程序于非根分区;

[0089] 添加启动所述模块初始化程序的语句至系统初 始化脚本;

[0090] 获取待修改模块的名称;

[0091] 修改模块初始化顺序表中所述待修改模块的相 应的信息;

[0092] 更新所述模块初始化顺序表。

[0093] 由上述描述可知, 实现当需要修改模块的信息吋, 只需修改由模块初始化程序 维护的模块初始化顺序表即可, 而无需更新系统。

[0094]

[0095] 本发明的实施例四为:

[0096] 第一预设模块 1预设模块初始化程序;

[0097] 设置模块 2设置所述模块初始化程序于非根分区;

[0098] 第一添加模块 3添加启动所述模块初始化程序的语句至系统 始化脚本;

[0099] 启动模块 11启动系统的初始化程序;

[0100] 第一执行模块 12使所述系统的初始化程序执行系统的初始化 本;

[0101] 第二执行模块 13执行所述系统的初始化脚本中的启动模块初 化程序的语句;

[0102] 第二预设模块 4预设模块初始化顺序表; 所述模块初始化顺序表包括特定模块 的名称、 初始化脚本路径及配置信息;

[0103] 第一获取模块 5依次获取所述模块初始化顺序表中一特定模 的初始化脚本路 径;

[0104] 发送模块 6通过套接字通信方式发送所述路径至系统初 化程序;

[0105] 系统初始化模块 14使系统的初始化程序解析特定模块的初始化 本, 获取处理 动作; 添加所述处理动作至队列; 依次执行所述队列中的处理动作;

[0106] 第二添加模块 7添加新增模块的名称、 初始化脚本路径及配置信息至所述模块 初始化顺序表; [0107] 第二获取模块 8获取待修改模块的名称;

[0108] 修改模块 9修改所述模块初始化顺序表中所述待修改模 的相应的信息;

[0109] 更新模块 10更新所述模块初始化顺序表。

[0110]

[0111] 本发明的实施例五为:

[0112] 将配置打印机模块的信息及启动打印机模块的 操作集成至模块初始化程序 epay _init中。 并在安卓系统的程序初始化脚本 iniLrc中添加启动模块初始化程序的语 句, 安卓系统初始化过程中, 会自动启动模块初始化程序 ep a y_init。 该程序负责 依次初始化系统中的模块。 为了初始化打印机模块, 模块初始化程序 epayjnit先 执行打印机的初始化程序 printerjnit, 再通知安卓系统初始化程序 init, 完成打印 机模块初始化脚本 printer_init.rc的执行。

[0113] 为了使安卓系统初始化程序 init能够执行打印机模块的初始化脚本, 需要增加 模块初始化程序 epay_init与初始化程序 init的通讯机制。 本发明采用本地 socket方 式将打印机模块的初始化脚本路径 /system/bin/printer_init.rc通过 socket文件发送给 安卓系统的 init程序。 init程序收到打印机的初始化脚本路径后, 调用 init程序中 的函数 init_parse_config_file解析该脚本内容, 然后调用 action_for_each_trigger将 解析到的处理动作加入队列, init程序会在事件循环中依次处理加入队列的 令 , 这样就完成了打印机模块的初始化脚本的执行 。

[0114] 由上述描述可知, 本实施例实现了在安卓系统中初始化打印机模 块, 且安卓系 统的初始化程序不直接管理打印机模块, 提高了安卓系统的模块化程度。

[0115]

[0116] 综上所述, 本发明提供的一种模块初始化的方法及系统, 通过模块初始化程序 依次执行各模块的初始化程序和初始化脚本, 并在系统初始化脚本中添加启动 模块初始化程序的语句, 使得当系统初始化脚本被执行吋, 会自动调用模块初 始化程序从而达到初始化各模块的目的; 通过将模块的初始化过程从系统初始 化程序中分离出来, 并将模块初始化程序设置于非根分区, 实现当需要修改模 块的初始化过程吋, 无需更新相应的系统, 从而提高系统的模块化程度; 进一 步地, 所述模块初始化程序可依次将模块初始化顺序 表中各个模块的初始化脚 本路径发送给系统初始化程序, 由系统初始化程序执行相应的模块初始化脚本 , 从而达到初始化模块的目的; 进一步地, 系统的初始化程序可通过解析特定 模块的初始化脚本完成初始化特定模块的操作 ; 进一步地, 实现当系统新增模 块吋, 只需将新增模块的信息添加至由模块初始化程 序维护的模块初始化顺序 表即可, 无需更新系统; 进一步地, 实现当需要修改模块的信息吋, 只需修改 由模块初始化程序维护的模块初始化顺序表即 可, 而无需更新系统。