【技术实现步骤摘要】
本专利技术涉及Android系统
,尤其涉及一种基于反射机制的Android应用自动更新方法及系统。
技术介绍
近年来Android应用在日益增多,每个Android应用的版本会非常频繁的更新,但是普通的更新方式还需要让用户点来点去的安装。这会导致用户对于更新程序有一定的反感,如果有一种方案能让程序实现自动更新,这对于不管是开发者开始使用者都是一个很好的方案。一方面Android应用会及时使用最新的功能。另一方面,开发者也不用再去考虑旧版本的兼容问题了。当前已有的自动更新方案都是需要用户手机有root权限,这对于用户来说是很敏感的,因为有了root权限后就会增加手机信息泄露的风险。因此,对于用户来说,为了自动更新而给予应用root权限是一件非常不划算的事情。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中自动更新软件需要获取管理员权限的缺陷,提供一种基于反射机制的Android应用自动更新方法及系统。本专利技术解决其技术问题所采用的技术方案是:本专利技术提供一种基于反射机制的Android应用自动更新方法,包括以下步骤:S1、用户打开应用程序时,若该应用程序有需要更新的版本,执行Android应用自动更新的命令,下载新版本的应用程序,并获取已经下载完成的应用程序在系统中的安装包路径;S2、通过java的反射机制,获取Android系统的安装程序调用服务,通过安装程序调用服务调用安装包管理对象,并获取安装包管理对象中的程序自动安装方法;S3、自动关闭当前版本的应用程序,通过程序自动安装方法对应用程序进行自动更新,更新完毕后返回安装状态参数;S ...
【技术保护点】
一种基于反射机制的Android应用自动更新方法,其特征在于,包括以下步骤:S1、用户打开应用程序时,若该应用程序有需要更新的版本,执行Android应用自动更新的命令,下载新版本的应用程序,并获取已经下载完成的应用程序在系统中的安装包路径;S2、通过java的反射机制,获取Android系统的安装程序调用服务,通过安装程序调用服务调用安装包管理对象,并获取安装包管理对象中的程序自动安装方法;S3、自动关闭当前版本的应用程序,通过程序自动安装方法对应用程序进行自动更新,更新完毕后返回安装状态参数;S4、根据返回的安装状态参数,判断自动更新的应用程序是否安装正确,若安装正确则自动打开更新后的应用程序。
【技术特征摘要】
1.一种基于反射机制的Android应用自动更新方法,其特征在于,包括以下步骤:S1、用户打开应用程序时,若该应用程序有需要更新的版本,执行Android应用自动更新的命令,下载新版本的应用程序,并获取已经下载完成的应用程序在系统中的安装包路径;S2、通过java的反射机制,获取Android系统的安装程序调用服务,通过安装程序调用服务调用安装包管理对象,并获取安装包管理对象中的程序自动安装方法;S3、自动关闭当前版本的应用程序,通过程序自动安装方法对应用程序进行自动更新,更新完毕后返回安装状态参数;S4、根据返回的安装状态参数,判断自动更新的应用程序是否安装正确,若安装正确则自动打开更新后的应用程序。2.根据权利要求1所述的基于反射机制的Android应用自动更新方法,其特征在于,步骤S2中获取的Android系统的安装程序调用服务为android.os.ServiceManager服务。3.根据权利要求2所述的基于反射机制的Android应用自动更新方法,其特征在于,步骤S2中调用的安装包管理对象为IPackageManager对象。4.根据权利要求3所述的基于反射机制的Android应用自动更新方法,其特征在于,步骤S2中的程序自动安装方法为installPackage方法。5.根据权利要求4所述的基于反射机制的Android应用自动更新方法,其特征在于,步骤S2中通过java反射机制获取程序自动安装方法的具体方法为:S21、获取Android系统类中的forName方法,向forName方法中填入参数android.os.ServiceManager来获取到反射类;S22、通过向系统类getMethod中填入参数getService和String.class,获取到反射类中的getService方法;S23、通过系统类getMethod中的invoke方法向getService方法填入参数null和package名称得到IBinder方法;S24、结合IBinder方法和Stub.asInterface方法,填入参数IBinder得到生成的IPackageManager对象;S25、调取PackageManager对象中的installPackage方法。6.根据权利要求1所述的基于反射机制的Android应用自动更新方法,其特征在于,步骤S3中返回的安装状态参数包括:basePackageName、returnCode、msg和extras;其中:basePackageName用于判断安装的应用程序的名称是否一致,若名称一致,则继续执行自动更新操作;若名称不一致,则终止自动更新操作;returnCode用于判断应用程序是否安装成功,若returnCode的值为1,则表示应...
【专利技术属性】
技术研发人员:丁鹏,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。