CN104123152A - 移动终端中应用程序的更新方法、装置和移动终端 - Google Patents

移动终端中应用程序的更新方法、装置和移动终端 Download PDF

Info

Publication number
CN104123152A
CN104123152A CN201310157527.0A CN201310157527A CN104123152A CN 104123152 A CN104123152 A CN 104123152A CN 201310157527 A CN201310157527 A CN 201310157527A CN 104123152 A CN104123152 A CN 104123152A
Authority
CN
China
Prior art keywords
application program
bag
mobile terminal
service logic
renewal
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
Application number
CN201310157527.0A
Other languages
English (en)
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.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201310157527.0A priority Critical patent/CN104123152A/zh
Publication of CN104123152A publication Critical patent/CN104123152A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提出一种移动终端中应用程序的更新方法、装置和移动终端,其中该方法包括以下步骤:移动终端接收针对应用程序的运行指令;移动终端根据运行指令通过类加载器加载并执行应用程序的业务逻辑包;移动终端检测业务逻辑包是否存在更新包;以及如果检测到存在更新包,则移动终端获取更新包,并通过类加载器将更新包加载至业务逻辑包以更新应用程序。根据本发明实施例方法,在用户不干预的情况下实现应用程序的自动增量更新,使应用程序推广部署更加方便,提高了用户体验。

Description

