一种基于安卓系统的单机应用网络化方法和系统的制作方法

文档序号:9597711阅读:359来源:国知局
一种基于安卓系统的单机应用网络化方法和系统的制作方法
【技术领域】
[0001]本发明涉及移动终端技术领域,具体涉及一种基于安卓系统的单机应用程序快速网络化方法和系统。
【背景技术】
[0002]安卓系统已经成为全球范围内使用广泛的移动操作系统之一。而随着移动互联网技术的发展,越来越多的单机版应用开始迀移成为网络版应用。现有技术中要想将单机版应用程序迀移成网络版应用程序,就需要对单机版应用程序的数据操作部分以及相关的逻辑代码都进行重写,以将访问本地数据的代码完全修改为请求应用服务器数据的代码。这种技术需要对原单机版应用的部分核心代码进行修改,消耗大量时间。同时如果修改单机版应用程序的核心代码可能导致整个程序出现运行流程逻辑不正确的问题。由此可见现有技术的方法过程繁琐且易于出错。

【发明内容】

[0003]有鉴于此,本发明的主要目的在于提供一种基于安卓系统的单机应用程序快速网络化方法和系统,使得将使用基于ContentProvider组件的单机版应用程序升级为网络版应用程序的过程变得容易且不会产生逻辑错误。
[0004]为达到上述目的,本发明实施例提出了一种基于安卓系统的单机应用程序快速网络化方法,包括:
步骤S1、为单机版应用程序的ContentProvider代码段的每一个ContentProvider类添加ContentProvider注解,所述ContentProvider注解包括以下参数:指定生成的ContentProvider代理类名称、数据URI参数、对应的数据处理器类名列表;其中所述新生成的ContentProvider代理类名称用于标示生成的代码的类名称;所述数据URI参数包括新生成的ContentProvider类中需要处理的数据URI ;所述对应的数据处理器类名列表用于指定自动生成的ContentProvider类在处理所述数据URI时对应调用的数据处理器类;步骤S2、在单机版应用程序的SQLiteOpenHelper代码段的每一个SQLiteOpenHelper类添加SQLiteOpenHelper注解;所述SQLiteOpenHelper注解至少包括以下参数:要生成的SQLiteOpenHelper代理类、要处理的数据表的名称;
步骤S3、在单机版应用程序的配置文件中,将原ContentProvider类名配置改为新生成的ContentProvider代理类名;
步骤S4、根据数据处理器的接口实现数据处理器的实现类,该实现类用于将本地数据请求转发至服务端进行处理并返回相应的结果。
[0005]其中,所述步骤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字段用于标记该记录是否在客户端已经被修改。
[0006]其中,所述步骤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返回的数据返回给调用的代码。
[0007]其中,所述步骤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字段。
[0008]其中,所述步骤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 字段。
[0009]同时,本发明实施例还提出了一种基于安卓系统的单机应用程序快速网络化系统,包括:
ContentProvider注解模块,用于标注需要处理的ContentProvider类以及存储的配置数据;
ContentProvider注解处理模块,用于编译添加了 ContentProvider注解的ContentProvider 类以及通过 ContentProvider 注解中的参数、ContentProvider 代码模板生成 ContentProvider 代理类;
ContentProvider代码模板,用于辅助ContentProvider注解处理模块在编译时通过处理所述ContentProvider注解,以根据ContentProvider注解中的参数动态生成临时代码;
ContentProvider代理类,用于按照本发明所述方法对基于安卓系统的单机应用网络化过程实现的代理类;
SQLiteOpenHelper注解模块,用于标注需要处理的SQLiteOpenHelper类,以及提供配置数据的存储位置,所述SQLiteOpenHelper注解至少包括以下参数:要生成的SQLiteOpenHelper代理类、要处理的数据表的名称;
SQLiteOpenHelper注解处理模块,用于编译添加了 SQLiteOpenHelper注解的SQLiteOpenHelper 类以及通过 SQLiteOpenHelper 注解中的参数、SQLiteOpenHelper 代码模板生成SQLiteOpenHelper代理类;
SQLiteOpenHelper代码模板,用于辅助SQLiteOpenHelper注解处理模块在编译时通过处理所述SQLiteOpenHelper注解,以根据SQLiteOpenHelper注解中的参数及预先设置的代码模板动态生成临时代码;
SQLiteOpenHelper代理类,用于按照本发明所述方法对基于安卓系统的单机应用网络化过程实现的代理类;
中央处理器,用于在单机版应用程序的配置文件中,将原ContentProvider类名配置改为新生成的ContentProvider代理类名;并用于根据数据处理器的接口实现数据处理器的实现类,该实现类用于将本地数据请求转发至服务端进行处理并返回相应的结果。
[0010]其中,所述ContentProvider注解处理模块执行以下操作:
步骤S11、在编译该ContentProvider注解时,生成一份代理类继承自注解标注的ContentProvider 类;
步骤S12、在代理类处理insert、update、delete、query接口方法时,依次判断操作的数据URI是否存在于注解配置的要处理数据URI列表中;如果是则
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1