一种基于安卓系统的单机应用网络化方法和系统技术方案

技术编号:12903673 阅读:42 留言:0更新日期:2016-02-24 12:44
本发明专利技术提出了一种基于安卓系统的单机应用程序快速网络化方法和系统,所述方法包括:为单机版应用程序的ContentProvider代码段的每一个ContentProvider类添加ContentProvider注解,所述ContentProvider注解包括以下参数:指定生成的ContentProvider代理类名称、数据URI参数、对应的数据处理器类名列表;其中所述新生成的ContentProvider代理类名称用于标示生成的代码的类名称;所述数据URI参数包括新生成的ContentProvider类中需要处理的数据URI;所述对应的数据处理器类名列表用于指定自动生成的ContentProvider类在处理所述数据URI时对应调用的数据处理器类;在单机版应用程序的SQLiteOpenHelper代码段的每一个SQLiteOpenHelper类添加SQLiteOpenHelper注解,所述SQLiteOpenHelper注解参数包括指定生成的SQLiteOpenHelper代理类名称、要处理的数据表的名称;为单机版应用程序的配置文件中,将原ContentProvider类名配置为上述注解配置的ContentProvider代理类名;根据数据处理器接口,实现数据处理器的实现类,实现请本地数据请求转发至服务端进行处理并返回相应的结果。

【技术实现步骤摘要】

本专利技术涉及移动终端
,具体涉及一种基于安卓系统的单机应用程序快速网络化方法和系统。
技术介绍
安卓系统已经成为全球范围内使用广泛的移动操作系统之一。而随着移动互联网技术的发展,越来越多的单机版应用开始迀移成为网络版应用。现有技术中要想将单机版应用程序迀移成网络版应用程序,就需要对单机版应用程序的数据操作部分以及相关的逻辑代码都进行重写,以将访问本地数据的代码完全修改为请求应用服务器数据的代码。这种技术需要对原单机版应用的部分核心代码进行修改,消耗大量时间。同时如果修改单机版应用程序的核心代码可能导致整个程序出现运行流程逻辑不正确的问题。由此可见现有技术的方法过程繁琐且易于出错。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种基于安卓系统的单机应用程序快速网络化方法和系统,使得将使用基于ContentProvider组件的单机版应用程序升级为网络版应用程序的过程变得容易且不会产生逻辑错误。为达到上述目的,本专利技术实施例提出了一种基于安卓系统的单机应用程序快速网络化方法,包括: 步骤S1、为单机版应用程序的ContentProvider代码段的每一个ContentProvider类添加ContentProvider注解,所述ContentProvider注解包括以下参数:指定生成的ContentProvider代理类名称、数据URI参数、对应的数据处理器类名列表;其中所述新生成的ContentProvider代理类名称用于标示生成的代码的类名称;所述数据URI参数包括新生成的ContentProvider类中需要处理的数据URI ;所述对应的数据处理器类名列表用于指定自动生成的ContentProvider类在处理所述数据URI时对应调用的数据处理器类;步骤S2、在单机版应用程序的SQLiteOpenHelper代码段的每一个SQLiteOpenHelper类添加SQLiteOpenHelper注解;所述SQLiteOpenHelper注解至少包括以下参数:要生成的SQLiteOpenHelper代理类、要处理的数据表的名称; 步骤S3、在单机版应用程序的配置文件中,将原ContentProvider类名配置改为新生成的ContentProvider代理类名; 步骤S4、根据数据处理器的接口实现数据处理器的实现类,该实现类用于将本地数据请求转发至服务端进行处理并返回相应的结果。其中,所述步骤SI还包括: 步骤S11、在编译单机版应用程序时,注解处理器通过该ContentProvider注解的配置,生成一份代理类继承自注解标注的ContentProvider类;步骤S12、在上述步骤生成的代理类处理insert、update、delete、query接口方法时,依次判断操作的数据URI是否存在于注解配置的要处理数据URI列表中;如果是则实例化对应的数据处理器类; 步骤S13、根据代理类所要处理的insert、update、delete、query接口方法,调用数据处理器实例中相应的处理方法处理数据,并将处理结果按照ContentProvider的规贝1J,增加_sid、upd_time、sync_time、is_del、is_upd字段后,调用单机版应用程序的ContentProvider 处理方法; 其中, _sid字段用于在客户端数据库中存储对应数据在服务端上的id值; upd_time字段用于存储该记录最后修改的时间; sync_time字段用于存储该记录最后与服务端同步的时间; is_del字段用于标记该记录是否在客户端已经被删除; is_upd字段用于标记该记录是否在客户端已经被修改。其中,所述步骤SI 还包括:对 ContentProvider 类的 insert、update、delete、query方法进行重载以生成代码; 具体包括: 步骤S101、依次判断正在请求的数据URI是否存在于注解配置的要处理数据URI列表中; 步骤S102、如果操作的数据URI存在于注解配置的要处理数据URI列表中,判断对应的数据处理器类是否已经初始化; 步骤S103、如果对应的数据处理器类未初始化,则初始化对应的数据处理器类,否则直接执行步骤S104 ; 步骤S104、调用初始化后的数据处理器实例中对应的insert、update、delete、query方法,进行在线数据处理; 步骤S105、数据处理后,由对应的insert、update、delete、query方法返回的执行结果,封装对应数据,并调用父类对应的insert、update、delete、query方法将数据保存至本地; 步骤S106、将S104返回的数据返回给调用的代码。其中,所述步骤S2具体包括:编译时该注解处理器将生成一份临时类继承自注解标注的SQLiteOpenHelper类;其中,在生成的SQLiteOpenHelper类的onCreate和onUpgrade两个方法中,通过ContentProvider注解中的参数为对应的本地数据表增加_sid、upd_time、sync_time、is_del、is_upd 字段;具体为: 步骤S21、编译时该注解处理器将生成一份代理类继承自注解标注的SQLiteOpenHelper 类上; 步骤S22、在代理类的onCreate和onUpgrade两个方法中,通过注解参数中的配置列表,为指定的本地数据表增加_sid、upd_time、sync_time、is_del、is_upd字段。其中,所述步骤S22具体包括:步骤S221、在编译时拦截onCreate方法,调用父类onCreate方法创建基础表结构;步骤S222、根据SQLiteOpenHelper注解中的配置数据,判断对应于onCreate方法创建的基础表结构中是否存在_sid、upd_time、sync_time、is_del、is_upd字段,如果是则跳转到步骤S204 ;如果否则跳转到步骤S203 ; 步骤S223、在对应于onCreate方法创建的基础表结构中创建_sid、upd_time、sync_time、is_del、is_upd 字段; 步骤S224、在编译时拦截onUpgrade方法,调用父类onUpgrade方法创建基础表结构;步骤S225、根据SQLiteOpenHelper注解中的配置数据,判断对应于onUpgrade方法创建的基础表结构中是否存在_sid、upd_time、sync_time、is_del、is_upd字段,如果是则步骤结束;如果否则跳转到步骤S226 ; 步骤S226、在对应于onUpgrade方法创建的基础表结构中创建_sid、upd_time、sync_time、is_del、is_upd 字段。同时,本专利技术实施例还提出了一种基于安卓系统的单机应用程序快速网络化系统,包括: ContentProvider注解模块,用于标注需要处理的ContentProvider类以及存储的配置数据; ContentProvider注解处理模块,用于编译添加了 ContentProvider注解的ContentProvider 本文档来自技高网...