移动终端中应用程序的更新方法、装置和移动终端
技术领域
本发明涉及移动设备制造技术领域,尤其涉及一种移动终端中应用程序的更新方法、装置和移动终端。
背景技术
随着移动通信技术的快速发展,用户在移动终端中安装应用程序越来越普及,由于应用程序的安装和运行有特别的规定,例如安卓Android系统中每个应用程序需要权限,应用程序在安装时需要用户确认才能完成安装,因此使得应用程序的更新在用户不干预的情况下变得非常困难,应用程序的推广部署非常不方便,用户体验差。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的第一个目的在于提出一种移动终端中应用程序的更新方法,该方法在用户不干预的情况下实现应用程序的自动增量更新,使应用程序推广部署更加方便,提高了用户体验。
本发明的第二个目的在于提出一种移动终端中应用程序的更新装置。
本发明的第三个目的在于提出一种移动终端。
为了实现上述目的,本发明第一方面实施例的移动终端中应用程序的更新方法包括以下步骤:移动终端接收针对应用程序的运行指令;所述移动终端根据所述运行指令通过类加载器加载并执行所述应用程序的业务逻辑包;所述移动终端检测所述业务逻辑包是否存在更新包;以及如果检测到存在所述更新包,则所述移动终端获取所述更新包,并通过所述类加载器将所述更新包加载至所述业务逻辑包以更新所述应用程序。
根据本发明实施例的移动终端中应用程序的更新方法,移动终端通过类加载器加载并执行应用程序的业务逻辑包,并在业务逻辑包在检测到更新包时通过类加载器将更新包加载至业务逻辑包以更新应用程序,使得移动终端检测到提供商提供的应用程序有更新时自动下载并动态加载运行应用程序,在用户不干预的情况下实现应用程序的自动增量更新,使应用程序推广部署更加方便,提高了用户体验。
为了实现上述目的,本发明第二方面实施例的移动终端中应用程序的更新装置,包括:接收模块,用于接收针对应用程序的运行指令;加载与执行模块,用于根据所述运行指令通过类加载器加载并执行所述应用程序的业务逻辑包;检测模块,用于检测所述业务逻辑包是否存在更新包;以及获取与更新模块,用于在检测到存在所述更新包时,获取所述更新包,并通过所述类加载器将所述更新包加载至所述业务逻辑包以更新所述应用程序。
根据本发明实施例的移动终端中应用程序的更新装置,移动终端通过类加载器加载并执行应用程序的业务逻辑包,并在业务逻辑包在检测到更新包时通过类加载器将更新包加载至业务逻辑包以更新应用程序,使得移动终端检测到提供商提供的应用程序有更新时自动下载并动态加载运行应用程序,在用户不干预的情况下实现应用程序的自动增量更新,使应用程序推广部署更加方便,提高了用户体验。
为了实现上述目的,本发明第三方面实施例的移动终端,包括本发明第二方面实施例的移动终端中应用程序的更新装置。
根据本发明实施例的移动终端,通过类加载器加载并执行应用程序的业务逻辑包,并在业务逻辑包在检测到更新包时通过类加载器将更新包加载至业务逻辑包以更新应用程序,使得移动终端检测到提供商提供的应用程序有更新时自动下载并动态加载运行应用程序,在用户不干预的情况下实现应用程序的自动增量更新,使应用程序推广部署更加方便,提高了用户体验。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的移动终端中应用程序的更新方法的流程图;
图2是根据本发明一个实施例的移动终端中应用程序的更新装置的结构示意图;以及
图3是根据本发明一个具体实施例的移动终端中应用程序的更新装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的移动终端中应用程序的更新方法、装置和移动终端。
目前,由于应用程序的安装和运行需要权限,使得应用程序的更新在用户不干预的情况下变得非常困难。例如,在使用Android系统的移动终端中,应用程序的安装和运行有特别的规定,应用程序的活动Activity、服务service、权限等都需要在应用配置文件manifest里面声明,然后在应用程序安装时由用户进行确认才能成功安装,这些限制对应用程序的升级造成了很大的困难,如果可以绕过应用程序的安装过程,在不需要用户干预的情况下,达到应用程序在线增量更新的目的,可以使应用程序的推广部署更加方便。为此,本发明提出了一种移动终端中应用程序的更新方法,包括以下步骤:移动终端接收针对应用程序的运行指令;移动终端根据运行指令通过类加载器加载并执行应用程序的业务逻辑包;移动终端检测业务逻辑包是否存在更新包;以及如果检测到存在更新包,则移动终端获取更新包,并通过类加载器将更新包加载至业务逻辑包以更新应用程序。
图1是根据本发明一个实施例的移动终端中应用程序的更新方法的流程图。
如图1所示,移动终端中应用程序的更新方法包括:
S101,移动终端接收针对应用程序的运行指令。
在本发明的一个实施例中,移动终端可以在应用程序安装后第一次运行时将业务逻辑包释放至文件系统中。其中,应用程序可以分为两个部分,一部分是按照Android系统的标准在应用配置文件manifest中声明的一个活动Activity,活动包括一个服务service、一个接收Receiver和可预见的权限需求;另一部分是业务逻辑包,业务逻辑包包括应用程序的业务逻辑所需要的所有代码和资源,可以以*.jar(java归档文件)等形式保存。将这两部分打包在一起可以生成一个应用程序包。具体地,移动终端可以在应用程序安装完成后第一次运行应用程序时将业务逻辑包从应用程序包中释放到文件系统中,例如将业务逻辑包释放到“/mnt/sdcard/baidu/”路径下,如一个业务逻辑包文件app.jar的文件路径为“/mnt/sdcard/baidu/app.jar”。
S102,移动终端根据运行指令通过类加载器加载并执行应用程序的业务逻辑包。
具体地,移动终端可以通过类加载器加载业务逻辑包,并调用默认的接口执行业务逻辑包。例如,在Android系统中,该加载过程可采用动态加载技术实现。
S103,移动终端检测业务逻辑包是否存在更新包。
S104,如果检测到存在更新包,则移动终端获取更新包,并通过类加载器将更新包加载至业务逻辑包以更新应用程序。
在本发明的一个实施例中,应用程序将活动activity中的更新页面设置为片段fragment。由此,应用程序可以通过片段管理器fragment manager实现页面分段的切换和操作。
在本发明的一个实施例中,通过类加载器将更新包加载至业务逻辑包以更新应用程序具体可以包括以下步骤:移动终端下载更新包后,应用程序中的类加载器可以运行更新包,并通过片段管理器fragment manager获取更新包运行时的fragment的控制信息,以及根据控制信息控制活动activity以通过更新包更新业务逻辑包。
根据本发明实施例的移动终端中应用程序的更新方法,移动终端通过类加载器加载并执行应用程序的业务逻辑包,并在业务逻辑包在检测到更新包时通过类加载器将更新包加载至业务逻辑包以更新应用程序,使得移动终端检测到提供商提供的应用程序有更新时自动下载并动态加载运行应用程序,在用户不干预的情况下实现应用程序的自动增量更新,使应用程序推广部署更加方便,提高了用户体验。
为了实现上述实施例,本发明还提出一种移动终端中应用程序的更新装置。
一种移动终端中应用程序的更新装置,包括:接收模块,用于接收针对应用程序的运行指令;加载与执行模块,用于根据运行指令通过类加载器加载并执行应用程序的业务逻辑包;检测模块,用于检测业务逻辑包是否存在更新包;以及获取与更新模块,用于在检测到存在更新包时,获取更新包,并通过类加载器将更新包加载至业务逻辑包以更新应用程序。
图2是根据本发明一个实施例的移动终端中应用程序的更新装置的结构示意图。
如图2所示,移动终端中应用程序的更新装置包括:接收模块100、加载与执行模块200、检测模块300、获取与更新模块400和释放模块500。
具体地,接收模块100用于接收针对应用程序的运行指令。
加载与执行模块200用于根据接收模块100接收的运行指令通过类加载器加载并执行应用程序的业务逻辑包。更具体地,加载与执行模块200可以通过类加载器加载业务逻辑包,并调用默认的接口执行业务逻辑包。例如,在Android系统中,该加载过程可采用动态加载技术实现。
检测模块300用于检测业务逻辑包是否存在更新包。
获取与更新模块400用于在检测模块300检测到存在更新包时,获取更新包,并通过类加载器将更新包加载至业务逻辑包以更新应用程序。
释放模块500用于在应用程序安装后第一次运行时将业务逻辑包释放至文件系统中。其中,应用程序可以分为两个部分,一部分是按照Android系统的标准在应用配置文件manifest中声明的一个活动Activity,活动包括一个服务service、一个接收Receiver和可预见的权限需求;另一部分是业务逻辑包,业务逻辑包包括应用程序的业务逻辑所需要的所有代码和资源,可以以*.jar(java归档文件)等形式保存。将这两部分打包在一起可以生成一个应用程序包。具体地,移动终端可以在应用程序安装完成后第一次运行应用程序时将业务逻辑包从应用程序包中释放到文件系统中,例如将业务逻辑包释放到“/mnt/sdcard/baidu/”路径下,如一个业务逻辑包文件app.jar的文件路径为“/mnt/sdcard/baidu/app.jar”。
在本发明的一个实施例中,释放模块500是可选的。
根据本发明实施例的移动终端中应用程序的更新装置,移动终端通过类加载器加载并执行应用程序的业务逻辑包,并在业务逻辑包在检测到更新包时通过类加载器将更新包加载至业务逻辑包以更新应用程序,使得移动终端检测到提供商提供的应用程序更新时自动下载并动态加载运行应用程序,在用户不干预的情况下实现应用程序的自动增量更新,使应用程序推广部署更加方便,提高了用户体验。
图3是根据本发明一个具体实施例的移动终端中应用程序的更新装置的结构示意图。
如图3所示,移动终端中应用程序的更新装置包括:接收模块100、加载与执行模块200、检测模块300、获取与更新模块400、释放模块500、设置模块600、运行单元410、获取单元420和更新单元430,其中,获取与更新模块400包括:运行单元410、获取单元420和更新单元430。
在本发明的一个实施例中,设置模块600用于通过应用程序将活动activity中的更新页面设置为片段fragment。由此,应用程序可以通过片段管理器fragment manager实现页面分段的切换和操作。
具体地,运行单元410用于运行更新包。获取单元420用于通过片段管理器fragment manager获取更新包运行时的片段fragment的控制信息。更新单元430用于根据控制信息控制活动activity以通过更新包更新业务逻辑包。
在本发明的一个实施例中,释放模块500是可选的。
在本发明的一个实施例中,放置模块600是可选的。
根据本发明实施例的移动终端中应用程序的更新装置,移动终端通过片段管理器fragment manager获取更新包运行时的片段fragment的控制信息,可以实现控制活动activity以通过更新包更新业务逻辑包。
为了实现上述实施例,本发明还提出一种移动终端。
一种移动终端包括本发明任一项实施例所述的移动终端中应用程序的更新装置。
根据本发明实施例的移动终端,通过类加载器加载并执行应用程序的业务逻辑包,并在业务逻辑包在检测到更新包时通过类加载器将更新包加载至业务逻辑包以更新应用程序,使得移动终端检测到提供商提供的应用程序有更新时自动下载并动态加载运行应用程序,在用户不干预的情况下实现应用程序的自动增量更新,使应用程序推广部署更加方便,提高了用户体验。
应当理解,在本发明的实施例中,移动终端可以是手机、平板电脑、个人数字助理、电子书等具有各种操作系统的硬件设备。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (9)

