CN101866302B - 一种检验应用模式适应性的装置及方法 - Google Patents

一种检验应用模式适应性的装置及方法 Download PDF

Info

Publication number
CN101866302B
CN101866302B CN 201010206648 CN201010206648A CN101866302B CN 101866302 B CN101866302 B CN 101866302B CN 201010206648 CN201010206648 CN 201010206648 CN 201010206648 A CN201010206648 A CN 201010206648A CN 101866302 B CN101866302 B CN 101866302B
Authority
CN
China
Prior art keywords
function
wait
need
query function
query
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.)
Expired - Fee Related
Application number
CN 201010206648
Other languages
English (en)
Other versions
CN101866302A (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.)
Wang Jing
Wang Jinxia
Wu Jidong
Wu Xiaojing
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN 201010206648 priority Critical patent/CN101866302B/zh
Publication of CN101866302A publication Critical patent/CN101866302A/zh
Application granted granted Critical
Publication of CN101866302B publication Critical patent/CN101866302B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种检验应用模式适应性的装置,包括:编译模块,用于解析函数文档,获得需查询函数及其对应的等待函数,并将解析出的函数形成单向链表,发送给统计模块;统计模块,用于统计单向链表中需查询函数及其对应的等待函数在指定文件中的使用次数;比较模块,用于根据统计出的统计出的需查询函数及其对应的等待函数的使用次数,确定函数的匹配性。本发明还公开了一种检验应用模式适应性的方法,采用本发明所述的装置及方法,节省了项目开发的成本,提升了用户体验。

Description

