logo好方法网

一种基于MVPVM的Android应用开发方法、装置、设备及介质


技术摘要:
本申请公开了一种基于MVPVM的Android应用开发方法、装置、设备及介质,包括:创建Android应用代码文件;Android应用代码文件包括页面代码文件、视图布局代码文件、表示层代码文件、Model模型代码文件和ViewModel视图模型代码文件;在页面代码文件的目标页面中放置目标J  全部
背景技术:
现有的Android应用开发,主要是通过手工创建应用界面、编写界面上各种视图控 件(View)的放置位置;手工创建代码文件,并在代码文件中将视图控件(View)与视图控件 模型(Model)在视图模型(ViewModel)中进行绑定关联;并且,还需要在表示层(Presenter) 中添加视图控件(View)的事件响应与逻辑处理;同时,在视图模型(ViewModel)中,还需要 编写与后端服务器接口交互的请求和响应逻辑。通常,一个Android应用,包含有很多的界 面,每个界面都有很多的视图控件(View)、对应的视图控件模型(Model)、以及每个界面的 表示层(Presenter)和视图模型(ViewModel),因此,开发人员需要花费大量的时间与精力 重复这些工作。 目前Android应用开发常用的技术包括:MVC即模型(Model)-视图(View)-控制 器(Controller),最早的软件设计典范,将业务逻辑、数据、界面显示分享的方法组织代码; 缺点是视图(View)会在控制器(Controller)中直接访问模型(Model),即所有的数据与界 面交互逻辑都在控制器中实现,代码会越来越多,逻辑会越来越严重耦合,维护成本也会越 来越高;MVP即模型(Model)-视图(View)-表示层(Presenter),基于MVC演化而来,与MVC 最大的区别在于:视图(View)不在直接访问模型(Model),而是通过表示层(Presenter)进 行间接通信;缺点是代码文件会越来越多,也进一步增加了代码复杂度;表示层 (Presenter)同样也含有大量的逻辑,导致越来越臃肿,维护困难;如果特写视图(View)有 很多的渲染操作,则会导致表示层(Presenter)与该视图(View)过于紧密,一旦视图(View) 变更,则表示层(Presenter)也需要变量,降低了预期的低耦合度和复用性;MVVM即模型 (Model)-视图(View)-视图模型(ViewModel),基于MVP进一步的演化,视图模型 (ViewModel)即处理视图(View)和模型(Model)之间的数据交互,可以将一个大的视图 (View)拆分成更小更独立的各个子视图(SubView),每个视图(View)都有一个对应的模型 (Model),以及处理它们的视图模型(ViewModel),缺点是随着视图(View)的最小化拆分,代 码文件会很多,但是耦合度会降低不少,代码逻辑也更加清晰;但是视图(View)仍然需要处 理渲染与用户交互(事件响应与处理)。 目前,现有的Android应用开发常用的技术,需要开发人员手工创建各种不同的代 码文件,以及手工完成各代码的初始化工作、各种类的依赖与绑定。
技术实现要素:
有鉴于此,本申请的目的在于提供一种基于MVPVM的Android应用开发方法、装置、 设备及介质,能够自动实现各代码的初始化工作以及各种类的依赖与绑定,从而提升程序 开发效率。其具体方案如下: 4 CN 111596906 A 说 明 书 2/9 页 第一方面,本申请公开了一种基于MVPVM的Android应用开发方法,包括: 创建Android应用代码文件;所述Android应用代码文件包括页面代码文件、视图 布局代码文件、表示层代码文件、Model模型代码文件和ViewModel视图模型代码文件; 在所述页面代码文件的目标页面中放置对应的目标JAVA注解;所述目标JAVA注解 中包括所述视图布局代码文件、所述表示层代码文件、所述Model模型代码文件和 ViewModel视图模型代码文件对应的文件名称; 利用编译器对所述Android应用代码文件进行编译,得到对应的目标class类文 件;在编译过程中,所述编译器利用所述目标JAVA注解中的所述文件名称找到所述视图布 局代码文件、所述表示层代码文件、所述Model模型代码文件和所述ViewModel视图模型代 码文件; 在页面启动时,利用JAVA反射机制获取对应的JAVA注解中的所述文件名称,然后 根据所述文件名称初始化对应的View视图、Model模型、Presenter表示层和ViewModel视图 模型以及进行相应的依赖处理与绑定。 可选的,所述在所述页面代码文件的目标页面中放置对应的目标JAVA注解之前, 还包括: 配置所述目标JAVA注解。 可选的,所述配置所述目标JAVA注解,包括: 对预设JAVA注解进行所述视图布局代码文件、所述表示层代码文件、所述Model模 型代码文件和ViewModel视图模型代码文件的文件名称赋值操作,将赋值后的该预设JAVA 注解作为所述目标JAVA注解。 可选的,所述配置所述目标JAVA注解,包括: 对表示层注解、视图注解、视图模型注解、Model模型注解分别进行对应的所述视 图布局代码文件、所述表示层代码文件、所述Model模型代码文件和ViewModel视图模型代 码文件的文件名称赋值操作,将赋值后的所述表示层注解、所述视图注解、所述视图模型注 解、所述Model模型注解作为所述目标JAVA注解。 可选的,所述利用编译器对所述Android应用代码文件进行编译,得到对应的目标 class类文件,包括: 利用编译器对所述Android应用代码文件进行编译; 基于ASM插桩技术将编译得到的页面class类文件中的预设JAVA注解分解为对应 的表示层注解、视图注解、视图模型注解、模型注解,得到所述目标class类文件。 可选的,所述Android应用开发方法,还包括: 在页面启动时,若对应的JAVA注解中的赋值信息不合法,则进行页面报错。 可选的,所述Android应用开发方法,还包括: 在表示层实现Android应用中用户交互对应的事件响应处理逻辑。 第二方面,本申请公开了一种基于MVPVM的Android应用开发装置,包括: 应用代码创建模块,用于创建Android应用代码文件;所述Android应用代码文件 包括页面代码文件、视图布局代码文件、表示层代码文件、Model模型代码文件和ViewModel 视图模型代码文件; JAVA注解放置模块,用于在所述页面代码文件的目标页面中放置对应的目标JAVA 5 CN 111596906 A 说 明 书 3/9 页 注解;所述目标JAVA注解中包括所述视图布局代码文件、所述表示层代码文件、所述Model 模型代码文件和ViewModel视图模型代码文件对应的文件名称; 代码文件编译模块,用于利用编译器对所述Android应用代码文件进行编译,得到 对应的目标class类文件;在编译过程中,所述编译器利用所述目标JAVA注解中的所述文件 名称找到所述视图布局代码文件、所述表示层代码文件、所述Model模型代码文件和所述 ViewModel视图模型代码文件; 页面启动处理模块,用于在页面启动时,利用JAVA反射机制获取对应的JAVA注解 中的所述文件名称,然后根据所述文件名称初始化对应的View视图、Model模型、Presenter 表示层和ViewModel视图模型以及进行相应的依赖处理与绑定。 第三方面,本申请公开了一种基于MVPVM的Android应用开发设备,包括处理器和 存储器;其中, 所述存储器,用于保存计算机程序; 所述处理器,用于执行所述计算机程序以实现前述的Android应用开发方法。 第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中, 所述计算机程序被处理器执行时实现前述的Android应用开发方法。 可见,本申请先创建Android应用代码文件;所述Android应用代码文件包括页面 代码文件、视图布局代码文件、表示层代码文件、Model模型代码文件和ViewModel视图模型 代码文件,然后在所述页面代码文件的目标页面中放置对应的目标JAVA注解;所述目标 JAVA注解中包括所述视图布局代码文件、所述表示层代码文件、所述Model模型代码文件和 ViewModel视图模型代码文件对应的文件名称,之后利用编译器对所述Android应用代码文 件进行编译,得到对应的目标class类文件;在编译过程中,所述编译器利用所述目标JAVA 注解中的所述文件名称找到所述视图布局代码文件、所述表示层代码文件、所述Model模型 代码文件和所述ViewModel视图模型代码文件,在页面启动时,利用JAVA反射机制获取对应 的JAVA注解中的所述文件名称,然后根据所述文件名称初始化对应的View视图、Model模 型、Presenter表示层和ViewModel视图模型以及进行相应的依赖处理与绑定。这样,在目标 页面中放置对应的目标JAVA注解,然后进行编译,在页面启动时,利用JAVA反射机制获取 JAVA注解中的文件名称,然后进行初始化以及相应的依赖处理与绑定,能够自动实现各代 码的初始化工作以及各种类的依赖与绑定,从而提升程序开发效率。 附图说明 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。 图1为本申请公开的一种基于MVPVM的Android应用开发方法流程图; 图2为本申请公开的一种具体的依赖处理与绑定示意图; 图3为本申请公开的一种具体的基于MVPVM的Android应用开发方法流程图; 图4为本申请公开的一种具体的MVPVM关联化配置方法示意图; 图5为本申请公开的一种具体的基于MVPVM的Android应用开发流程图; 6 CN 111596906 A 说 明 书 4/9 页 图6为本申请公开的一种具体的基于ASM进行字节码插桩处理示意图; 图7为本申请公开的一种编译阶段Java字节码操作流程图; 图8为本申请公开的一种程序运行时通过Java反射机制初始化MVPVM的流程图; 图9为本申请公开的一种具体的基于MVPVM的Android应用开发方法流程图; 图10为本申请公开的一种具体的MVPVM关联化配置方法示意图; 图11为本申请公开的一种基于MVPVM的Android应用开发装置结构示意图; 图12为本申请公开的一种基于MVPVM的Android应用开发设备结构图; 图13为本申请公开的一种电子终端结构图。
下载此资料需消耗2积分,
分享到:
收藏