1.一种移动终端中应用程序的更新方法,其特征在于,包括以下步骤:
移动终端接收针对应用程序的运行指令;
所述移动终端根据所述运行指令通过类加载器加载并执行所述应用程序的业务逻辑包;
所述移动终端检测所述业务逻辑包是否存在更新包;以及
如果检测到存在所述更新包,则所述移动终端获取所述更新包,并通过所述类加载器将所述更新包加载至所述业务逻辑包以更新所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述移动终端接收应用程序的运行指令之前还包括:
所述移动终端在所述应用程序安装后第一次运行时将所述业务逻辑包释放至文件系统中。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
所述应用程序将活动activity中的更新页面设置为片段fragment。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述类加载器运行所述更新包;
所述类加载器通过片段管理器fragment manager获取所述更新包运行时的所述fragment的控制信息;以及
所述类加载器根据所述控制信息控制所述activity以通过所述更新包更新所述业务逻辑包。
5.一种移动终端中应用程序的更新装置,其特征在于,包括:
接收模块,用于接收针对应用程序的运行指令;
加载与执行模块,用于根据所述运行指令通过类加载器加载并执行所述应用程序的业务逻辑包;
检测模块,用于检测所述业务逻辑包是否存在更新包;以及
获取与更新模块,用于在检测到存在所述更新包时,获取所述更新包,并通过所述类加载器将所述更新包加载至所述业务逻辑包以更新所述应用程序。
6.根据权利要求2所述的装置,其特征在于,还包括:
释放模块,用于在所述应用程序安装后第一次运行时将所述业务逻辑包释放至文件系统中。
7.根据权利要求5或6所述的装置,其特征在于,还包括:
设置模块,用于通过所述应用程序将活动activity中的更新页面设置为片段fragment。
8.根据权利要求7所述的装置,其特征在于,所述获取与更新模块包括:
运行单元,用于运行所述更新包;
获取单元,用于通过片段管理器fragment manager获取所述更新包运行时的所述fragment的控制信息;以及
更新单元,用于根据所述控制信息控制所述activity以通过所述更新包更新所述业务逻辑包。
9.一种移动终端,其特征在于,包括权利要求5-8任一项所述的移动终端中应用程序的更新装置。
CN201310157527.0A 2013-04-28 2013-04-28 移动终端中应用程序的更新方法、装置和移动终端 Pending CN104123152A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310157527.0A CN104123152A (zh) 2013-04-28 2013-04-28 移动终端中应用程序的更新方法、装置和移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310157527.0A CN104123152A (zh) 2013-04-28 2013-04-28 移动终端中应用程序的更新方法、装置和移动终端

