掌桥专利:专业的专利平台
掌桥专利
首页

一种电子设备的组件显示方法及装置

文献发布时间:2023-06-19 19:38:38


一种电子设备的组件显示方法及装置

技术领域

本发明涉及电子设备显示领域,具体涉及一种电子设备的组件显示方法及装置。

背景技术

电子班牌,也称智慧班牌,其替代了传统班级黑板报、墙体宣传,通过实时的高清屏幕,展示学校通知公告、班容班貌、校园风采、今日菜谱等内容,可以全方位展示校园及班级信息,电子班牌上展现组件的矩形窗是组件视窗,整个班牌的视窗可以划分为多个组件视窗。当前Android系统的电子班牌上展现组件的时候一般采用组件化和插件化两种方式,具体如下:

组件化方式中,每个的组件是个aar,最终集成在一个APP中,如果需要更新或者添加新的组件,需要更新该APP的apk文件(Android application package,Android应用程序包)。这便导致组件化每次更新需要更新该apk,不便于组件的升级拓展。

插件化开发是将整个APP拆分成多个模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk,最终打包的时候宿主apk和插件apk分开打包,可以完成组件的独立更新,但是插件一般采用hook技术,欺骗系统进行的apk加载,其中,hook技术是勾住系统的程序逻辑,在某段源码逻辑执行的过程中,通过代码手段拦截执行该逻辑,加入自己的代码逻辑,这导致插件化虽然解决了组件升级拓展方便问题,但是稳定性方面较差。

可见,无论是采用组件化,还是采用插件化,要么不便于组件的升级拓展,要么稳定性方面差,都无法满足更新某一组件的同时,保持系统稳定性的需求。

因此,在实现针对某一组件的升级拓展的同时,保持系统稳定性成为亟待解决的技术问题。

发明内容

基于上述现状,本发明的主要目的在于提供一种能同时满足组件的升级拓展和稳定性要求的电子设备的组件显示方法。

为实现上述目的,本发明采用的技术方案如下:

电子设备的组件显示方法,所述电子设备的屏幕能够被划分成多个显示区域,所述显示区域用于显示组件,包括;

S100,接收配置文件,所述配置文件包括窗口模式参数,所述窗口模式参数用于指示是否加载多窗口模式;

S200,当所述窗口模式参数指示为多窗口模式时,则执行步骤S310至步骤S313;

步骤S310,布局应用程序依次启动子窗口对应的组件,所述组件分别具有单独的应用程序包;

步骤S311,界面管理服务根据所述配置文件中的组ID创建多窗口组,所述多窗口组包括所有所述显示区域,并将所述多窗口组添加到全局栈;

步骤S312:在所述多窗口组中按照所述显示区域的位置创建所述子窗口各自的分栈,分别设置所述待显示组件的界面的坐标、宽和高,按照所述坐标、宽和高加载所述界面,并将每个界面添加到对应子窗口的分栈;

步骤S313:添加所述多窗口组到窗口的关联,将所述子窗口的分栈中的界面参数传递至窗口管理服务,以显示所述子窗口对应的组件。

优选地,所述多窗口组中包括窗口管理,且其中每个窗口的窗口状态相同。

优选地,还包括:当所述子窗口启动新组件时,

创建新组件的界面,所述界面的坐标、宽和高设置为对应子窗口的坐标、宽和高;

更改所述子窗口的分栈栈顶的界面的生命周期为暂停状态;

将所述新组件的界面入子窗口栈;

将新组件的界面更新到所述多窗口组中;

将所述子窗口的分栈中的界面参数传递至窗口管理服务,以显示所述子窗口对应的组件。

优选地,还包括,当子窗口启动全屏组件时,

根据启动参数将所述子窗口设置为所述多窗口组的整体大小;

创建所述全屏组件的界面;

创建新多窗口组;

将所述新多窗口组添加到所述全局栈;

将所述全局栈中界面的坐标、宽和高传递至窗口管理服务,以显示所述全屏组件。

其中,将所述新多窗口组添加到所述全局栈时,所述全局栈的栈顶包含的所有的子窗口的生命周期都变进入暂停状态,新入栈的新多窗口组的生命周期进入运行状态;所述全局栈的栈顶出栈后,当前栈顶的多窗口组包含的所有的子窗口的生命周期全部进入运行状态。

优选地,如果所述子窗口再次弹出的窗口没有特殊参数,则弹出窗口按照子窗口的坐标、宽和高显示;如果所述再次弹出的窗口有特殊参数,则弹出窗口按照所述特殊参数的坐标、宽和高显示。

优选地,还包括,当所述子窗口接收到销毁指令时,由多窗口组统一获取窗口标识,按照所述窗口标识别对所述子窗口进行销毁处理。