【技术保护点】
一种基于安卓系统的单机应用程序快速网络化方法,其特征在于,包括:步骤S1、为单机版应用程序的ContentProvider代码段的每一个ContentProvider类添加ContentProvider注解,所述ContentProvider注解包括以下参数:指定生成的ContentProvider代理类名称、数据URI参数、对应的数据处理器类名列表;其中所述新生成的ContentProvider代理类名称用于标示生成的代码的类名称;所述数据URI参数包括新生成的ContentProvider类中需要处理的数据URI;所述对应的数据处理器类名列表用于指定自动生成的ContentProvider 类在处理所述数据URI时对应调用的数据处理器类;步骤S2、在单机版应用程序的SQLiteOpenHelper代码段的每一个SQLiteOpenHelper类添加SQLiteOpenHelper注解,所述SQLiteOpenHelper注解至少包括以下参数:要生成的SQLiteOpenHelper代理类、要处理的数据表的名称;步骤S3、在单机版应用程序的配置文件中,将原ContentProvider类名配置改为新生成的ContentProvider代理类名;步骤S4、根据数据处理器的接口实现数据处理器的实现类,该实现类用于将本地数据请求转发至服务端进行处理并返回相应的结果。...

【技术特征摘要】

【专利技术属性】
技术研发人员:彭恩江田海燕马新成王秀英
申请(专利权)人:中通服公众信息产业股份有限公司
类型:发明
国别省市:新疆;65

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1