Publications (1)

Publication Number Publication Date
CN104123152A true CN104123152A (zh) 2014-10-29

Family

ID=51768577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310157527.0A Pending CN104123152A (zh) 2013-04-28 2013-04-28 移动终端中应用程序的更新方法、装置和移动终端

Country Status (1)

Country Link
CN (1) CN104123152A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762772A (zh) * 2018-05-07 2018-11-06 百度在线网络技术(北京)有限公司 应用的加载方法及装置
CN110851150A (zh) * 2019-11-12 2020-02-28 连尚(新昌)网络科技有限公司 用于安装应用的方法和设备
CN111913730A (zh) * 2020-07-15 2020-11-10 上海莉莉丝科技股份有限公司 用户无感的应用程序内更新方法及用户端、程序服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081535A (zh) * 2010-12-17 2011-06-01 东莞宇龙通信科技有限公司 基于Android的应用程序升级方法、系统及应用开发平台
CN102830992A (zh) * 2012-07-31 2012-12-19 北京奇虎科技有限公司 插件加载方法及系统
CN102915247A (zh) * 2012-08-31 2013-02-06 杭州斯凯网络科技有限公司 Apk插件化管理方法
CN102945182A (zh) * 2012-12-06 2013-02-27 北京奇虎科技有限公司 应用程序更新方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081535A (zh) * 2010-12-17 2011-06-01 东莞宇龙通信科技有限公司 基于Android的应用程序升级方法、系统及应用开发平台
CN102830992A (zh) * 2012-07-31 2012-12-19 北京奇虎科技有限公司 插件加载方法及系统
CN102915247A (zh) * 2012-08-31 2013-02-06 杭州斯凯网络科技有限公司 Apk插件化管理方法
CN102945182A (zh) * 2012-12-06 2013-02-27 北京奇虎科技有限公司 应用程序更新方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MINGLI198611: "android 如何动态的加载类----app插件技术", 《HTTP://BLOG.CSDN.NET/MINGLI198611/ARTICLE/DETAILS/8858076》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762772A (zh) * 2018-05-07 2018-11-06 百度在线网络技术(北京)有限公司 应用的加载方法及装置
CN110851150A (zh) * 2019-11-12 2020-02-28 连尚(新昌)网络科技有限公司 用于安装应用的方法和设备
CN110851150B (zh) * 2019-11-12 2022-09-06 连尚(新昌)网络科技有限公司 用于安装应用的方法和设备
CN111913730A (zh) * 2020-07-15 2020-11-10 上海莉莉丝科技股份有限公司 用户无感的应用程序内更新方法及用户端、程序服务器

Similar Documents

Publication Publication Date Title
CN108241500B (zh) 一种硬件组件的修复方法、装置、系统和存储介质
EP2932380B1 (en) Utility node software/firmware update through a multi-type package
CN104123151A (zh) 移动终端中应用程序的插件管理方法、装置和移动终端
CN102915247B (zh) Apk插件化管理方法
CN104123150A (zh) 应用程序的语言资源管理方法和装置
CN102790961B (zh) 应用程序的更新方法、移动终端和服务器
CN103259936B (zh) 移动终端操作系统升级方法及其装置
CN103313231A (zh) 移动终端中应用程序的升级方法、系统和服务器
CN106775817A (zh) 智能终端开屏广告的控制方法、系统及智能终端
CN103970550A (zh) 一种移动终端的软件更新提示方法及装置
CN105487905A (zh) 一种混合应用的更新方法和装置
CN103699408A (zh) 一种软件升级的方法和设备
EP1872230B1 (en) Centralized memory management in wireless terminal devices
US10256847B2 (en) Method and terminal device for executing radio application
CN104216751B (zh) 一种应用程序的功能组件界面资源的加载方法及系统
CN103810416A (zh) 一种软件安装或卸载方法及装置
CN103268239B (zh) 移动终端中应用程序的管理方法、装置和移动终端
CN106126203A (zh) 一种ota开机加速方法及系统
CN107637110B (zh) 用于加载配置文件的方法
CN103777958A (zh) 移动终端及其通过应用程序控制系统功能的方法和装置
FI122213B (fi) Menetelmä ja laitejärjestely päätelaitteen käyttöprofiilin hallitsemiseksi
CN105812404A (zh) 车辆诊断设备数据升级方法、装置及车辆诊断设备
CN104123152A (zh) 移动终端中应用程序的更新方法、装置和移动终端
CN104239098A (zh) 软件的自动升级方法、装置及移动终端
CN102158434A (zh) 一种在智能网关上实现应用程序管理的方法及智能网关

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20141029

RJ01 Rejection of invention patent application after publication