优选地,所述多窗口组接收到的事件,按所述事件所属的子窗口分发到对应的子窗口。

优选地,在所述步骤S200中,当所述窗口模式参数指示为普通模式时,则执行步骤S400:所述界面管理服务创建当前组件的窗口组,并将所述窗口组添加到全局栈中,将所述全局栈中界面的坐标、宽和高传递至窗口管理服务,以显示所述当前组件。

本发明还公开一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,能够实现本发明的电子设备的组件显示方法。

本发明还公开一种电子班牌,包括:处理器,用于实现本发明的电子设备组件显示方法。

本发明还公开电子设备的组件显示装置,所述电子设备的屏幕能够被划分成多个显示区域,所述显示区域用于显示组件,所述装置包括配置文件接收模块、窗口模式判断模块和多组件启动模块;

所述配置文件接收模块用于接收配置文件,所述配置文件包括窗口模式参数,所述窗口模式参数用于指示是否加载多窗口模式;

窗口模式判断模块用于判断所述窗口模式参数是否指示为多窗口模式;

所述组件启动模块包括组件应用程序启动单元、多窗口组创建单元、子窗口分栈创建单元和组件显示单元,

所述组件应用程序启动单元用于在窗口模式参数指示为多窗口模式时,布局应用程序依次启动子窗口对应的组件,所述组件分别具有单独的应用程序包;

所述多窗口组创建单元用于将界面管理服务根据所述配置文件中的组ID创建多窗口组,所述多窗口组包括所有所述显示区域,并将所述多窗口组添加到全局栈;

所述子窗口分栈创建单元用于在所述多窗口组中按照所述显示区域的位置创建所述子窗口各自的分栈,分别设置所述待显示组件的界面的坐标、宽和高,按照所述坐标、宽和高加载所述界面,并将每个界面添加到对应子窗口的分栈;

所述组件显示单元用于将所述多窗口组添加到窗口的关联,所述子窗口的分栈中的界面参数传递至窗口管理服务,以显示所述子窗口对应的组件。

优选地,所述多窗口组中包括窗口管理,且其中每个窗口的窗口状态相同。

优选地,还包括单组件启动模块,所述单组件启动模块用于在窗口模式参数指示为普通模式时,所述界面管理服务创建当前组件的窗口组,并将所述窗口组添加到全局栈中,将所述全局栈中界面的坐标、宽和高传递至窗口管理服务,以显示所述当前组件。

本发明的电子设备的组件显示方法是一个全新的解决方案,每个组件分别具有单独的应用程序包(apk),并在框架层的界面管理服务实现多个apk加载,并且每个apk不是独占整个屏幕,而是在屏幕的指定位置和大小进行展示,如果有更新组件的需求,更新对应的apk即可,新增组件时直接安装,增加了组件窗口增加起点坐标以及宽高,在指定的位置进行加载即可。当加载多窗口模式时,多窗口组中按照显示区域的位置创建子窗口各自的分栈,分别设置待显示组件的界面(activity)的坐标、宽和高并加载所述activity,之后添加多窗口组到窗口的关联,通过Intent参数传递协议将子窗口的分栈中的activity参数传递至窗口管理服务,以显示子窗口对应的组件,即,每个apk都是按照系统的正常加载流程进行的加载。该电子设备发布系统的组件按照预定的位置和大小,显示对应的组件内容,每个组件都是一个单独的apk,加载以及展现都是按照单个应用的加载模式进行,能够稳定运行,快速升级。

本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。

附图说明

以下将参照附图对根据本发明的电子设备的组件显示方法及装置的优选实施方式进行描述。图中:

图1为根据本发明的一种优选实施方式的电子设备的组件显示方法流程图;

图2为根据本发明的另一种优选实施方式的电子设备的组件显示方法流程图;

图3为根据本发明的一种优选实施方式的电子设备的组件显示方法中的普通模式显示窗口示意图;

图4-6为根据本发明的一种优选实施方式的电子设备的组件显示方法中的多窗口模式显示窗口示意图;

图7为根据本发明一种优选实施方式的栈管理示意图;

图8是根据本发明的一种优选实施方式的电子设备的组件显示装置框图;

图9是根据本发明的另一种优选实施方式的电子设备的组件显示装置框图。

具体实施方式

图1为根据本发明的一种优选实施方式的电子设备的组件显示方法流程图,所述电子设备的屏幕能够被分成多个显示区域,所述显示区域用于显示组件,该方法包括:

S100:接收配置文件,所述配置文件包括窗口模式参数,所述窗口模式参数用于指示是否加载多窗口模式。

S200:当所述窗口模式参数指示为多窗口模式时,则执行步骤S310至步骤S313;

