CN112835788A - 一种评估Linux应用程序与操作系统兼容性的方法 - Google Patents
一种评估Linux应用程序与操作系统兼容性的方法 Download PDFInfo
- Publication number
- CN112835788A CN112835788A CN202110040663.6A CN202110040663A CN112835788A CN 112835788 A CN112835788 A CN 112835788A CN 202110040663 A CN202110040663 A CN 202110040663A CN 112835788 A CN112835788 A CN 112835788A
- Authority
- CN
- China
- Prior art keywords
- application program
- dynamic link
- operating system
- link library
- lib
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000003068 static effect Effects 0.000 claims abstract description 24
- 230000001419 dependent effect Effects 0.000 claims description 29
- 229910002056 binary alloy Inorganic materials 0.000 claims description 9
- 238000001514 detection method Methods 0.000 abstract description 9
- 238000011156 evaluation Methods 0.000 abstract description 5
- 238000007405 data analysis Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于软件可靠性技术领域,具体涉及一种评估Linux应用程序与操作系统兼容性的方法。本发明通过将操作系统中提供的动态链接库、接口和应用程序对外直接依赖和间接依赖的动态链接库、接口进行对比,得到二者的静态二进制兼容性结果,实现了Linux应用程序在不同发行版操作系统运行兼容性问题的检测。本发明可以检测到应用程序对操作系统的直接依赖,并基于一种递归策略实现检测应用程序的间接依赖。本发明根据应用程序对外依赖和操作系统提供的资源的匹配程度进行了有效的兼容性分级评估,帮助开发者清晰的了解应用程序与操作系统的兼容程度。
Description
技术领域
本发明属于软件可靠性技术领域,具体涉及一种评估Linux应用程序与操作系统兼容性的方法。
背景技术
当前最为流行的计算机操作系统主要有Windows,MacOS和Linux,其中Windows操作系统和MacOS操作系统属于闭源操作系统,而Linux属于开源操作系统。在兼容性工作方面,微软公司在Windows上投入了大量的人力和财力来保证用户应用程序在多个版本的操作系统之间实现兼容,其采取的措施主要有:一方面保证暴露给应用程序的API的稳定性,一方面新版本系统继承旧版本系统的共享库打包到镜像中,再者,64位操作系统为了兼容32位应用程序还在系统中增加了32位系统文件;但是,在MacOS操作系统和Linux操作系统上,应用程序与操作系统之间的兼容性可能没有那么好。
在Linux操作系统上,如果需要安装一个应用程序,一些情况下更多会需要应用程序开发者或者使用者来保证与操作系统的兼容。由于Linux内核是开源的,任何人都能得到Linux内核源代码,这也导致了基于Linux内核开发的操作系统发行版非常多,常见的就有Ubuntu、CentOS、ArchLinux等,所以,Linux发行版不可能像Windows一样把各个版本的共享库都打包到镜像中。一种解决方案就是每个Linux发行版都有自己的包管理器和软件源。但是并不是每种软件源都包含所有的应用依赖文件,并且一些环境下(如某些涉密专用机等)是无法联网下载依赖的,所以如果想要应用程序跨Linux发行版运行,还是可能会出现一些兼容性问题。对于开发人员来说一种可行的方法就是在打包应用程序的同时将应用依赖的动态链接库打包。
针对Linux应用程序与操作系统兼容性检测的问题,Linux基金会发布了LinuxStandard Base(LSB)标准以达到应用程序的二进制规范,并且开发了linux-app-checker用来检测应用程序是否和某一特定Linux发行版兼容。但是针对兼容性检测的问题,linux-app-checker只能对几种Linux发行版进行兼容性检测,能够得到应用程序的外部依赖库、外部依赖函数等结果,但是因为其是使用给定的LSB接口集进行数据对比得到的结果,也可以说得到的是应用程序是否符合LSB规范,而许多进行过定制的或者裁剪过的操作系统则不适用,并且该工具的检测结果只是应用程序的直接外部依赖,不能保证得到应用程序的所有依赖。
发明内容
本发明的目的在于提供一种评估Linux应用程序与操作系统兼容性的方法。
本发明的目的通过如下技术方案来实现:包括以下步骤:
步骤1:对操作系统进行扫描,扫描路径选择“/”,得到操作系统在扫描路径“/”下的动态链接库集L;解析扫描路径“/”下的所有ELF文件,得到操作系统的接口集I;将操作系统在扫描路径“/”下的动态链接库集L和接口集I写入MySQL数据库;
步骤2:对操作系统进行扫描,扫描路径选择”/usr/lib”和”/lib”,得到操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL;解析扫描路径”/usr/lib”和”/lib”下的所有ELF文件,得到操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的接口集SI;将操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL和接口集SI写入MySQL数据库;
步骤3:输入待检测的Linux应用程序的扫描路径,对待检测的Linux应用程序进行扫描,获取待检测的Linux应用程序的所有ELF文件;对所有ELF文件进行解析,得到待检测的Linux应用程序的所有对外直接依赖的动态链接库和接口信息写入MySQL数据库;
步骤4:读取MySQL数据库中待检测的Linux应用程序直接依赖的动态链接库信息,获取相应的路径,对待检测的Linux应用程序在该路径下进行扫描并解析,得到待检测的Linux应用程序的对外二级依赖的动态链接库和接口信息;
步骤5:递归执行步骤4直到待检测的Linux应用程序所有依赖的动态链接库和接口全部已写入MySQL数据库,得到Linux应用程序的对外依赖的动态链接库集NL和接口集NI;
步骤6:基于MySQL数据库的数据查询功能,根据操作系统的动态链接库集L和接口集I与待检测的Linux应用程序的动态链接库集NL和接口集NI之间的交集和差集,获取待检测的Linux应用程序与操作系统的兼容性结果;
若即待检测的Linux应用程序的动态链接库集NL和接口集NI中的信息全部包含在操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL和接口集SI中,则判定Linux应用程序与操作系统静态二进制兼容;
若(即待检测的Linux应用程序的动态链接库集NL和接口集NI中的信息全部包含在操作系统的动态链接库集L和接口集I中,但是这些外部依赖库并非完全在”/usr/lib”或”/lib”路径下,则判定Linux应用程序与操作系统静态二进制潜在兼容。
本发明的有益效果在于:
本发明通过将操作系统中提供的动态链接库、接口和应用程序对外直接依赖和间接依赖的动态链接库、接口进行对比,得到二者的静态二进制兼容性结果,实现了Linux应用程序在不同发行版操作系统运行兼容性问题的检测。本发明可以检测到应用程序对操作系统的直接依赖,并基于一种递归策略实现检测应用程序的间接依赖。本发明根据应用程序对外依赖和操作系统提供的资源的匹配程度进行了有效的兼容性分级评估,帮助开发者清晰的了解应用程序与操作系统的兼容程度。在使用应用程序前使用本发明对其进行静态二进制兼容性检测,可以在有限的时间内提前得到应用于系统的兼容性,并作出相应处理。
附图说明
图1为本发明的流程图。
图2为本发明中操作系统数据分析的流程图。
图3为本发明中应用程序数据分析的流程图。
图4为本发明中兼容性级别评估的流程图。
具体实施方式
下面结合附图对本发明做进一步描述。
本发明涉及一种评估Linux应用程序与操作系统静态二进制兼容性的方法,属于软件可靠性技术领域。本发明的目的是为了实现Linux应用程序在不同发行版操作系统运行兼容性问题检测而提供的一种基于系统、应用扫描和数据分析的一种评估Linux应用程序与操作系统静态二进制兼容性的方法,可以通过将操作系统中提供的动态链接库、接口和应用程序对外直接依赖和间接依赖的动态链接库、接口进行对比,得到二者的静态二进制兼容性结果。
一种评估Linux应用程序与操作系统兼容性的方法,包括以下步骤:
步骤1:对操作系统进行扫描,扫描路径选择“/”,得到操作系统在扫描路径“/”下的动态链接库集L;解析扫描路径“/”下的所有ELF文件,得到操作系统的接口集I;将操作系统在扫描路径“/”下的动态链接库集L和接口集I写入MySQL数据库;
步骤2:对操作系统进行扫描,扫描路径选择”/usr/lib”和”/lib”,得到操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL;解析扫描路径”/usr/lib”和”/lib”下的所有ELF文件,得到操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的接口集SI;将操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL和接口集SI写入MySQL数据库;
步骤3:输入待检测的Linux应用程序的扫描路径,对待检测的Linux应用程序进行扫描,获取待检测的Linux应用程序的所有ELF文件;对所有ELF文件进行解析,得到待检测的Linux应用程序的所有对外直接依赖的动态链接库和接口信息写入MySQL数据库;
步骤4:读取MySQL数据库中待检测的Linux应用程序直接依赖的动态链接库信息,获取相应的路径,对待检测的Linux应用程序在该路径下进行扫描并解析,得到待检测的Linux应用程序的对外二级依赖的动态链接库和接口信息;
步骤5:递归执行步骤4直到待检测的Linux应用程序所有依赖的动态链接库和接口全部已写入MySQL数据库,得到Linux应用程序的对外依赖的动态链接库集NL和接口集NI;
步骤6:基于MySQL数据库的数据查询功能,根据操作系统的动态链接库集L和接口集I与待检测的Linux应用程序的动态链接库集NL和接口集NI之间的交集和差集,获取待检测的Linux应用程序与操作系统的兼容性结果;
若即待检测的Linux应用程序的动态链接库集NL和接口集NI中的信息全部包含在操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL和接口集SI中,则判定Linux应用程序与操作系统静态二进制兼容;
若(即待检测的Linux应用程序的动态链接库集NL和接口集NI中的信息全部包含在操作系统的动态链接库集L和接口集I中,但是这些外部依赖库并非完全在”/usr/lib”或”/lib”路径下,则判定Linux应用程序与操作系统静态二进制潜在兼容。
实施例1:
针对Linux操作系统上应用程序可能出现的兼容性问题,本发明通过静态分析得到应用程序可能需要加载的动态链接库和方法,并基于加载执行的时序对Linux应用程序的外部依赖进行直接依赖和间接依赖两种依赖类型进行分类:其中从应用程序可以直接解析得到的外部动态链接库和接口为直接依赖;对应用程序直接依赖的动态链接库进行解析得到的外部依赖库和接口为间接依赖;并且根据得到的应用程序的外部依赖结果和操作系统扫描得到的结果之间进行的分析,对应用程序和操作系统之间的兼容性进行分级:1.应用程序外部依赖与操作系统之间静态二进制兼容;2.应用程序外部依赖于操作系统之间静态二进制潜在兼容;3.应用程序与操作系统之间静态二进制不兼容。
一种评估Linux应用程序与操作系统静态二进制兼容性的方法,包括流程如下:
步骤1:对当前系统进行扫描,获取到当前操作系统中所提供的所有动态链接库,同时使用readelf实用工具解析库文件得到接口信息。其中扫描路径选择“/”而不是默认动态链接库路径”/usr/lib”、”/lib”,因为应用程序编译时可能指定动态链接库扫描路径。将最终扫描信息写入MySQL数据库。
步骤2:提供应用程序路径,对待检测应用程序进行扫描,递归找到应用中所有ELF文件(可执行链接文件),对所有ELF文件进行解析,得到应用程序所有的对外直接依赖的动态链接库和接口信息写入MySQL。
步骤3:读取MySQL中应用程序直接依赖的动态链接库信息,找到相应的路径,对该动态链接库执行步骤2相同的操作,可以得到该应用程序对外二级依赖的动态链接库和接口,递归执行步骤3的操作直到所有依赖全部已写入数据库,可以得到应用程序所有直接依赖和间接依赖动态链接库和接口。
步骤4:数据分析。基于MySQL数据库的数据查询功能,求出操作系统动态链接库、接口集和应用程序对外依赖的动态链接库、接口集之间的交集、差集,根据结果的数据特征得到操作系统和应用程序的静态二进制兼容性结果。
步骤5:对评估结果进行封装,向开发者展现评估结果。
由于Linux发行版众多,一个应用程序可能不能与操作系统很好的兼容,即使Linux发行版一般都有比较完善的软件源和包管理器,但是在某些特定场景下(如涉密系统等)并不能使用,所以需要事先保证应用程序和操作系统的兼容性。linux-app-checker提供的应用程序依赖检测机制,可以检测到当前应用程序所对外依赖的动态链接库和接口,并得到是否符合LSB标准的结果,但是并不能应对某些场景下(如裁剪过的系统)的应用检测。本发明为开发者提供更多应用程序外部依赖的信息:不仅可以检测到应用程序对操作系统的直接依赖,而且基于一种递归策略实现检测应用程序的间接依赖,并且根据应用程序对外依赖和操作系统提供的资源的匹配程度进行了有效的兼容性分级评估。将兼容性进行分级可以帮助开发者清晰的了解应用程序与操作系统的兼容程度。软件开发者使用本发明在使用应用程序前对其进行静态二进制兼容性检测,可以在有限的时间内提前得到应用于系统的兼容性,并作出相应处理。
评估Linux应用程序与操作系统兼容性的方法,包括如下流程,如图1所示:
步骤1:进行操作系统数据分析,获取操作系统提供的所有动态链接库和接口信息,写入MySQL数据库:
在Linux操作系统中,默认动态链接库的搜索路径为”/usr/lib”和”/lib”,但是由于应用程序编译时可以指定库搜索路径,所以本发明将扫描操作系统的”/”路径,得到操作系统中所有的动态链接库,如图2所示。使用readelf实用程序解析动态链接库,读取其中的'.dynsym'段可以得到库所提供的函数接口信息。
步骤2:进行应用程序数据分析,获取应用程序所对外依赖的动态链接库和接口信息,写入MySQL数据库:
使用readelf实用工具对应用程序中的ELF(可执行链接文件)文件进行解析,通过读取其中的”Dynamic Section”只能得到应用程序直接依赖的动态链接库和直接依赖函数。所以本发明通过递归解析应用程序的依赖库可以得到应用程序依赖的所有动态链接库和接口,如图3所示。
步骤3:进行数据分析。将获取到的操作系统动态链接库、接口数据与应用程序对外依赖的动态链接库、接口数据进行对比分析,如图4。设应用程序对外依赖库集为NL,对外依赖接口集为NI,操作系统提供的动态链接库集为L,接口集为I,操作系统默认动态链接库搜索路径”/usr/lib”和”/lib”下的动态链接库集为SL。
1.若应用程序所对外依赖的动态链接库和接口中有记录在操作系统提供的动态链接库和接口信息中找不到,则应用程序可被标记为与操作系统静态二进制不兼容:
2.若应用程序所对外依赖的动态链接库和接口记录完全包含在操作系统所提供的动态链接库和接口信息中,并且这些外部依赖库的路径为”/usr/lib”或”/lib”,则标记该应用程序与操作系统静态二进制兼容:
3.若应用程序所对外依赖的动态链接库和接口记录完全包含在操作系统所提供的动态链接库和接口信息中,但是这些外部依赖库并非完全在”/usr/lib”或”/lib”路径下,则标记该应用程序与操作系统静态二进制潜在兼容:
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种评估Linux应用程序与操作系统兼容性的方法,其特征在于,包括以下步骤:
步骤1:对操作系统进行扫描,扫描路径选择“/”,得到操作系统在扫描路径“/”下的动态链接库集L;解析扫描路径“/”下的所有ELF文件,得到操作系统的接口集I;将操作系统在扫描路径“/”下的动态链接库集L和接口集I写入MySQL数据库;
步骤2:对操作系统进行扫描,扫描路径选择”/usr/lib”和”/lib”,得到操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL;解析扫描路径”/usr/lib”和”/lib”下的所有ELF文件,得到操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的接口集SI;将操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL和接口集SI写入MySQL数据库;
步骤3:输入待检测的Linux应用程序的扫描路径,对待检测的Linux应用程序进行扫描,获取待检测的Linux应用程序的所有ELF文件;对所有ELF文件进行解析,得到待检测的Linux应用程序的所有对外直接依赖的动态链接库和接口信息写入MySQL数据库;
步骤4:读取MySQL数据库中待检测的Linux应用程序直接依赖的动态链接库信息,获取相应的路径,对待检测的Linux应用程序在该路径下进行扫描并解析,得到待检测的Linux应用程序的对外二级依赖的动态链接库和接口信息;
步骤5:递归执行步骤4直到待检测的Linux应用程序所有依赖的动态链接库和接口全部已写入MySQL数据库,得到Linux应用程序的对外依赖的动态链接库集NL和接口集NI;
步骤6:基于MySQL数据库的数据查询功能,根据操作系统的动态链接库集L和接口集I与待检测的Linux应用程序的动态链接库集NL和接口集NI之间的交集和差集,获取待检测的Linux应用程序与操作系统的兼容性结果;
若即待检测的Linux应用程序的动态链接库集NL和接口集NI中的信息全部包含在操作系统在默认动态链接库扫描路径”/usr/lib”和”/lib”下的动态链接库集SL和接口集SI中,则判定Linux应用程序与操作系统静态二进制兼容;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110040663.6A CN112835788B (zh) | 2021-01-13 | 2021-01-13 | 一种评估Linux应用程序与操作系统兼容性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110040663.6A CN112835788B (zh) | 2021-01-13 | 2021-01-13 | 一种评估Linux应用程序与操作系统兼容性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112835788A true CN112835788A (zh) | 2021-05-25 |
CN112835788B CN112835788B (zh) | 2023-10-27 |
Family
ID=75927911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110040663.6A Active CN112835788B (zh) | 2021-01-13 | 2021-01-13 | 一种评估Linux应用程序与操作系统兼容性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835788B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377429A (zh) * | 2021-07-06 | 2021-09-10 | 北京字节跳动网络技术有限公司 | 安卓应用的运行方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131539A1 (en) * | 2010-11-23 | 2012-05-24 | Kushal Das | Find and Track Information Of Interface Usage Of Software Libraries By Other Software |
US20120254660A1 (en) * | 2011-03-30 | 2012-10-04 | International Business Machines Corporation | Processing test cases for applications to be tested |
CN103019748A (zh) * | 2013-01-15 | 2013-04-03 | 珠海金山办公软件有限公司 | Linux下本地应用程序嵌入桌面窗体的方法及系统 |
CN105094870A (zh) * | 2014-05-13 | 2015-11-25 | 中标软件有限公司 | 64位Linux操作系统兼容32位应用软件的方法 |
US20160170861A1 (en) * | 2014-12-16 | 2016-06-16 | Xinyu Xingbang Information Industry Co., Ltd | Method and a Device Thereof for Achieving the Monitoring Option Script of MySQL Database |
-
2021
- 2021-01-13 CN CN202110040663.6A patent/CN112835788B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131539A1 (en) * | 2010-11-23 | 2012-05-24 | Kushal Das | Find and Track Information Of Interface Usage Of Software Libraries By Other Software |
US20120254660A1 (en) * | 2011-03-30 | 2012-10-04 | International Business Machines Corporation | Processing test cases for applications to be tested |
CN103019748A (zh) * | 2013-01-15 | 2013-04-03 | 珠海金山办公软件有限公司 | Linux下本地应用程序嵌入桌面窗体的方法及系统 |
CN105094870A (zh) * | 2014-05-13 | 2015-11-25 | 中标软件有限公司 | 64位Linux操作系统兼容32位应用软件的方法 |
US20160170861A1 (en) * | 2014-12-16 | 2016-06-16 | Xinyu Xingbang Information Industry Co., Ltd | Method and a Device Thereof for Achieving the Monitoring Option Script of MySQL Database |
Non-Patent Citations (1)
Title |
---|
陈鹏;陈丽容;高艳?;李洪波;: "基于依赖要素比对的国产操作系统兼容性测试方法", 计算机工程与设计, no. 10 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377429A (zh) * | 2021-07-06 | 2021-09-10 | 北京字节跳动网络技术有限公司 | 安卓应用的运行方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112835788B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2004232058B2 (en) | Method and system for detecting vulnerabilities in source code | |
US7398516B2 (en) | Method and system for detecting race condition vulnerabilities in source code | |
US7493596B2 (en) | Method, system and program product for determining java software code plagiarism and infringement | |
US8286149B2 (en) | Apparatus for and method of implementing feedback directed dependency analysis of software applications | |
Li et al. | Self-inferencing reflection resolution for Java | |
US7987456B2 (en) | Qualitatively annotated code | |
US6637025B1 (en) | Dynamic selection/definition of which class/methods should or should not be jit'ed using information stored in a jar file | |
US8352921B2 (en) | Static analysis defect detection in the presence of virtual function calls | |
US7069474B2 (en) | System and method for assessing compatibility risk | |
US20070006170A1 (en) | Execution failure investigation using static analysis | |
US20110219359A1 (en) | Identifying test cases to be run after changes to modules of a software application | |
US20060212847A1 (en) | Type checker for a typed intermediate representation of object-oriented languages | |
US5960197A (en) | Compiler dispatch function for object-oriented C | |
US20060101435A1 (en) | Detection of code patterns | |
Murphy-Hill et al. | Discovering API usability problems at scale | |
US20100299659A1 (en) | Attribute based method redirection | |
Zhang et al. | Intelligen: Automatic driver synthesis for fuzz testing | |
CN112835788B (zh) | 一种评估Linux应用程序与操作系统兼容性的方法 | |
US7539975B2 (en) | Method, system and product for determining standard Java objects | |
US7647581B2 (en) | Evaluating java objects across different virtual machine vendors | |
US8713550B2 (en) | Methods, devices and software applications for facilitating a development of a computer program | |
Korsman et al. | A tool for analysing higher-order feature interactions in preprocessor annotations in C and C++ projects | |
CN115934157B (zh) | 软件依赖范围自动推断方法、装置、计算机设备和存储器 | |
Mohsen et al. | KotlinDetector: Towards Understanding the Implications of Using Kotlin in Android Applications | |
Borba | Using Information Flow to estimate interference between developers same method contributions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |