智能卡java应用的升级方法和装置、电子设备
技术领域:
:1.本技术涉及智能卡
技术领域:
:,尤其涉及一种智能卡java应用的升级方法和装置、电子设备。
背景技术:
::2.智能卡(smartcard)广泛应用于包括电信、银行、公交、医疗、身份证件、安全认证等与普通消费者息息相关的领域,在移动支付领域、个人信息安全领域更是发挥着不可替代的作用。传统的native卡存在着应用开发难度大、开发周期长、缺乏通用开发平台等问题,此外native卡无法很友好的支持跨行业的一卡多应用需求,应用在发卡时已固定,无法满足客户的个性化需求。3.java卡是一种可以运行java程序的微处理器智能卡,方便了智能卡的应用开发和一卡多应用的实现,并且允许动态装载,更新或删除卡片应用。然而一旦装载到智能卡上的java应用实现有问题,用户就需要对应用进行升级,直接通过删除用户应用再重新装载的方式进行应用升级,将会用户数据的丢失,这无疑是给用户造成了困扰。技术实现要素:4.本技术实施例的主要目的在于提出一种智能卡java应用的升级方法和装置、电子设备,通过更新系统api的方式对用户应用进行升级,升级后保留应用升级前的用户区数据,无需进行数据备份和迁移,优化用户体验。5.为实现上述目的,本技术实施例的第一方面提出了一种智能卡java应用的升级方法,所述方法包括:6.根据java应用升级需求修改所述智能卡的系统api代码;7.将修改后的所述系统api代码转换成特定格式的系统api数据;8.获取所述系统api数据对应的新增索引信息;9.将所述新增索引信息写入到预留的更新索引区域,所述新增索引信息排列于原有索引信息之后,其中,所述更新索引区域位于所述智能卡中的编码区;10.将所述系统api数据更新到所述编码区,以完成所述java应用升级。11.在一些实施例,所述将修改后的所述系统api代码转换成特定格式的系统api数据,包括:12.通过第三方工具将修改后的所述系统api代码转换成特定格式的系统api数据。13.在一些实施例,所述通过第三方工具将修改后的所述系统api代码转换成特定格式的系统api数据,包括;14.使用第三方工具将修改后的所述系统api代码通过convert转成特定格式的系统api数据;15.将所述系统api数据存储于所述编码区。16.在一些实施例,所述将所述新增索引信息写入到预留的更新索引区域,所述新增索引信息排列于原有索引信息之后,包括:17.在所述编码区的映射关系表中预留所述更新索引区域,其中,所述映射关系表用于确定索引信息与数据存储地址的映射关系;18.确定所述原有索引信息对应在所述映射关系表中的原有索引区域;19.将所述更新索引区域设置于所述原有索引区域之后;20.写入所述新增索引信息到所述更新索引区域,以使所述新增索引信息排列于原有索引信息之后。21.在一些实施例,所述将所述系统api数据更新到所述编码区,以完成所述java应用升级,包括:22.通过本地cos升级的方式将所述系统api数据更新到所述编码区,以完成所述java应用升级;或者,23.通过在线cos升级的方式将所述系统api数据更新到所述编码区,以完成所述java应用升级。24.在一些实施例,所述通过本地cos升级的方式将所述系统api数据更新到所述编码区,以完成所述java应用升级,包括;25.通过本地apdu升级的方式将所述系统api数据更新到所述编码区,以完成所述java应用升级。26.在一些实施例,所述智能卡包括所述编码区和数据区,所述java应用存在于所述数据区,所述编码区和所述数据区相互独立。27.为实现上述目的,本技术实施例的第二方面提出了一种智能卡java应用的升级装置,所述装置包括:28.修改模块,用于根据java应用升级需求修改所述智能卡的系统api代码;29.转换模块,用于将修改后的所述系统api代码转换成特定格式的系统api数据;30.获取模块,用于获取所述系统api数据对应的新增索引信息;31.写入模块,用于将所述新增索引信息写入到预留的更新索引区域,所述新增索引信息排列于原有索引信息之后,其中,所述更新索引区域位于所述智能卡中的编码区;32.更新模块,用于将所述系统api数据更新到所述编码区,以完成所述java应用升级。33.为实现上述目的,本技术实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。34.为实现上述目的,本技术实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。35.本技术提出的智能卡java应用的升级方法和装置、电子设备,根据java应用升级需求修改智能卡的系统api代码;将修改后的系统api代码转换成特定格式的系统api数据;获取系统api数据对应的新增索引信息;将新增索引信息写入到预留的更新索引区域,新增索引信息排列于原有索引信息之后,其中,更新索引区域位于智能卡中的编码区;将系统api数据更新到编码区,以完成java应用升级。基于此,通过将升级的系统api数据对应的新增索引信息写入到预留的更新索引区域,且新增索引信息排列于原有索引信息之后,从而能够维持应用的调用关系,不改变原有索引信息,无需升级后进行繁琐的数据同步操作,从而免除数据同步操作,无需重新生成调用关系,不仅提升用户体验,同时也减少出错的风险。附图说明36.图1是本技术实施例提供的智能卡java应用的升级方法的主流程图;37.图2是本技术实施例提供的java智能卡架构图;38.图3是本技术实施例提供的智能卡java应用的升级方法的子流程图;39.图4是本技术实施例提供的智能卡java应用的升级方法的子流程图;40.图5是本技术实施例提供的pkg的存储与方法调用示例图;41.图6是本技术实施例提供的升级应用后的调用关系图;42.图7是本技术实施例提供的智能卡java应用的升级装置的结构示意图;43.图8是本技术实施例提供的电子设备的硬件结构示意图。具体实施方式44.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。45.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。46.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的
技术领域:
:的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。47.首先,对本技术中涉及的若干名词进行解析:48.java:是一门面向对象的编程语言,不仅吸收了c++语言的各种优点,还摒弃了c++里难以理解的多继承、指针等概念,因此java语言具有功能强大和简单易用两个特征。java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。java可以编写桌面应用程序、web应用程序、分布式系统和嵌入式系统应用程序等。49.api(applicationprogramminginterface,应用程序编程接口):是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。应用程序接口是一组定义、程序及协议的集合,通过api接口实现计算机软件之间的相互通信。api的一个主要功能是提供通用功能集。程序员通过调用api函数对应用程序进行开发,可以减轻编程任务。api同时也是一种中间件,为各种不同平台提供数据共享。50.convert:是在windows中的文件系统修改命令,convert将文件分配表(fat)和fat32卷转换为ntfs文件系统,而现有的文件和文件夹完好无损。51.升级:指软件从低版本向高版本的更新。由于高版本常常修复低版本的部分bug,所以经历了软件升级,一般都会比原版本的性能更好,得到优化的效果,用户也能有更好的体验。52.索引:在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的sql语句执行得更快,可快速访问数据库表中的特定信息。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘i/o操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的rowid(相当于页码)快速找到表中对应的记录。53.在现有技术中,智能卡升级以后需要对注册表进行遍历,查找每一个应用的调用信息,并将这些信息更新;对于智能卡上用户应用多的情况,数据多,耗时久,实现复杂,同时需要考虑数据同步过程中被打断或者异常掉电等情况。此外,智能卡上需要至少装载一个配合业务应用升级的数据应用进行数据存储,需要额外的实现共享接口用于查找、更新、删除数据,增加代码量,并且使用动态数组作为数据存储,在升级结束后如果不将数组释放,将会使卡片可用资源减少;卡端需要通过数据应用存储被升级的业务应用的数据,需要被升级的业务应用也实现配套的接口区进行数据存储与获取,以便于业务应用升级后同步数据,无形中增加了业务应用与正常业务无关的代码量,同时将业务应用的数据交给第三方应用存储也加大了数据泄露的风险。54.基于此,本技术实施例提供了一种智能卡java应用的升级方法和装置、电子设备,根据java应用升级需求修改智能卡的系统api代码;将修改后的系统api代码转换成特定格式的系统api数据;获取系统api数据对应的新增索引信息;将新增索引信息写入到预留的更新索引区域,新增索引信息排列于原有索引信息之后,其中,更新索引区域位于智能卡中的编码区;将系统api数据更新到编码区,以完成java应用升级。基于此,通过将升级的系统api数据对应的新增索引信息写入到预留的更新索引区域,且新增索引信息排列于原有索引信息之后,从而能够维持应用的调用关系,不改变原有索引信息,无需升级后进行繁琐的数据同步操作,从而免除数据同步操作,无需重新生成调用关系,不仅提升用户体验,同时也减少出错的风险。55.本技术实施例提供的智能卡java应用的升级方法和装置、电子设备,具体通过如下实施例进行说明,首先描述本技术实施例中的智能卡java应用的升级方法。56.需要说明的是,在本技术的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关国家和地区的相关法律法规和标准。此外,当本技术实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本技术实施例能够正常运行的必要的用户相关数据。57.图1是本技术实施例提供的智能卡java应用的升级方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤s101至步骤s105。58.步骤s101,根据java应用升级需求修改智能卡的系统api代码;59.步骤s102,将修改后的系统api代码转换成特定格式的系统api数据;60.步骤s103,获取系统api数据对应的新增索引信息;61.步骤s104,将新增索引信息写入到预留的更新索引区域,新增索引信息排列于原有索引信息之后,其中,更新索引区域位于智能卡中的编码区;62.步骤s105,将系统api数据更新到编码区,以完成java应用升级。63.在一些实施例中,请参阅图2,java智能卡的架构包括编码区(code区)、用户数据区的存储结构,其中,用户的java应用存在于用户数据区,除了用户自己开发的java代码之外,用户应用还会调用标准的javacardapi和由卡片提供的系统api,code区和数据区在物理上独立,应用之间数据互相独立。本技术描述的是通过升级系统api的方式实现用户java应用升级的功能。64.在一些实施例中,智能卡上的所有api包都是预先通过第三方工具转为特定格式而存储于智能卡上的,此时智能卡上的api包之间的链接已建立,存储在code区,发卡后当用户下载javapkg时又会生成一些链接关系,安装应用/执行应用时也会建立一些链接并产生用户数据,而这些链接关系以及数据存储在用户数据区。当应用升级时,必须维持卡上的索引(index)不变才能确保应用正常运行,而应用升级往往会增加方法、pkg等,会导致卡上的索引增加和pkgid的改变,本发明主要目的就是通过修改第三方工具和调整pkg存储结构达到用户java应用升级的目的。65.在一些实施例中,本技术是以cos升级的方式达到java应用升级的目的,当应用升级时,可以通过第三方工具将修改后的java代码重新生成特定格式的数据,存储于code区,用户应用代码和数据均不作修改。当开始java应用升级,根据升级需求对java代码部分的修改,对修改后的java代码通过改造后的convert工具进行数据格式转换,将升级后的java代码数据更新到智能卡上特定区域,更新的方式不限于通过本地apdu的方式和空中在线升级的方式,更新后无需对应用或卡片做其他处理,应用升级到需求版本,用户数据未发生变化且无需同步。66.在一些实施例中,通过将升级的系统api数据对应的新增索引信息写入到预留的更新索引区域,且新增索引信息排列于原有索引信息之后,从而能够维持应用的调用关系,不改变原有索引信息,无需升级后进行繁琐的数据同步操作,从而免除数据同步操作,无需重新生成调用关系,不仅提升用户体验,同时也减少出错的风险。本技术实施例的升级方式针对调用了系统api的java应用,该方法通过更新系统api的方式对用户应用进行升级,升级后保留应用升级前的用户区数据,无需进行数据备份和迁移,优化用户体验。67.在一些实施例中,本技术主要针对智能卡java应用的升级,java应用不限于卡片预置的应用和发卡后用户下载的应用,支持的智能卡java应用升级包括:智能卡java应用功能扩展、智能卡java应用bug修复。智能卡预留足够空间用于应用升级,cos开发人员根据需求修改系统代码后生成最新的cos数据,用户通过在线升级或本地升级的方式将新的cos数据写入卡片code区,不需要对用户数据区做任何修改,升级后无需进行数据同步。68.在一些实施例中,步骤s102可以包括但不限于包括步骤s201:69.步骤s201:通过第三方工具将修改后的系统api代码转换成特定格式的系统api数据。70.在一些实施例中,通过第三方工具进行应用升级,可以在对应用升级前就知道应用的调用关系是否改变,免除数据同步操作、无需重新生成调用关系,不仅提升用户体验同时也减少出错的风险。通过第三方工具完成应用升级,对于不同功能的cos平台没有局限性,不需要在每个cos平台都增加实现升级的相关代码,工具开发一次即可应用与多个平台,减少重复性工作。71.请参阅图3,在一些实施例中,步骤s201可以包括但不限于包括步骤s301至步骤s302:72.步骤s302,使用第三方工具将修改后的系统api代码通过convert转成特定格式的系统api数据;73.步骤s303,将系统api数据存储于编码区。74.在一些实施例中,当应用升级时,可以通过第三方工具将修改后的java代码重新生成特定格式的数据,存储于code区,用户应用代码和数据均不作修改。当开始java应用升级,根据升级需求对java代码部分的修改,对修改后的java代码通过改造后的convert工具进行数据格式转换,将升级后的java代码数据更新到智能卡上特定区域,更新的方式不限于通过本地apdu的方式和空中在线升级的方式,更新后无需对应用或卡片做其他处理,应用升级到需求版本,用户数据未发生变化且无需同步。75.请参阅图4,在一些实施例中,步骤s104可以包括但不限于包括步骤s401至步骤s404:76.步骤s401,在编码区的映射关系表中预留更新索引区域,其中,映射关系表用于确定索引信息与数据存储地址的映射关系;77.步骤s402,确定原有索引信息对应在映射关系表中的原有索引区域;78.步骤s403,将更新索引区域设置于原有索引区域之后;79.步骤s404,写入新增索引信息到更新索引区域,以使新增索引信息排列于原有索引信息之后。80.在一些实施例中,应用开发者通过集成了标准javacardapi的工具(如jcop)开发应用,可直接调用标准的api接口,如果需要调用卡端自定义的系统api,则需要提供相关的jar(export)文件给应用开发者,由cos开发方对相关的api进行实现;应用开发完成以后,用户将开发生成的cap通过gp规范描述的下载和安装指令下载应用源码到智能卡上并将其实例化为可执行程序。下载和安装应用的过程会建立应用程序对智能卡上标准api和系统api的链接关系,通过建立链接关系可使用户应用在真正执行的时候访问到智能卡上的api和数据。智能卡上的所有api包都是预先通过第三方工具转为特定格式而存储于智能卡上的,此时智能卡上的api包之间的链接已建立,存储在code区,发智能卡后当用户下载javapkg时又会生成一些链接关系,安装应用/执行应用时也会建立一些链接并产生用户数据,而这些链接关系以及数据存储在用户数据区。当应用升级时,必须维持智能卡上的索引(index)不变才能确保应用正常运行,而应用升级往往会增加方法、pkg等,会导致智能卡上的索引增加和pkgid的改变,因此,通过修改第三方工具和调整pkg存储结构达到用户java应用升级的目的。以cos升级的方式达到java应用升级的目的,当应用升级时,通过第三方工具将修改后的java代码重新生成特定格式的数据,存储于code区,用户应用代码和数据均不作修改。为了满足java应用升级需求,在智能卡片上预留了更新索引区域供升级使用,通过在编码区的映射关系表中预留更新索引区域,其中,映射关系表用于确定索引信息与数据存储地址的映射关系。确定原有索引信息对应在映射关系表中的原有索引区域,将更新索引区域设置于原有索引区域之后,写入新增索引信息到更新索引区域,以使新增索引信息排列于原有索引信息之后。由于新增索引信息排列于原有索引信息之后,可以不改变原有索引信息的含义,索引链接关系维持不变,从而能够维持应用的调用关系,无需升级后进行繁琐的数据同步操作,从而免除数据同步操作,无需重新生成调用关系,不仅提升用户体验,同时也减少出错的风险。81.在一些实施例中,对于升级的方式,可以通过本地cos升级的方式将系统api数据更新到编码区,以完成java应用升级;也可以通过在线cos升级的方式将系统api数据更新到编码区,以完成java应用升级。具体地,可以将升级后的java代码数据更新到卡上特定区域,更新的方式不限于通过本地apdu的方式和空中在线升级的方式,更新后无需对应用或卡片做其他处理,应用升级到需求版本,用户数据未发生变化且无需同步。82.以下结合附图和具体实施例进一步说明本技术的智能卡java应用的升级方法。83.如图2所示为java智能卡的架构以及卡上的code区、用户数据区的存储结构介绍,其中:用户的java应用存在于用户数据区,除了用户自己开发的java代码之外,用户应用还会调用标准的javacardapi和由卡片提供的系统api,code区和数据区在物理上独立,应用之间数据互相独立;本发明描述的是通过升级系统api的方式实现用户java应用升级的功能;84.应用开发者通过集成了标准javacardapi的工具(如jcop)开发应用,可直接调用标准的api接口,如果需要调用卡端自定义的系统api,则需要提供相关的jar(export)文件给应用开发者,由cos开发方对相关的api进行实现;应用开发完成以后,用户将开发生成的cap通过gp规范描述的下载和安装指令下载应用源码到卡上并将其实例化为可执行程序。下载和安装应用的过程会建立应用程序对卡上标准api和系统api的链接关系,通过建立链接关系可使用户应用在真正执行的时候访问到卡上的api和数据。85.如图5所示为用户应用访问卡上api的图解,其中:s1为卡片maptable,内容为index与实际数据存储地址的映射关系,s2、s3、s4为装载在卡上的javapkginfo,包含标准apipkg和系统apipkg以及用户下载的pkg,pkginfo存储的地址信息全部通过maptable索引映射,s5、s6、s7为javapkg对应的method内容,每个method对应一个maptable的index;s8为用户应用实例以及调用process方法索引链接关系。86.智能卡上的所有api包都是预先通过第三方工具转为特定格式(如图5所示)而存储与卡上的,此时卡上的api包之间的链接已建立,存储在code区,发卡后当用户下载javapkg时又会生成一些链接关系,安装应用/执行应用时也会建立一些链接(如如图5所示s8)并产生用户数据,而这些链接关系以及数据存储在用户数据区。当应用升级时,必须维持卡上的索引(index)不变才能确保应用正常运行,而应用升级往往会增加方法、pkg等,会导致卡上的索引增加和pkgid的改变,本发明主要目的就是通过修改第三方工具和调整pkg存储结构达到用户java应用升级的目的。87.本方案描述的是以cos升级的方式达到java应用升级的目的,当应用升级时,通过第三方工具将修改后的java代码重新生成特定格式的数据,存储于code区(见如图2所示code区),用户应用代码和数据均不作修改(见如图2所示数据区)。如图6所示,为了满足java应用升级需求,在卡片上预留了pkginfo(s10)和indexforupdate(s11)供升级使用。升级时受影响的代码为apipkg1的两个method,在maptable的位置为index2和index3,由于用户应用调用方法时是通过索引(maptable的index)查找到apipkg1的method(s13、s14),所以只要原有的索引含义不发生改变,无论存储的物理地址是否改变都不影响用户应用找到这两个method,而s13、s14的内容修改也不会影响用户应用从应用端到系统api之间的调用逻辑,只要能正常的执行s9至s12并且s12中包含的系统api方法索引index2和index3含义不变,卡片升级后就可以正常运行。升级时在预留的apipkg_x1新增了方法method_x1,maptable中的索引总数发生了改变,并且这个方法被method1调用了,必须要在method1之前生成其索引,所以method1之前的索引会发生一些变化导致method1之后的索引值也跟着改变,而原用户应用的数据未作任何修改,其调用的系统api方法索引index2和index3有可能已经不是预期修改的方法,此种情况就会造成升级后卡片数据错乱。对此,我们将第三方工具作了调整,在将java代码生成特定格式数据时,如果发现在升级前已经有的index之前插入了新的index-new,则将这个index-new生成到预留的maptable区域indexforupdate(s11),维持原有的index含义不变,由第三方工具来保证升级时只修改method所指向地址对应的内容,不改变原index的含义;新增的方法由系统api区的方法调用(如图6所示s14),不直接由用户应用层调用,用户应用无需关注系统api之间的内部调用逻辑。88.基于此,本技术实施例具有如下优点:使用第三方工具维持应用的调用关系,无需升级后进行繁琐的数据同步操作。通过第三方工具进行应用升级,可以在对应用升级前就知道应用的调用关系是否改变,免除数据同步操作、无需重新生成调用关系,不仅提升用户体验同时也减少出错的风险。通过第三方工具完成应用升级,对于不同功能的cos平台没有局限性,不需要在每个cos平台都增加实现升级的相关代码,工具开发一次即可应用与多个平台,减少重复性工作。本技术实施例的升级方法针对调用了卡片系统api的用户java应用,该方案无需对用户数据进行备份,无需实现特定的接口用于应用升级和数据同步,整体实现难度低。89.请参阅图7,本技术实施例还提供一种智能卡java应用的升级装置,可以实现上述智能卡java应用的升级方法,该装置包括:90.修改模块710,用于根据java应用升级需求修改智能卡的系统api代码;91.转换模块720,用于将修改后的系统api代码转换成特定格式的系统api数据;92.获取模块730,用于获取系统api数据对应的新增索引信息;93.写入模块740,用于将新增索引信息写入到预留的更新索引区域,新增索引信息排列于原有索引信息之后,其中,更新索引区域位于智能卡中的编码区;94.更新模块750,用于将系统api数据更新到编码区,以完成java应用升级。95.本技术实施例的智能卡java应用的升级装置,修改模块710根据java应用升级需求修改智能卡的系统api代码;转换模块720将修改后的系统api代码转换成特定格式的系统api数据;获取模块730获取系统api数据对应的新增索引信息;写入模块740将新增索引信息写入到预留的更新索引区域,新增索引信息排列于原有索引信息之后,其中,更新索引区域位于智能卡中的编码区;更新模块750将系统api数据更新到编码区,以完成java应用升级。基于此,通过将升级的系统api数据对应的新增索引信息写入到预留的更新索引区域,且新增索引信息排列于原有索引信息之后,从而能够维持应用的调用关系,不改变原有索引信息,无需升级后进行繁琐的数据同步操作,从而免除数据同步操作,无需重新生成调用关系,不仅提升用户体验,同时也减少出错的风险。96.该智能卡java应用的升级装置的具体实施方式与上述智能卡java应用的升级方法的具体实施例基本相同,在此不再赘述。97.本技术实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述智能卡java应用的升级方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。98.请参阅图8,图8示意了另一实施例的电子设备的硬件结构,电子设备包括:99.处理器801,可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术实施例所提供的技术方案。100.存储器802,可以采用只读存储器(readonlymemory,rom)、静态存储设备、动态存储设备或者随机存取存储器(randomaccessmemory,ram)等形式实现。存储器802可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器802中,并由处理器801来调用执行本技术实施例的智能卡java应用的升级方法,即根据java应用升级需求修改智能卡的系统api代码;将修改后的系统api代码转换成特定格式的系统api数据;获取系统api数据对应的新增索引信息;将新增索引信息写入到预留的更新索引区域,新增索引信息排列于原有索引信息之后,其中,更新索引区域位于智能卡中的编码区;将系统api数据更新到编码区,以完成java应用升级。基于此,通过将升级的系统api数据对应的新增索引信息写入到预留的更新索引区域,且新增索引信息排列于原有索引信息之后,从而能够维持应用的调用关系,不改变原有索引信息,无需升级后进行繁琐的数据同步操作,从而免除数据同步操作,无需重新生成调用关系,不仅提升用户体验,同时也减少出错的风险。101.输入/输出接口803,用于实现信息输入及输出。102.通信接口804,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。103.总线,在设备的各个组件(例如处理器801、存储器802、输入/输出接口803和通信接口804)之间传输信息。104.其中处理器801、存储器802、输入/输出接口803和通信接口804通过总线实现彼此之间在设备内部的通信连接。105.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述智能卡java应用的升级方法。106.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。107.本技术实施例提供的智能卡java应用的升级方法、智能卡java应用的升级装置、电子设备及存储介质,根据java应用升级需求修改智能卡的系统api代码;将修改后的系统api代码转换成特定格式的系统api数据;获取系统api数据对应的新增索引信息;将新增索引信息写入到预留的更新索引区域,新增索引信息排列于原有索引信息之后,其中,更新索引区域位于智能卡中的编码区;将系统api数据更新到编码区,以完成java应用升级。基于此,通过将升级的系统api数据对应的新增索引信息写入到预留的更新索引区域,且新增索引信息排列于原有索引信息之后,从而能够维持应用的调用关系,不改变原有索引信息,无需升级后进行繁琐的数据同步操作,从而免除数据同步操作,无需重新生成调用关系,不仅提升用户体验,同时也减少出错的风险。108.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。109.本技术实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。110.本领域技术人员可以理解的是,图中示出的技术方案并不构成对本技术实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。111.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。112.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。113.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。114.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。115.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。116.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。117.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。118.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。119.以上参照附图说明了本技术实施例的优选实施例,并非因此局限本技术实施例的权利范围。本领域技术人员不脱离本技术实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本技术实施例的权利范围之内。当前第1页12当前第1页12