S310:布局应用程序依次启动子窗口对应的组件,所述组件分别具有单独的应用程序包(apk)。

在一实施方式中,布局应用程序按照布局的子窗口和子窗口对应的组件的应用程序包(apk)依次启动子窗口对应的组件。

在具体实施方式中,配置文件可以仅包含多窗口模式的配置,组ID、子窗口划分方式、坐标、长宽等,由布局应用程序选定子窗口对应的组件并启动应用程序包。在另一实施方式中,配置文件中也可以已经包含多窗口模式中各个子窗口所对应的组件,布局应用程序仅作为一个启动程序,根据配置文件启动对应组件(即各子窗口组件在配置文件中固定)。

S311:界面管理服务(AMS)根据配置文件中的组ID创建多窗口组,多窗口组包括所有显示区域,并将所述多窗口组添加到全局栈。在具体实施方式中,配置文件中的参数是可以将整个屏幕划分为多个显示区域的,并且这多个显示区域一般会占据整个物理屏幕。

在一实施方式中,多窗口组中包括窗口管理(windows manager),且其中每个窗口的窗口状态(windows state)是相同的。

S312:在多窗口组中按照所述显示区域的位置创建子窗口各自的分栈,分别设置待显示组件的界面(activity)的坐标、宽和高,按照所述坐标、宽和高加载所述界面(activity),并将每个界面(activity)添加到对应子窗口的分栈。在具体实施方式中,显示区域的位置通常是子窗口非全屏的大小(子窗口也可以全屏显示)。

S313:添加多窗口组到窗口的关联,将所述子窗口的分栈中的界面(activity)参数传递至窗口管理服务(WMS),以显示子窗口对应的组件,所述组件分别具有单独的apk。本发明的电子设备的组件显示方法是一个全新的解决方案,每个组件分别具有单独的apk,并在框架层(framework)的界面管理服务(AMS)实现多个apk加载,并且每个apk不是独占整个屏幕,而是在屏幕的指定位置和大小进行展示,如果有更新组件的需求,更新对应的apk即可,新增组件时直接安装,增加了组件窗口增加起点坐标以及宽高,在指定的位置进行加载即可。当加载多窗口模式时,多窗口组中按照显示区域的位置创建子窗口各自的分栈,分别设置待显示组件的界面(activity)的坐标、宽和高并加载所述activity,之后添加多窗口组到窗口的关联,通过Intent参数传递协议将子窗口的分栈中的activity参数传递至窗口管理服务(WMS),以显示子窗口对应的组件,即,每个apk都是按照系统的正常加载流程进行的加载。该电子设备发布系统的组件按照预定的位置和大小,显示对应的组件内容,每个组件都是一个单独的apk,加载以及展现都是按照单个应用的加载模式进行,能够稳定运行,快速升级。

当所述子窗口启动新组件时,可以创建新组件的界面(activity),所述界面(activity)的坐标、宽和高设置为对应子窗口的坐标、宽和高;更改子窗口的分栈栈顶的界面(activity)的生命周期为暂停状态(pause);将新组件的界面(activity)入子窗口栈;将新组件的界面(activity)更新到多窗口组中;将所述子窗口的分栈中的界面(activity)参数传递至窗口管理服务(WMS),以显示子窗口对应的组件。

在一实施方式中,当子窗口启动全屏组件时,根据启动参数将所述子窗口设置为所述多窗口组的整体大小;创建所述全屏组件的界面(activity);创建新多窗口组;将所述新多窗口组添加到所述全局栈;将所述全局栈中界面(activity)的坐标、宽和高传递至窗口管理服务(WMS),以显示所述全屏组件,其中,将新多窗口组添加到所述全局栈时,所述全局栈的栈顶包含的所有的子窗口的生命周期都变进入暂停状态(pause),新入栈的新多窗口组的生命周期进入运行状态(Resume);所述全局栈的栈顶出栈后,当前栈顶的多窗口组包含的所有的子窗口的生命周期全部进入运行状态(Resume)。在具体实施方式中,新多窗口组是指子窗口的全屏模式,即显示一个原子窗口的组件。

在一实施方式中,如果子窗口再次弹出的窗口没有特殊参数,则弹出窗口按照子窗口的坐标、宽和高显示;如果再次弹出的窗口有特殊参数,则弹出窗口按照特殊参数的坐标、宽和高显示。

在一实施方式中,当子窗口接收到销毁指令时,由多窗口组统一获取窗口标识(token),按照所述窗口标识别(token)对所述子窗口进行销毁处理。

在一实施方式中,多窗口组接收到的事件,按所述事件所属的子窗口分发到对应的子窗口。

