CN116737205A - 一种无线智能物联网IoT模组SDK适配方法 - Google Patents
一种无线智能物联网IoT模组SDK适配方法 Download PDFInfo
- Publication number
- CN116737205A CN116737205A CN202310743111.0A CN202310743111A CN116737205A CN 116737205 A CN116737205 A CN 116737205A CN 202310743111 A CN202310743111 A CN 202310743111A CN 116737205 A CN116737205 A CN 116737205A
- Authority
- CN
- China
- Prior art keywords
- interface level
- sdk
- software
- updated
- interface
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000006978 adaptation Effects 0.000 title claims abstract description 40
- 230000006870 function Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 25
- 230000004048 modification Effects 0.000 claims description 19
- 238000012986 modification Methods 0.000 claims description 19
- 238000013515 script Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
一种无线智能物联网IoT模组SDK适配方法,涉及SDK适配领域;其中,方法包括:获取待更新软件的第一接口级别以及第一SDK的第二接口级别;比较第一接口级别与第二接口级别的大小;若第一接口级别小于第二接口级别,则将第一接口级别提升至第二接口级别,以完成待更新软件与第一SDK的适配。实施本申请提供的技术方案,能解决SDK适配方法较为复杂的问题。
Description
技术领域
本申请涉及SDK适配领域,具体涉及一种无线智能物联网IoT模组SDK适配方法。
背景技术
软件开发工具包(Software Development Kit,SDK)是开发Android应用程序所必须的工具,包含了应用程序所需的应用程序编程接口(Application ProgrammingInterface,API)、工具和文档等资源,帮助开发者可以更快速、更方便地开发Android应用程序。
一般情况下,若SDK的接口版本与应用程序的接口版本一致,则应用程序可以通过接口调用SDK,使用SDK的功能;但若不一致,则使用不了SDK的功能,即SDK不兼容;此时需要工作人员对SDK或者应用程序进行适配操作,如通过反射机制在应用程序运行时动态调用SDK中的功能,但这种方法需要额外的代码来获取方法和类、进行异常处理以及进行类型转换,进一步地,这些操作会增加代码的执行时间,也增加了后续维护的难度和成本,即现有的SDK适配方法较为复杂。
因此,亟需一种无线智能物联网IoT模组SDK适配方法。
发明内容
本申请提供了一种无线智能物联网IoT模组SDK适配方法,能解决SDK适配方法较为复杂的问题。
本申请在第一方面提供了一种无线智能物联网IoT模组SDK适配方法,应用于服务器,方法包括:获取待更新软件的第一接口级别以及第一SDK的第二接口级别;比较第一接口级别与第二接口级别的大小;若第一接口级别小于第二接口级别,则将第一接口级别提升至第二接口级别,以完成待更新软件与第一SDK的适配。
通过采用上述技术方案,在待更新软件的接口等级较低以至于不能使用拥有较高等级接口的SDK时,服务器能够通过提高软件接口等级的方式使服务器能够使用SDK,以完成适配;该方案不需要增加额外代码,相比于其他SDK适配方法,该方案能通过较为便捷的方式适配SDK。
可选的,将第一接口级别提升至第二接口级别,具体包括:修改待更新软件的清单文件,使清单文件中的接口属性数值提高至第二接口级别;其中,清单文件包括待更新软件的接口属性。
通过采用上述技术方案,服务器通过修改清单文件,使待更新软件可支持的接口等级得到提高,进而使服务器能够使用SDK里的功能。
可选的,比较第一接口级别与第二接口级别的大小之后,还包括:若第一接口级别大于第二接口级别,则获取第二SDK的第三接口级别;比较第一接口级别与第三接口级别的大小;若第一接口级别等于第三接口级别,则完成待更新软件与第二SDK的适配。
通过采用上述技术方案,当待更新软件的接口等级相对SDK更高时,通过获取其他版本的SDK,当获取到与待更新软件有同等级API的该SDK时,使该更新软件能够使用该SDK。
可选的,获取待更新软件的第一接口级别以及第一SDK的第二接口级别之前,还包括:获取第一SDK的说明文档;通过说明文档判断第一SDK是否依赖第三方库;若依赖第三方库,则从说明文档中获取第三方库的信息,第三方库的信息包括第三方库的名称以及第三方库的第一版本信息;检测待更新软件中是否存在第三方库;若待更新软件中不存在第三方库,则在待更新软件中引入第三方库。
通过采用上述技术方案,判断SDK是否需要第三方库的资源,当需要时,判断待更新软件中是否包含第三方库,若不包含,则获取第三方库,以使SDK的功能能够正常使用。
可选的,检测待更新软件中是否存在第三方库之后,还包括:若待更新软件中存在第三方库,则获取待更新软件中的第三方库的第二版本信息;确认第一版本信息与第二版本信息是否相同;若第一版本信息与第二版本信息不相同,则删除第二版本信息对应的第三方库;在待更新软件中引入第一版本信息对应的第三方库。
通过采用上述技术方案,判断待更新软件中的第三方库是否为最新版本,若否,则删除已存在的第三方库文件,获取并引入最新版本的第三方库,使SDK的功能能够正常使用。
可选的,获取待更新软件的第一接口级别以及第一SDK的第二接口级别,具体包括:从待更新软件的核心配制文件中查找最大支持SDK版本属性,获取待更新软件的第一接口级别;从第一SDK的脚本构建文件中查找编译SDK版本属性,获取第一SDK的第二接口级别。
通过采用上述技术方案,服务器通过待更新软件的核心配制文件获取待更新软件支持的API级别信息,通过脚本构建文件获取SDK支持的API级别信息,以进行API级别比较。
可选的,修改待更新软件的清单文件之前,还包括:使用检查权限函数判断服务器是否拥有待更新软件的清单文件修改权限;若服务器未拥有待更新软件的清单文件修改权限,则通过权限函数获取待更新软件的清单修改权限。
通过采用上述技术方案,服务器在修改清单文件之前判断是否拥有修改权限,若没有,则通过权限函数获得修改权限,以顺利进行SDK适配。
本申请在第二方面提供了一种无线智能物联网IoT模组SDK适配装置,装置为服务器,服务器包括获取单元和处理单元;
获取单元,用于获取待更新软件的第一接口级别以及第一SDK的第二接口级别;
处理单元,用于比较第一接口级别与第二接口级别的大小;若第一接口级别小于第二接口级别,则将第一接口级别提升至第二接口级别,以完成待更新软件与第一SDK的适配。
可选的,处理单元用于修改待更新软件的清单文件,使清单文件中的接口属性数值提高至第二接口级别;其中,清单文件包括待更新软件的接口属性。
可选的,获取单元用于若第一接口级别大于第二接口级别,则获取第二SDK的第三接口级别;处理单元用于比较第一接口级别与第三接口级别的大小;若第一接口级别等于第三接口级别,则完成待更新软件与第二SDK的适配。
可选的,获取单元用于获取第一SDK的说明文档;若依赖第三方库,则从说明文档中获取第三方库的信息,第三方库的信息包括第三方库的名称以及第三方库的第一版本信息;处理单元用于通过说明文档判断第一SDK是否依赖第三方库;检测待更新软件中是否存在第三方库;若待更新软件中不存在第三方库,则在待更新软件中引入第三方库。
可选的,获取单元用于若待更新软件中存在第三方库,则获取待更新软件中的第三方库的第二版本信息;处理单元用于确认第一版本信息与第二版本信息是否相同;若第一版本信息与第二版本信息不相同,则删除第二版本信息对应的第三方库;在待更新软件中引入第一版本信息对应的第三方库。
可选的,获取单元用于从待更新软件的核心配制文件中查找最大支持SDK版本属性,获取待更新软件的第一接口级别;从第一SDK的脚本构建文件中查找编译SDK版本属性,获取第一SDK的第二接口级别。
可选的,处理单元用于使用检查权限函数判断服务器是否拥有待更新软件的清单文件修改权限;获取单元用于若服务器未拥有待更新软件的清单文件修改权限,则通过权限函数获取待更新软件的清单修改权限。
本申请在第三方面提供了一种电子设备,包括处理器、存储器、用户接口及网络接口,存储器用于存储指令,用户接口和网络接口用于给其他设备通信,处理器用于执行存储器中存储的指令,以使电子设备执行如上第一方面或第一方面的任意一种可能的实现方式方法。
本申请在第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行如上第一方面或第一方面的任意一种可能的实现方式方法。
综上,本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
1、在待更新软件的接口等级较低以至于不能使用拥有较高等级接口的SDK时,服务器能够通过提高软件接口等级的方式使服务器能够使用SDK,以完成适配;该方案不需要改动过多代码以及增加额外代码,相比于其他SDK适配方法,该方案能通过较为便捷的方式适配SDK。
2、当待更新软件的接口等级相对SDK更高时,通过获取其他版本的SDK,当获取到与待更新软件有同等级API的该SDK时,使该更新软件能够使用该SDK。
3、判断SDK是否需要第三方库的资源,当需要时,判断待更新软件中是否包含第三方库,若不包含,则获取第三方库,以使SDK的功能能够正常使用。
附图说明
图1是本申请实施例提供的一种无线智能物联网IoT模组SDK适配方法的一种流程示意图。
图2是本申请实施例公开的一种无线智能物联网IoT模组SDK适配装置的结构示意图。
图3是本申请实施例公开的一种电子设备的结构示意图。
附图标记说明:201、获取单元;202、处理单元;300、电子设备;301、处理器;302、通信总线;303、用户接口;304、网络接口;305、存储器。
具体实施方式
为了使本领域的技术人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
在本申请实施例的描述中,“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
工作人员对SDK或者应用程序进行适配操作,如通过反射机制在应用程序运行时动态调用SDK中的功能,但这种方法需要额外的代码来获取方法和类、进行异常处理以及进行类型转换,进一步地,这些操作会增加代码的执行时间,也增加了后续维护的难度和成本,即现有的SDK适配方法较为复杂;因此,本文提供了一种无线智能物联网IoT模组SDK适配方法。
本申请提供的一种无线智能物联网IoT模组SDK适配方法可参考图1,图1是本申请实施例提供的一种无线智能物联网IoT模组SDK适配方法的一种流程示意图,应用于服务器。本申请实施例具体以安装有安卓操作系统的终端设备,终端设备上的应用程序软件使用SDK进行更新开发的场景为例,终端设备即为服务器。该方法包括步骤S101至步骤S103。
S101、获取待更新软件的第一接口级别以及第一SDK的第二接口级别。
在上述步骤中,服务器获取待更新软件的可支持接口级别以及待使用的SDK的接口级别;在应用程序中,不同级别的接口(即API)提供了不同程度的抽象和封装,以便于开发者更加方便地使用这些API来实现特定的功能,因此不同的应用程序拥有不同的接口级别,即需要获取待更新软件的第一接口级别;在SDK中,接口也是根据SDK的抽象程度和复杂度的不同来进行分类的,因此不同的SDK有不同的接口等级,即需要获取SDK的第二接口级别。
举例来说,服务器获取待更新软件的接口级别为8,待使用SDK的接口级别为12。
在一种可能的实施方式中,步骤S101之前,获取第一SDK的说明文档;通过说明文档判断第一SDK是否依赖第三方库;若依赖第三方库,则从说明文档中获取第三方库的信息,第三方库的信息包括第三方库的名称以及第三方库的第一版本信息;检测待更新软件中是否存在第三方库;若待更新软件中不存在第三方库,则在待更新软件中引入第三方库。
具体地,服务器可以通过在该SDK的官网详情页中获取该SDK的说明文档,也能下载SDK的文档包,文档包里包括有该SDK的使用指南即说明文档;获取说明文档后查找文档中的依赖项、引用以及相关库等关键词,获取关键词附近的文本信息,再将文本信息和已有的SDK目录库进行匹配,若匹配成功则能够得到该SDK具体依赖的第三方库以及第三方库的版本信息,若匹配失败则判断该SDK不依赖第三方库,可开始进行接口级别获取步骤;当然,还有其他能够让服务器判断SDK是否依赖第三方库,如通过静态代码分析器或者依赖分析工具对SDK的源代码进行分析判断,也能达到自动检测SDK依赖的第三方库的效果。
在判断SDK依赖第三方库并得到该第三方库的信息后,服务器使用开源软件扫描工具,如Black Duck或FOSSology,判断待更新软件文件中是否包含该第三方库,且判断第三方库版本和SDK说明文档里记载的一致;若包含,则可开始进行接口级别获取步骤;若不包含,则根据该第三方库的信息下载获取该第三方库,并建立第三方库的引入关系。
上述举例中,在待使用SDK的官方网站上获取说明文档,检索说明文档中相关库这个关键词,并获取相关库关键词附近50字节内的文本,与提前准备好的SDK目录库进行匹配,匹配到该SDK依赖于Gson库,Gson库是一个用于Java应用程序的JSON解析库,它可以将JSON数据转换为Java对象,以方便应用程序进行处理,并且根据说明文档,得到该SDK依赖于版本2.0的Gson库;另一种情况,即未匹配到该SDK依赖于某个第三方库的情况,则开始进行接口级别获取步骤;接着论述依赖第三方库的情况:使用FOSSology工具检索待更新软件文件是否包含Gson库,若不包含,则在Gson库网站上下载版本为2.0的Gson库,并在待更新软件的文件中建立Gson库的引用关系,以使SDK能够调用Gson库。
在一种可能的实施方式中,检测待更新软件中是否存在第三方库之后,若待更新软件中存在第三方库,则获取待更新软件中的第三方库的第二版本信息;确认第一版本信息与第二版本信息是否相同;若第一版本信息与第二版本信息不相同,则删除第二版本信息对应的第三方库;在待更新软件中引入第一版本信息对应的第三方库。
具体地,若待更新软件中已经包含第三方库,则查看第三方库数据中的元数据文件,元数据文件包含有第三方库的版本信息;若该版本信息和SDK说明文档中记载的版本信息一致,则说明该待更新软件已引入符合SDK要求的第三方库,进行上述S101步骤;若该版本信息和SDK说明文档中记载的版本信息不一致,则先删除原有的第三方库的引用关系和数据,然后根据该SDK说明文档记载的第三方库信息在第三方库官网上进行下载,并建立第三方库的引入关系。
上述举例中,服务器使用FOSSology工具检索待更新软件文件是否包含Gson库后,得到待更新软件已经包含了Gson库,然后查看已存在的Gson库的元数据文件,获得已引用的Gson库的版本信息为1.5,与SDK的说明文档中记载的版本2.0不一致,则删除版本1.5的Gson库的引用关系以及数据,在Gson库的官方网站上下载2.0版本的Gson库并建立Gson库的引用关系。
在一种可能的实施方式中,步骤S101具体包括:从待更新软件的核心配制文件中查找最大支持SDK版本属性,获取待更新软件的第一接口级别;从第一SDK的脚本构建文件中查找编译SDK版本属性,获取第一SDK的第二接口级别。
具体地,查找待更新软件的核心配制文件(即AndroidManifest.xml文件)的android:maxSdkVersion属性,获取待更新软件最大支持的sdk等级,即上述第一接口级别,上述最大支持SDK版本属性即为android:maxSdkVersion属性;从SDK文件的脚本构建文件(即build.gradle文件)的android:targetSdkVersion属性,获取SDK的接口级别,即第二接口级别。
S102、比较第一接口级别与第二接口级别的大小。
在上述步骤中,将待更新软件支持的接口级别与sdk的接口级别比较。
在一种可能的实施方式中,步骤S102之后,若第一接口级别大于第二接口级别,则获取第二SDK的第三接口级别;比较第一接口级别与第三接口级别的大小;若第一接口级别等于第三接口级别,则完成待更新软件与第二SDK的适配。
具体地,若在接口等级比较之后,待更新软件的接口等级比SDK高,则考虑到SDK版本偏低,官方网站上可能存在新版本,新版本的SDK可能增加新的功能或者修正之前版本的错误,因此在SDK版本偏低的情况下,在该SDK官网中下载最新版本的该SDK;但下载的新版本SDK的接口等级可能会发生改变,因此在方法中考虑了新版本SDK接口等级与待更新软件接口等级相等的情况,这种情况下待更新软件即能正常顺利使用;当新版本SDK接口等级大于待更新软件时,则可以进行S101至S103来进行SDK的适配;当新版本SDK接口依然小于待更新软件时,则意味着该SDK只需要一个较低的接口等级即可使用,又因为在安卓系统中,接口等级能够向下兼容,因此在这种情况下,待更新软件是可以使用该SDK的,然后不再重复获取新版本SDK,否则会造成不停地获取新版本的情况,可以通过限定获取新SDK版本次数来防止这种情况发生,当然还存在其他方法,此处不做限定。
举例来说,获取到SDK接口等级为8,待更新软件接口等级为12,进行比较后,在该SDK官方网站上获取该SDK的最新版本,获取该最新版本SDK的接口等级为12,与待更新软件接口等级相等,则该待更新软件能够使用该新版本SDK。
S103、若第一接口级别小于第二接口级别,则将第一接口级别提升至第二接口级别,以完成待更新软件与第一SDK的适配。
在上述步骤中,当待更新软件接口级别小于SDK的接口级别时,修改待更新软件的清单文件以提高待更新软件可支持的最大SDK等级,以能够使用接口级别更高的SDK。
在一种可能的实施方式中,步骤S103中将第一接口级别提升至第二接口级别,具体包括:修改待更新软件的清单文件,使清单文件中的接口属性数值提高至第二接口级别;其中,清单文件包括待更新软件的接口属性。
具体地,将待更新软件的接口等级进行提升可以依照下列步骤来进行:修改待更新软件的AndroidManifest.xml文件(即清单文件),将uses-sdk标签的maxSdkVersion属性和targetSdkVersion属性修改到待使用SDK所需的API级别,然后修改部分代码,使待更新软件能够使用具有高级别接口的SDK文件。
在一种可能的实施方式中,修改待更新软件的清单文件之前,使用检查权限函数判断服务器是否拥有待更新软件的清单文件修改权限;若服务器未拥有待更新软件的清单文件修改权限,则通过权限函数获取待更新软件的清单修改权限。
具体地,在修改清单文件之前,还需要检查是否具备修改权限,具体为:使用ContextCompat.checkSelfPermission()方法(即通过检查权限函数方法检查)来检查应用程序是否已经被授予了WRITE_EXTERNAL_STORAGE(写入权限)权限或READ_EXTERNAL_STORAGE(读取权限)权限。如果应用程序已经获得了相应的权限,则该方法会返回PackageManager.PERMISSION_GRANTED,否则返回PackageManager.PERMISSION_DENIED,判断的目的是避免在没有获得权限的情况下进行文件读写操作,从而导致应用程序出现异常或崩溃;如果应用程序没有获得相应的权限,则可以使用ActivityCompat.requestPermissions()方法(即通过权限函数来获得)来请求权限,以获得修改清单文件内容的权限。
本申请还提供了一种无线智能物联网IoT模组SDK适配装置,该装置包获取单元201和处理单元202,参照图2。
获取单元201,用于获取待更新软件的第一接口级别以及第一SDK的第二接口级别;
处理单元202,用于比较第一接口级别与第二接口级别的大小;若第一接口级别小于第二接口级别,则将第一接口级别提升至第二接口级别,以完成待更新软件与第一SDK的适配。
在一种可能的实施方式中,处理单元202用于修改待更新软件的清单文件,使清单文件中的接口属性数值提高至第二接口级别;其中,清单文件包括待更新软件的接口属性。
在一种可能的实施方式中,获取单元201用于若第一接口级别大于第二接口级别,则获取第二SDK的第三接口级别;处理单元202用于比较第一接口级别与第三接口级别的大小;若第一接口级别等于第三接口级别,则完成待更新软件与第二SDK的适配。
在一种可能的实施方式中,获取单元201用于获取第一SDK的说明文档;若依赖第三方库,则从说明文档中获取第三方库的信息,第三方库的信息包括第三方库的名称以及第三方库的第一版本信息;处理单元202用于通过说明文档判断第一SDK是否依赖第三方库;检测待更新软件中是否存在第三方库;若待更新软件中不存在第三方库,则在待更新软件中引入第三方库。
在一种可能的实施方式中,获取单元201用于若待更新软件中存在第三方库,则获取待更新软件中的第三方库的第二版本信息;处理单元202用于确认第一版本信息与第二版本信息是否相同;若第一版本信息与第二版本信息不相同,则删除第二版本信息对应的第三方库;在待更新软件中引入第一版本信息对应的第三方库。
在一种可能的实施方式中,获取单元201用于从待更新软件的核心配制文件中查找最大支持SDK版本属性,获取待更新软件的第一接口级别;从第一SDK的脚本构建文件中查找编译SDK版本属性,获取第一SDK的第二接口级别。
在一种可能的实施方式中,处理单元202用于使用检查权限函数判断服务器是否拥有待更新软件的清单文件修改权限;获取单元201用于若服务器未拥有待更新软件的清单文件修改权限,则通过权限函数获取待更新软件的清单修改权限。
需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置和方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还公开了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序被处理器执行如上说明书中公开的SDK适配方法。
本申请还公开一种电子设备。参照图3,图3是本申请实施例公开的一种电子设备的结构示意图。该电子设备300可以包括:至少一个处理器301,至少一个通信总线302,至少一个用户接口303,网络接口304,存储器305。
其中,通信总线302用于实现这些组件之间的连接通信。
其中,用户接口303可以包括显示屏(Display)、摄像头(Camera),可选用户接口303还可以包括标准的有线接口、无线接口。
其中,网络接口304可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器301可以包括一个或者多个处理核心。处理器301利用各种接口和线路连接整个服务器内的各个部分,通过运行或执行存储在存储器305内的指令、程序、代码集或指令集,以及调用存储在存储器305内的数据,执行服务器的各种功能和处理数据。可选的,处理器301可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器301可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器301中,单独通过一块芯片进行实现。
其中,存储器305可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器305包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器305可用于存储指令、程序、代码、代码集或指令集。存储器305可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及的数据等。存储器305可选的还可以是至少一个位于远离前述处理器301的存储装置。参照图3,作为一种计算机存储介质的存储器305中可以包括操作系统、网络通信模块、用户接口模块以及SDK适配应用程序。
在图3所示的电子设备300中,用户接口303主要用于为用户提供输入的接口,获取用户输入的数据;而处理器301可以用于调用存储器305中存储的SDK适配应用程序,当由一个或多个处理器301执行时,使得电子设备300执行如上述实施例中一个或多个的方法。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必需的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几种实施方式中,应该理解到,所披露的装置,可通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其他的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践真理的公开后,将容易想到本公开的其他实施方案。
本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种无线智能物联网IoT模组SDK适配方法,其特征在于,应用于服务器,所述方法包括:
获取待更新软件的第一接口级别以及第一SDK的第二接口级别;
比较所述第一接口级别与所述第二接口级别的大小;
若所述第一接口级别小于所述第二接口级别,则将所述第一接口级别提升至所述第二接口级别,以完成所述待更新软件与所述第一SDK的适配。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一接口级别提升至所述第二接口级别,具体包括:
修改所述待更新软件的清单文件,使所述清单文件中的接口属性数值提高至所述第二接口级别;其中,
所述清单文件包括所述待更新软件的接口属性。
3.根据权利要求1所述的方法,其特征在于,所述比较所述第一接口级别与所述第二接口级别的大小之后,还包括:
若所述第一接口级别大于所述第二接口级别,则获取第二SDK的第三接口级别;
比较所述第一接口级别与所述第三接口级别的大小;
若所述第一接口级别等于所述第三接口级别,则完成所述待更新软件与所述第二SDK的适配。
4.根据权利要求1所述的方法,其特征在于,所述获取待更新软件的第一接口级别以及第一SDK的第二接口级别之前,还包括:
获取第一SDK的说明文档;
通过所述说明文档判断所述第一SDK是否依赖第三方库;
若依赖所述第三方库,则从所述说明文档中获取第三方库的信息,所述第三方库的信息包括所述第三方库的名称以及所述第三方库的第一版本信息;
检测待更新软件中是否存在所述第三方库;
若所述待更新软件中不存在所述第三方库,则在所述待更新软件中引入所述第三方库。
5.根据权利要求4所述的方法,其特征在于,所述检测待更新软件中是否存在所述第三方库之后,还包括:
若所述待更新软件中存在所述第三方库,则获取所述待更新软件中的第三方库的第二版本信息;
确认所述第一版本信息与所述第二版本信息是否相同;
若所述第一版本信息与所述第二版本信息不相同,则删除所述第二版本信息对应的第三方库;
在所述待更新软件中引入所述第一版本信息对应的第三方库。
6.根据权利要求1所述的方法,其特征在于,所述获取待更新软件的第一接口级别以及第一SDK的第二接口级别,具体包括:
从待更新软件的核心配制文件中查找最大支持SDK版本属性,获取所述待更新软件的第一接口级别;
从第一SDK的脚本构建文件中查找编译SDK版本属性,获取所述第一SDK的第二接口级别。
7.根据权利要求2所述的方法,其特征在于,所述修改所述待更新软件的清单文件之前,还包括:
使用检查权限函数判断所述服务器是否拥有所述待更新软件的清单文件修改权限;
若所述服务器未拥有所述待更新软件的清单文件修改权限,则通过权限函数获取所述待更新软件的清单修改权限。
8.一种无线智能物联网IoT模组SDK适配装置,其特征在于,所述装置为服务器,所述服务器包括获取单元(201)和处理单元(202):
所述获取单元(201),用于获取待更新软件的第一接口级别以及第一SDK的第二接口级别;
所述处理单元(202),用于比较所述第一接口级别与所述第二接口级别的大小;若所述第一接口级别小于所述第二接口级别,则将所述第一接口级别提升至所述第二接口级别,以完成所述待更新软件与所述第一SDK的适配。
9.一种电子设备,其特征在于,包括处理器(301)、存储器(305)、用户接口(303)及网络接口(304),所述存储器(305)用于存储指令,所述用户接口(303)和所述网络接口(304)用于给其他设备通信,所述处理器(301)用于执行所述存储器(305)中存储的指令,以使所述电子设备(300)执行如权利要求1至7任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上权利要求1至7中任意一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310743111.0A CN116737205A (zh) | 2023-06-21 | 2023-06-21 | 一种无线智能物联网IoT模组SDK适配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310743111.0A CN116737205A (zh) | 2023-06-21 | 2023-06-21 | 一种无线智能物联网IoT模组SDK适配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737205A true CN116737205A (zh) | 2023-09-12 |
Family
ID=87918240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310743111.0A Pending CN116737205A (zh) | 2023-06-21 | 2023-06-21 | 一种无线智能物联网IoT模组SDK适配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737205A (zh) |
-
2023
- 2023-06-21 CN CN202310743111.0A patent/CN116737205A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7146609B2 (en) | Method, system and article of manufacture for a firmware image | |
CN111061643B (zh) | Sdk集群的兼容性检测方法、装置、电子设备及存储介质 | |
CN112199300B (zh) | 一种接口测试方法、装置、电子设备及存储介质 | |
US20120227032A1 (en) | Method, apparatus, and system for invoking widget | |
CN110457049B (zh) | 实现插件自动化的方法、装置、电子设备及存储介质 | |
CN117112060A (zh) | 组件库构建方法、装置、电子设备及存储介质 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN110941443B (zh) | 修改sdk中文件名的方法、装置及电子设备 | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN116737205A (zh) | 一种无线智能物联网IoT模组SDK适配方法 | |
CN115794220A (zh) | 软件源迁移方法、装置和系统、计算设备和可读存储介质 | |
CN115016836A (zh) | 组件版本管理方法、装置、电子设备及系统 | |
US11372638B2 (en) | Automated dependency detection and response | |
CN113721940A (zh) | 一种软件部署方法、装置、电子设备及存储介质 | |
CN112114871A (zh) | 一种代码共享方法、装置、服务器、终端及介质 | |
US8615736B2 (en) | Module facility for JAVASCRIPT language | |
CN116382796B (zh) | 一种h5小程序运行器的插件管理方法、装置及电子设备 | |
CN117235023B (zh) | 一种远程仓库缓存管理方法、装置、设备及存储介质 | |
CN113722538B (zh) | 一种界面动态渲染方法及装置 | |
CN110247966B (zh) | 内核创建方法、智能电视及计算机可读存储介质 | |
CN112035119B (zh) | 一种数据删除方法及装置 | |
CN113918499B (zh) | 开放接口生成方法、网络设备及计算机可读存储介质 | |
CN111209056B (zh) | 功能函数的加载方法、装置、可读存储介质及电子设备 | |
CN116594876A (zh) | 一种接口测试方法、装置、设备及存储介质 | |
CN115617675A (zh) | 应用程序的自动化测试方法、装置、设备及存储介质 |
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 |