一种检验应用模式适应性的装置及方法
技术领域
本发明涉及移动终端应用模式切换领域,特别是指一种检验应用模式适应性的装置及方法。
背景技术
随着社会信息化的不断发展,移动终端例如手机也在向智能操作系统方向前进,安致(Android)系统逐渐异军突起,成为该领域的一股新生力量,越来越多的手机厂商加入开发Android系统的行列。
下面以在Android系统的移动终端上,U盘模式与其他模式进行切换为例,说明Android系统的移动终端在不同场景下的适应性,如图1所示:
用户通过应用线程退出当前的U盘模式,向U盘主线程(fsg_main_thread)发送退出U盘模式的异常通知消息,所述应用线程用于提供用户选择操作的界面,所述fsg_main_thread用于实现U盘模式下,移动终端与个人电脑(PC)之间的数据通信,fsg_main_thread接收应用线程发送的异常通知,清除移动终端中的U盘注册信息,同时确认应用线程中的标志位为终止,关闭自身的线程,调用void completion(struct completion*x)函数,向应用线程发送线程已退出的通知消息,所述标志位用于显示当前fsg_main_thread的状态,所述voidcompletion(struct completion*x)是唤醒等待x事物线程的函数,调用此函数的线程输入x事物,产生通知消息。
应用线程收到fsg_main_thread发送的通知消息,然后调用void completion(struct completion*x)函数,向系统调用发送fsg_main_thread线程已退出的通知消息,系统调用卸载U盘模式对应的驱动。但是,由于Android系统本身的特性,系统调用接收不到应用线程发送的fsg_main_thread线程已退出的通知消息,导致所述通知消息多余,又因为应用线程本身有等待函数wait_for-completion(struct completion*x),这样发送给系统调用的通知消息会被应用线程本身的等待函数获取,所述wait_for_completion(struct completion*x)用于等待线程通过调用void completion(struct completion*x)发送的通知消息,并产生等待到通知消息的消息,与void completion(struct completion*x)是一组对应的函数。
用户再次使用U盘模式,并要切换到其他模式例如模式B时,应用线程会创建新的fsg_main_threadB,所述fsg_main_threadB用于在模式B下,移动终端与PC之间的数据通信,这时,用户要退出U盘模式,应用线程向fsg_main_thread发送异常通知,因为应用线程的等待函数接收到发送给系统调用但是未被系统调用接收的通知消息,会认为fsg_main_thread线程已退出,然后创建模式B的fsg_main_threadB,同时应用线程的标志位由终止变为新建,fsg_main_thread清除U盘注册信息后,查询应用线程中的标志位为新建,则U盘模式无法正常退出,导致U盘模式无法正常使用,给使用者造成非常不好的用户体验。
Android系统本身的一些特点,在开发过程中常常困扰着开发人员,影响移动终端在不同场景下的适应性。解决移动终端在不同场景下适应性问题的方法是将应用线程调用void completion(struct completion*x)函数发送通知消息给系统调用中的调用void completion(struct completion*x)函数去掉,但该解决方法只适用于测试出手机出现应用模式切换的问题时,对调用函数进行定位,然而手机的应用模式有很多,其调用函数也多种多样,如何尽早的在版本编译阶段定位此问题,避免在后续的测试过程中才暴露出来,是解决问题的关键。
发明内容
有鉴于此,本发明的主要目的在于提供一种检验应用模式适应性的装置及方法,能在编译阶段解决Android系统中移动终端的U盘模式与其他模式自由切换问题,节省项目开发的成本,提升用户体验。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种检验应用模式适应性的装置,包括:
编译模块,用于将函数文档中需查询函数及其对应的等待函数与自身预置的需查询函数及其对应的等待函数列表进行比较,将与所述列表相符的需查询函数及其对应的等待函数标记序列号,并将需查询函数及其对应的等待函数以及序列号形成单向链表发送给统计模块;将与所述列表不符的需查询函数及其对应的等待函数,保存到指定的不支持查询函数文件中;
统计模块,用于统计单向链表中的需查询函数及其对应的等待函数在指定文件中的使用次数;所述指定文件为预先设置在统计模块中的应用程序代码所在的文件;
比较模块,用于根据统计出的需查询函数及其对应的等待函数的使用次数,确定函数的匹配性。
上述方案中,统计模块具体用于,将需查询函数及其对应的等待函数与指定文件中的代码比较,记录需查询函数及其对应的等待函数的使用次数。
上述方案中,比较模块具体用于,将统计出的需查询函数的使用次数与等待函数的使用次数比较,两者相同时,需查询函数及其对应的等待函数匹配,将比较结果输出到指定的结果文件;两者不同时,需查询函数即对应的等待函数不匹配,输出告警信息,并将比较结果输出到指定的结果文件。
本发明还提供了一种检验应用模式适应性的方法,包括:
将函数文档中需查询函数及其对应的等待函数与自身预置的需查询函数及其对应的等待函数列表进行比较,将与所述列表相符的需查询函数及其对应的等待函数标记序列号,并将需查询函数及其对应的等待函数以及序列号形成单向链表;将与所述列表不相符的需查询函数及其对应的等待函数,保存到指定的不支持查询函数文件中;
统计单向链表中需查询函数及其对应的等待函数在指定文件中的使用次数,根据统计出的需查询函数及其对应的等待函数的使用次数确定函数匹配性;所述指定文件为预先设置在统计模块中的应用程序代码所在的文件。
上述方案中,所述统计单向链表中需查询函数及其对应的等待函数在指定文件中的使用次数包括:将单向链表中的需查询函数及其对应的等待函数与指定文件中的代码比较,记录需查询函数及其对应的等待函数的使用次数。
上述方案中,所述确定函数匹配性包括:比较统计出的需查询函数的使用次数及其对应的等待函数的使用次数,若两者相同,则需查询函数与其对应的等待函数匹配,并将比较结果输出到指定的结果文件;若两者不同,则需查询函数与其对应的等待函数不匹配,输出告警信息,将比较结果输出到指定的结果文件。
由此可见,采用本发明所述的检验应用模式适应性的装置及方法,在版本编译过程中统计函数的使用次数,根据函数中需查询函数及其对应的等待函数使用次数是否相同,确定不同应用模式切换时,线程调用函数的匹配性,从而能节省项目开发的,提升了用户体验。
附图说明
图1为现有技术中U盘模式与其他模式切换的过程示意图;
图2为本发明检验应用模式适应性的装置组成示意图;
图3为本发明检验应用模式适应性的方法流程示意图。
具体实施方式
本发明的基本思想是:解析函数文档,获得需查询函数及其对应的等待函数,并将解析出的函数形成单向列表;统计单向链表中需查询函数及其对应的等待函数在指定文件中的使用次数;根据统计出的需查询函数及其对应的等待函数的使用次数确定函数的匹配性。
下面通过具体实施例和附图对本发明进行详细说明。
一种检验应用模式适应性的装置,如图2所示,该装置包括:编译模块201、统计模块202以及比较模块203:
编译模块201,用于解析函数文档,获得需查询函数及其对应的等待函数,并将解析出的函数形成单向链表,发送给统计模块202;
这里,所述解析函数文档通过调用equalcheck指令完成,所述equalcheck指令在系统驱动程序目录boot\build\core\main.mk中添加,用于解析函数文档的内容,可位于启动镜像(bootimage)指令之后,例如bootimage:$(INSTALLED_BOOTIMAGE_TARGET)equalcheck,以便在开始编译后自动执行该指令;所述函数文档为在系统驱动程序目录boot\build\core下建立的函数文档,包括需查询函数,例如void completion(struct completion*x);以及与该需查询函数对应的等待函数,例如wait_for_completion(struct completion*x);
统计模块202,用于统计单向链表中需查询函数及其对应的等待函数在指定文件中的使用次数,并将统计结果输出给比较模块203;
其中,所述指定文件为预先设置在统计模块202中的应用程序代码所在的文件,查询此文件中需查询函数及其对应的等待函数的使用次数,也就是,该应用程序所对应的应用模块调用需查询函数、以及调用该需查询函数对应的等待函数的次数;
比较模块203,用于根据统计出的需查询函数及其对应的等待函数的使用次数确定函数的匹配性,并输出到指定的结果文件。
编译模块201具体用于,将解析出的函数文档中需查询函数及其对应的等待函数,与自身预置的需查询函数及其对应的等待函数列表进行比较,将与所述列表符合的需查询函数及其对应的等待函数标记序列号,之后由需查询函数及其对应的等待函数、以及序列号组成单向链表,每个需查询函数及其对应的等待函数分别作为一组函数,是单向链表的基本单元;将与所述列表不符的需查询函数及其对应的等待函数保存在指定的不支持查询函数文件中,本发明中保存与所述列表不符的函数的文件为unsupported_checked.log文件,本发明中所述单向链表中内容的存储格式包括但不限于以下格式:
|Index|A1|A1+|Next|→|Index|A2|A2+|Next|→
其中,Index为序列号,A1为第一组中需查询函数,A1+为第一组中与需查询函数对应的等待函数,Next指向下一组函数。
统计模块202具体用于,将需查询函数及其对应的等待函数与指定文件中的代码比较,这里,所述比较为:若有与需查询函数或其对应的等待函数一致的代码,则说明需查询函数或其对应的等待函数出现一次;记录需查询函数及其对应的等待函数出现的次数,即:使用次数,并将函数名称及函数的使用次数、所在文件名称、序列号,输出给比较模块203。
比较模块203具体用于,比较统计到的需查询函数及其对应的等待函数的使用次数,若两者相同,则需查询函数与其对应的等待函数匹配,将比较结果输出到预先指定的结果文件;这里,所述比较结果包括序列号、函数名称以及使用次数、所在文件名称;若两者不同,则需查询函数及其对应的等待函数不匹配,输出告警信息,所述告警信息为需查询函数与其对应的等待函数的结果不匹配的消息,将比较结果输出到预先指定的结果文件。
基于上述检验应用模式适应性的装置,本发明还提供了一种检验应用模式适应性的方法,如图3所示,包括以下步骤:
步骤301,解析函数文档,获得需查询函数及其对应的等待函数,并将解析出的函数形成单向链表;
这里,所述解析函数文档由编译模块调用equalcheck指令完成,所述equalcheck指令在系统驱动程序目录boot\build\core\main.mk中添加,用于解析函数文档的内容,可位于启动镜像(bootimage)指令之后,例如bootimage:$(INSTALLED_BOOTIMAGE_TARGET)equalcheck,以便在开始编译后自动执行该指令。
所述函数文档为在系统驱动程序目录boot\build\core下建立的函数文档,包括需查询函数,例如,void completion(struct completion*x);以及与需查询函数对应的等待函数,例如wait_for_completion(struct completion*x)。
所述解析过程具体包括:编译模块将函数文档的内容同自身预置的需查询函数列表比较,将需查询函数及其对应的等待函数标记序列号,之后由需查询函数及其对应的等待函数、以及序列号组成单向链表,每个需查询函数及其对应的等待函数分别作为一组函数,是单向链表的基本单元;将不需查询函数保存在指定的不支持查询函数文件中,本发明中保存不需查询函数为unsupported_checked.log文件,所述单向链表中内容的存储格式为:
|Index|A1|A1+|Next|→|Index|A2|A2+|Next|→
其中,Index为序列号,A1为第一组中需查询函数,A1+为第一组中与需查询函数对应的等待函数,Next指向下一组函数。
步骤302,统计单向链表中需查询函数及其对应的等待函数在指定文件中的使用次数;
本步骤中,统计模块接收编译模块发送来的单向链表中的内容,将需查询函数及其对应的等待函数与指定文件的代码比较,所述比较为:若有与需查询函数或其对应的等待函数一致的代码,则说明需查询函数或其对应的等待函数出现一次;所述指定文件为预置在统计模块中应用程序代码所在的文件,查询此文件中需查询函数及其对应的等待函数的使用次数,也就是,该应用程序所对应的应用模块调用需查询函数及其调用该函数对应的等待函数的次数;记录需查询函数及其对应的等待函数的使用次数,并将函数名称及函数的使用次数、序列号、所在文件名称发送给比较模块。
步骤303,根据所统计的需查询的函数及其对应的等待函数的使用次数,确定函数的匹配性。
本步骤,比较统计出的需查询函数的使用次数和其对应的等待函数的使用次数,若两者相同,则需查询函数与其对应的等待函数匹配,将比较结果输出到指定的结果文件,所述比较结果包括序列号、函数名称、函数的使用次数、所在文件名称;若两者不同,则需查询函数与其对应的等待函数不匹配,说明有需查询函数或等待函数出现多余,输出需查询函数与等待函数的结果不匹配的告警信息,将比较结果输出到指定的结果文件。
进一步的,开发人员可根据指定的结果文件中的内容修改代码;也就是说,实际应用中,可根据本发明对应用模式适应性的检验结果修改代码,使应用模式的适应性得以改进。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种检验应用模式适应性的装置,其特征在于,该装置包括:
编译模块,用于将函数文档中需查询函数及其对应的等待函数与自身预置的需查询函数及其对应的等待函数列表进行比较,将与所述列表相符的需查询函数及其对应的等待函数标记序列号,并将需查询函数及其对应的等待函数以及序列号形成单向链表发送给统计模块;将与所述列表不符的需查询函数及其对应的等待函数,保存到指定的不支持查询函数文件中;
统计模块,用于统计单向链表中的需查询函数及其对应的等待函数在指定文件中的使用次数;所述指定文件为预先设置在统计模块中的应用程序代码所在的文件;
比较模块,用于根据统计出的需查询函数及其对应的等待函数的使用次数,确定函数的匹配性。
2.根据权利要求1所述的装置,其特征在于,
统计模块具体用于,将需查询函数及其对应的等待函数与指定文件中的代码比较,记录需查询函数及其对应的等待函数的使用次数。
3.根据权利要求2所述的装置,其特征在于,
比较模块具体用于,将统计出的需查询函数的使用次数与等待函数的使用次数比较,两者相同时,需查询函数及其对应的等待函数匹配,将比较结果输出到指定的结果文件;两者不同时,需查询函数即对应的等待函数不匹配,输出告警信息,并将比较结果输出到指定的结果文件。
4.一种检验应用模式适应性的方法,其特征在于,所述方法包括:
将函数文档中需查询函数及其对应的等待函数与自身预置的需查询函数及其对应的等待函数列表进行比较,将与所述列表相符的需查询函数及其对应的等待函数标记序列号,并将需查询函数及其对应的等待函数以及序列号形成单向链表;将与所述列表不相符的需查询函数及其对应的等待函数,保存到指定的不支持查询函数文件中;
统计单向链表中需查询函数及其对应的等待函数在指定文件中的使用次数,根据统计出的需查询函数及其对应的等待函数的使用次数确定函数匹配性;所述指定文件为预先设置在统计模块中的应用程序代码所在的文件。
5.根据权利要求4所述的方法,其特征在于,所述统计单向链表中需查询函数及其对应的等待函数在指定文件中的使用次数包括:
将单向链表中的需查询函数及其对应的等待函数与指定文件中的代码比较,记录需查询函数及其对应的等待函数的使用次数。
6.根据权利要求5所述的方法,其特征在于,所述确定函数匹配性包括:
比较统计出的需查询函数的使用次数及其对应的等待函数的使用次数,若两者相同,则需查询函数与其对应的等待函数匹配,并将比较结果输出到指定的结果文件;若两者不同,则需查询函数与其对应的等待函数不匹配,输出告警信息,将比较结果输出到指定的结果文件。
CN 201010206648 2010-06-12 2010-06-12 一种检验应用模式适应性的装置及方法 Expired - Fee Related CN101866302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010206648 CN101866302B (zh) 2010-06-12 2010-06-12 一种检验应用模式适应性的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010206648 CN101866302B (zh) 2010-06-12 2010-06-12 一种检验应用模式适应性的装置及方法

Publications (2)

Publication Number Publication Date
CN101866302A CN101866302A (zh) 2010-10-20
CN101866302B true CN101866302B (zh) 2013-08-21

Family

ID=42958035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010206648 Expired - Fee Related CN101866302B (zh) 2010-06-12 2010-06-12 一种检验应用模式适应性的装置及方法

Country Status (1)

Country Link
CN (1) CN101866302B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744682B (zh) * 2014-01-24 2017-02-08 中国科学院自动化研究所 一种分开编译异构混编程序的方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949187A (zh) * 2006-11-17 2007-04-18 深圳市领测科技有限公司 一种程序调测系统及方法
CN101377806A (zh) * 2008-07-24 2009-03-04 江苏大学 一种基于系统源代码搜索隐通道的信息流分析方法
CN101482847A (zh) * 2009-01-19 2009-07-15 北京邮电大学 一种基于安全漏洞缺陷模式的检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8079037B2 (en) * 2005-10-11 2011-12-13 Knoa Software, Inc. Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1949187A (zh) * 2006-11-17 2007-04-18 深圳市领测科技有限公司 一种程序调测系统及方法
CN101377806A (zh) * 2008-07-24 2009-03-04 江苏大学 一种基于系统源代码搜索隐通道的信息流分析方法
CN101482847A (zh) * 2009-01-19 2009-07-15 北京邮电大学 一种基于安全漏洞缺陷模式的检测方法

Also Published As

Publication number Publication date
CN101866302A (zh) 2010-10-20

Similar Documents

Publication Publication Date Title
CN105676987A (zh) 关闭移动终端后台应用的方法、装置及移动终端
US8176302B2 (en) Data processing arrangement comprising a reset facility
CN105677477A (zh) 一种优化应用程序资源的方法、装置及电子设备
US20170316209A1 (en) Method and device for preventing application in an operating system from being uninstalled
CN104346256A (zh) 应用程序耗电信息的获取方法、装置和移动终端
CN105511874A (zh) 嵌入式系统启动方法和智能终端
CN110297658B (zh) 功能组件共享方法、装置和计算机设备
US8447346B2 (en) SDR terminal and reconfiguration method
CN105549958A (zh) 嵌入式系统启动方法和智能终端
CN110609755A (zh) 跨区块链节点的消息处理方法及装置、设备、介质
CN111324619A (zh) 微服务系统中的对象更新方法、装置、设备和存储介质
CN102821211A (zh) 通信网元自动化测试方法及装置
CN109165114A (zh) 应用程序无响应的处理方法、装置、存储介质及智能终端
CN110457132B (zh) 一种功能对象的创建方法、装置和终端设备
CN111552521A (zh) 应用数据上报方法、装置、服务器及存储介质
CN101866302B (zh) 一种检验应用模式适应性的装置及方法
CN103365672A (zh) 一种处理应用程序的描述信息的方法和系统
CN111124627B (zh) 应用程序的调起者确定方法、装置、终端及存储介质
CN113655737B (zh) 一种经can传输的车载电子控制器快速升级系统与方法
CN113590179B (zh) 插件检测方法、装置、电子设备及存储介质
CN105302557A (zh) 线程建立及处理的方法及装置
CN112711602B (zh) 一种存储过程的运行方法、装置,数据库系统及存储介质
CN114968777A (zh) 基于Autosar网络管理机制的测试方法、装置和电子设备
CN105528226A (zh) 一种智能终端的开机方法和装置
CN105005476A (zh) 面向Android移动应用混搭的框架

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170828

Address after: 253000 Shandong city of Dezhou province Ningjin County Xiang Ya Zhen Chen Village No. 66

Co-patentee after: Wang Jing

Patentee after: Wang Jinxia

Co-patentee after: Wu Jidong

Co-patentee after: Wu Xiaojing

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corp.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wang Jinxia

Inventor after: Wang Jing

Inventor after: Wu Jidong

Inventor after: Wu Xiaojing

Inventor before: Wang Haijun

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130821