在一实施方式中,如图2所示,在步骤S200中,当窗口模式参数指示为普通模式时,则执行步骤S400:界面管理服务(AMS)创建当前组件的窗口组(Group),并将窗口组添加到全局栈中,将所述全局栈中界面(activity)的坐标、宽和高传递至窗口管理服务(WMS),以显示所述当前组件。

在一实施方式中,可以通过Intent参数传递协议将对应界面(activity)的参数传递至窗口管理服务(WMS)。

对于本发明中的普通模式和多窗口模式示意如下:

普通模式,整个设备屏幕显示一个组件的窗口,和现在的普通模式一致,如图3所示,由单个窗口组成。

多窗口模式,分别显示多个同组件的窗口,如图4-6所示,分别由三、四和五个窗口组成,所有的屏幕的子窗口组成一个多窗口组。

对于本发明中栈的管理,如图7所示,组(Group)中的每个子窗口大小都是一个栈,每个子窗口在其自己的位置对应一个栈,全局栈是以组(Group)为单位,对应整体栈的位置,这个栈用来确定整体的层次。图中,上部是窗口示意,下部是栈的示意,Group1中是单窗口activity,独立一个Group,Group2中是四个子窗体,组成了Group2,分栈中四个窗体对应分别对应各自的栈,每个栈中分别包括了activity11和activity12,activity21和activity22,activity31和activity32,activity41和activity42,总栈中Group1为单个activity,Group2为多个activity。

本发明还公开一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,能够实现本发明的电子设备的组件显示方法。

本发明还公开一种电子班牌,电子班牌包括:处理器,用于实现本发明的电子设备组件显示方法。

本发明还公开一种电子设备的组件显示装置。图8是根据本发明的一种优选实施方式的电子设备的组件显示装置框图,所述电子设备的屏幕能够被划分成多个显示区域,所述显示区域用于显示组件,所述装置包括配置文件接收模块100、窗口模式判断模块200和组件启动模块300;配置文件接收模块100用于接收配置文件,配置文件包括窗口模式参数,窗口模式参数用于指示是否加载多窗口模式;窗口模式判断模块200用于判断窗口模式参数是否指示为多窗口模式;组件启动模块300包括组件应用程序启动单元301、多窗口组创建单元302、子窗口分栈创建单元303和组件显示单元304,组件应用程序启动单元301用于在窗口模式参数指示为多窗口模式时,布局应用程序依次启动子窗口对应的组件,组件分别具有单独的应用程序包(apk);多窗口组创建单元302用于将界面管理服务(AMS)根据配置文件中的组ID创建多窗口组(Group),多窗口组包括所有所述显示区域,并将多窗口组添加到全局栈;子窗口分栈创建单元303用于在多窗口组中按照所述显示区域的位置创建所述子窗口各自的分栈,分别设置待显示组件的界面(activity)的坐标、宽和高,按照所述坐标、宽和高加载所述界面(activity),并将每个界面(activity)添加到对应子窗口的分栈;组件显示单元304用于将多窗口组添加到窗口的关联,将所述子窗口的分栈中的界面(activity)参数传递至窗口管理服务(WMS),以显示子窗口对应的组件。

在一实施方式中,组件应用程序启动单元的布局应用程序按照布局的子窗口和子窗口对应的组件的应用程序包(apk)依次启动子窗口对应的组件。

在一实施方式中,多窗口组中包括窗口管理(windows manager),且其中每个窗口的windows state相同。

在一实施方式中,如图9所示,电子设备的组件显示装置还可以包括单组件启动模块400,单组件启动模块400用于在窗口模式参数指示为普通模式时,界面管理服务(AMS)创建当前组件的窗口组(Group),并将窗口组添加到全局栈中,将所述全局栈中界面(activity)的坐标、宽和高传递至窗口管理服务(WMS),以显示当前组件。

在一实施方式中,组件显示单元304或单组件启动模块400可以通过Intent参数传递协议将对应界面(activity)的坐标、宽和高传递至窗口管理服务(WMS)。

需要说明的是,本发明中采用步骤编号(字母或数字编号)来指代某些具体的方法步骤,仅仅是出于描述方便和简洁的目的,而绝不是用字母或数字来限制这些方法步骤的顺序。本领域的技术人员能够明了,相关方法步骤的顺序,应由技术本身决定,不应因步骤编号的存在而被不适当地限制。

本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。

应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。

相关技术
  • 一种盖板、显示屏组件、电子设备及制程方法
  • 一种显示方法、显示装置及电子设备
  • 显示组件、电子设备和电子设备的控制方法
  • 触控显示组件、触控显示组件的贴合方法及触控显示装置
  • 玻璃基板、显示面板及制备方法、显示屏组件及电子设备
  • 显示组件装置、电子设备和显示组件装置的组装方法
  • 显示组件装置、电子设备和显示组件装置的组装方法
技术分类

06120115986850