CN116700813A - 微件的加载方法、电子设备及可读存储介质 - Google Patents

微件的加载方法、电子设备及可读存储介质 Download PDF

Info

Publication number
CN116700813A
CN116700813A CN202211213636.5A CN202211213636A CN116700813A CN 116700813 A CN116700813 A CN 116700813A CN 202211213636 A CN202211213636 A CN 202211213636A CN 116700813 A CN116700813 A CN 116700813A
Authority
CN
China
Prior art keywords
desktop
target
interface
widget
loading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211213636.5A
Other languages
English (en)
Other versions
CN116700813B (zh
Inventor
方雄飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211213636.5A priority Critical patent/CN116700813B/zh
Publication of CN116700813A publication Critical patent/CN116700813A/zh
Application granted granted Critical
Publication of CN116700813B publication Critical patent/CN116700813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请公开了一种微件的加载方法、电子设备及可读存储介质,属于终端技术领域。应用于电子设备中,该方法包括:响应于从当前的第一界面向第二界面切换的切换操作,展示目标桌面动画,该目标桌面动画为从第一界面切换至第二界面的过程中展示的动态画面,其中,第二界面为电子设备的桌面,或者,第二界面为显示在桌面上且界面透明度为预设透明度的界面,或者,从第一界面切换至第二界面的过程中桌面为中间过渡界面;在目标桌面动画展示结束后,加载桌面中的目标微件,目标微件为运行在桌面主进程中的微件。由于微件的加载操作与桌面动画的展示操作并不会同时发生,从而改善了展示桌面动画过程中发生的卡顿、掉帧等现象,提高了桌面动画的展示效果。

Description

微件的加载方法、电子设备及可读存储介质
技术领域
本申请涉及终端技术领域,特别涉及一种微件的加载方法、电子设备及可读存储介质。
背景技术
随着终端技术的发展,为了便于用户更方便使用电子设备的功能,微件(widget)在电子设备中的应用越来越广泛。其中,微件是指微小的应用程序视图且能够被嵌入到其他应用程序中,譬如嵌入到电子设备的桌面等应用程序中。示例性地,天气微件可以嵌入至桌面中,如此电子设备的桌面中可以显示天气微件,天气微件中可以显示电子设备当前所处城市最近一段时间内的天气情况、当天空气指数等信息。
在微件嵌入到电子设备的桌面中的情况下,微件运行在电子设备的桌面主进程中,在每次从其他界面向桌面切换的过程中,管理桌面主进程的桌面启动器都会触发微件重新加载。此外,在切换过程中电子设备通常还会展示桌面动画,如此,微件的加载操作可能会对桌面动画的展示产生影响,譬如导致桌面动画发生卡顿、掉帧等现象,从而降低了桌面动画的展示效果。
发明内容
本申请提供了一种微件的加载方法、电子设备及可读存储介质,可以用于解决相关技术中桌面动画因微件的加载操作发生卡顿、掉帧等现象,导致展示效果差的问题。所述技术方案如下:
第一方面,提供了一种微件的加载方法,应用于电子设备中,所述方法包括:
响应于从当前的第一界面向第二界面切换的切换操作,展示目标桌面动画,所述目标桌面动画为从所述第一界面切换至所述第二界面的过程中展示的动态画面,其中,所述第二界面为所述电子设备的桌面,或者,所述第二界面为显示在所述桌面上且界面透明度为预设透明度的界面,或者,从所述第一界面切换至所述第二界面的过程中所述桌面为中间过渡界面;
在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,所述目标微件为运行在桌面主进程中的微件。
如此,可以在结束桌面动画的展示后,触发对微件的加载操作,微件的加载操作与桌面动画的展示操作并不会同时发生,从而改善了展示桌面动画过程中发生的卡顿、掉帧等现象,提高了桌面动画的展示效果。
作为本申请的一个示例,所述在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,包括:
在所述目标桌面动画展示结束后,若所述目标微件在展示所述目标桌面动画之前未被加载过,则加载所述目标微件;
若所述目标微件在展示所述目标桌面动画之前已被加载过,则在所述目标微件的状态满足加载条件的情况下,加载所述目标微件。
如此,通过条件判断来选择是否加载目标微件,从而降低了目标微件的加载频次,节省了桌面主进程的资源。
作为本申请的一个示例,所述若所述目标微件在展示所述目标桌面动画之前已被加载过,则在所述目标微件的状态满足加载条件的情况下,加载所述目标微件之前,还包括:
若所述目标微件在展示所述目标桌面动画之前已被加载过,则确定所述目标微件的上一次的加载时间与所述目标桌面动画展示结束时的时间之间的时间间隔;
在所述时间间隔大于或等于时间间隔阈值的情况下,确定所述目标微件的状态满足所述加载条件。
如此,通过时间间隔阈值来确定是否对目标微件进行加载,从而降低了目标微件的加载频次,避免了目标微件频繁的进行加载。
作为本申请的一个示例,所述在所述目标桌面动画展示结束后,加载所述桌面中的目标微件之后,还包括:
记录所述目标微件本次加载的加载时间。
如此,通过记录本次加载的加载时间,为后续确定加载的时间间隔的操作提供了数据支持。
作为本申请的一个示例,所述若所述目标微件在展示所述目标桌面动画之前已被加载过,则在所述目标微件的状态满足加载条件的情况下,加载所述目标微件之前,还包括:
若所述目标微件在展示所述目标桌面动画之前已被加载过,则确定在所述目标桌面动画展示结束之前的预设时长内所述目标微件的加载次数;
在所述加载次数小于次数阈值的情况下,确定所述目标微件的状态满足所述加载条件。
如此,通过不同的方式确定目标微件的状态是否满足加载条件,从而提高了确定是否加载目标微件的方式的丰富性,同时,改善了目标微件频繁加载的问题。
作为本申请的一个示例,所述电子设备包括目标接口和桌面启动器;
所述在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,包括:
在所述目标桌面动画展示结束后,所述桌面启动器调用目标接口,所述目标接口用于触发所述目标微件进行加载操作;
所述目标微件通过所述目标接口在所述桌面主进程中进行加载操作。
如此,通过在目标桌面动画展示结束后,调用目标接口对目标微件进行加载操作,从而不仅实现了对目标微件的加载操作,同时也避免了目标微件的加载操作对目标桌面动画的影响。
作为本申请的一个示例,所述目标微件包括多个显示界面的界面数据;所述在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,包括:
在所述目标桌面动画展示结束后,从所述多个显示界面的界面数据中,加载当前的显示界面的界面数据。
如此,通过加载当前的显示界面的界面数据,从而降低了对目标微件的加载耗时。
作为本申请的一个示例,所述方法还包括:
在所述目标桌面动画展示结束后,获取所述桌面的显示状态;
在所述桌面上覆盖有其他界面的情况下,不触发对所述桌面中的目标微件进行加载的操作。
如此,在桌面上覆盖有其他界面的情况下,通过不触发对目标微件的加载,从而避免了目标微件的加载操作对桌面动画的影响。
第二方面,提供了一种电子设备,所述电子设备的结构中包括处理器和存储器,所述存储器用于存储支持电子设备执行上述第一方面所提供的微件的加载方法的程序,以及存储用于实现上述第一方面所述的微件的加载方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述电子设备还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
其中,该处理器被配置为:
响应于从当前的第一界面向第二界面切换的切换操作,展示目标桌面动画,所述目标桌面动画为从所述第一界面切换至所述第二界面的过程中展示的动态画面,其中,所述第二界面为所述电子设备的桌面,或者,所述第二界面为显示在所述桌面上且界面透明度为预设透明度的界面,或者,从所述第一界面切换至所述第二界面的过程中所述桌面为中间过渡界面;
在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,所述目标微件为运行在桌面主进程中的微件。
作为本申请的一个示例,该处理器被配置为:
在所述目标桌面动画展示结束后,若所述目标微件在展示所述目标桌面动画之前未被加载过,则加载所述目标微件;
若所述目标微件在展示所述目标桌面动画之前已被加载过,则在所述目标微件的状态满足加载条件的情况下,加载所述目标微件。
作为本申请的一个示例,该处理器还被配置为:
若所述目标微件在展示所述目标桌面动画之前已被加载过,则确定所述目标微件的上一次的加载时间与所述目标桌面动画展示结束时的时间之间的时间间隔;
在所述时间间隔大于或等于时间间隔阈值的情况下,确定所述目标微件的状态满足所述加载条件。
作为本申请的一个示例,该处理器还被配置为:
记录所述目标微件本次加载的加载时间。
作为本申请的一个示例,该处理器还被配置为:
若所述目标微件在展示所述目标桌面动画之前已被加载过,则确定在所述目标桌面动画展示结束之前的预设时长内所述目标微件的加载次数;
在所述加载次数小于次数阈值的情况下,确定所述目标微件的状态满足所述加载条件。
作为本申请的一个示例,所述电子设备包括目标接口和桌面启动器;
该处理器被配置为:
在所述目标桌面动画展示结束后,所述桌面启动器调用目标接口,所述目标接口用于触发所述目标微件进行加载操作;
所述目标微件通过所述目标接口在所述桌面主进程中进行加载操作。
作为本申请的一个示例,所述目标微件包括多个显示界面的界面数据;该处理器被配置为:
在所述目标桌面动画展示结束后,从所述多个显示界面的界面数据中,加载当前的显示界面的界面数据。
作为本申请的一个示例,该处理器还被配置为:
在所述目标桌面动画展示结束后,获取所述桌面的显示状态;
在所述桌面上覆盖有其他界面的情况下,不触发对所述桌面中的目标微件进行加载的操作。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的微件的加载方法。
第四方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的微件的加载方法。
上述第二方面、第三方面和第四方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是根据一示例性实施例示出的一种微件的加载方法流程示意图;
图2是根据一示例性实施例示出的一种应用场景的示意图;
图3是根据一示例性实施例示出的一种电子设备的结构示意图;
图4是根据一示例性实施例示出的一种电子设备的软件架构示意图;
图5是根据另一示例性实施例示出的一种应用场景的示意图;
图6是根据另一示例性实施例示出的一种应用场景的示意图;
图7是根据另一示例性实施例示出的一种应用场景的示意图;
图8是根据另一示例性实施例示出的一种应用场景的示意图;
图9是根据另一示例性实施例示出的一种应用场景的示意图;
图10是根据另一示例性实施例示出的一种微件的加载方法流程示意图;
图11是根据另一示例性实施例示出的一种应用程序框架层的示意图;
图12是根据另一示例性实施例示出的一种判断是否对天气微件进行加载操作的流程示意图;
图13是根据一示例性实施例示出的一种同一微件上包括多个显示界面的示意图;
图14是根据另一示例性实施例示出的一种微件的加载方法流程示意图;
图15是根据另一示例性实施例示出的一种微件的加载方法流程示意图;
图16是根据另一示例性实施例示出的一种微件的加载方法流程示意图;
图17是根据另一示例性实施例示出的一种微件的加载方法流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
随着终端技术的发展,为了方便用户使用各类应用程序的功能,也为了使得电子设备的桌面显示更丰富,微件在电子设备中的应用越来越广泛。有些微件可以运行在桌面主进程中,比如,参见图1,桌面启动器(Launcher)响应于对天气微件的添加操作,电子设备可以将天气微件的视图显示在桌面中,且在加载过程中通过应用框架层中类加载将天气微件运行在桌面主进程中。之后,天气微件可以调用视图添加函数,该视图添加函数可以为onAttachedToWindow函数,示例性地,该视图添加函数可以描述天气微件的视图在桌面中的显示情况。之后,天气微件可以进行初始化操作;在初始化操作的过程中,天气微件可以进行注册更新和回调,其中,注册是指注册天气微件监听模块(也可以称为监听器)。如此,在电子设备每一次从其他界面向桌面切换的过程中,窗口焦点将切换至桌面,而窗口焦点的切换将触发窗口焦点变化函数的调用,该窗口焦点变化函数可以为onWindowFocuseChange函数,该函数的调用将触发天气微件进行加载操作。其中,天气微件在加载的过程中可以调用天气信息获取函数,该天气信息获取函数可以为onWeatherChanged函数;天气微件对onWeatherChanged函数的调用都会触发对界面加载函数的调用,该界面加载函数可以为updateUi函数,天气微件通过updateUi函数可以在桌面主进程中依次加载天气微件当前显示的温度(该步骤可以通过setCurrentTemp函数实现)、加载最高温度和最低温度(该步骤可以通过setHighLowTemp函数实现)、加载天气图标(该步骤通过setWeatherIcon函数实现)、加载城市名称(该步骤可以通过setCityName函数实现)以及加载城市当前的时间、日期和节气(该步骤可以通过setCityTimezone函数实现)。
但是,天气微件的加载操作在桌面主进程中进行,且在由其他界面切换至桌面的过程中,参见图1,电子设备通常还会通过桌面启动器展示桌面动画,展示桌面动画的操作也是在桌面主进程进行的,如此,天气微件的加载操作可能会对桌面动画的展示操作产生影响,比如导致桌面动画发生卡顿、掉帧等现象,从而降低了桌面动画的展示效果。
示例性地,在电子设备为手机,且手机中显示有社交应用程序的应用界面的情况下,参见图2中的(a)图,用户可以在社交应用程序的应用界面中进行进入后台应用界面的操作,该操作可以为用户从社交应用程序的应用界面的底部开始向上滑动一段距离的操作,或者,为用户从社交应用程序的应用界面的左侧起向右滑动一段距离的操作,本申请实施例的图示中以从社交应用程序的应用界面的底部向上滑动一段距离的操作为例进行说明;手机响应于用户从社交应用程序的应用界面的底部向上滑动一段距离的操作,退出社交应用程序,并展示由社交应用程序的应用界面切换至桌面的桌面动画;同时,桌面中的天气微件进行加载的操作,并在桌面动画展示结束后,显示如图2中的(b)图所示的桌面。其中,手机展示的桌面动画可以包括10帧图像,手机可以逐帧展示该10帧图像,以实现对桌面动画的展示。但是,参见图2中的(c)图,由于在手机展示桌面动画的过程中,受到天气微件的加载操作的影响,手机展示的桌面动画发生掉帧和卡顿现象,导致展示了6帧图像,且该6帧图像中最后2帧图像的展示时间发生延后,即原本10帧图像在T4时间点即可展示完成,但因发生掉帧及卡顿现象,导致展示了6帧图像,且在T6时间点才展示完成,从而降低了桌面动画的展示效果。
为了提高桌面动画的展示效果,改善在展示桌面动画过程中发生的卡顿、掉帧等现象,本申请实施例提供了一种微件的加载方法,电子设备在由其他界面切换至桌面、或者,由其他界面切换至后台应用界面等显示在桌面上且界面透明度为预设透明度的界面,或者,由其他界面切换至另外一个界面的过程中桌面为中间过渡界面的情况下,可以先展示桌面动画,在桌面动画展示结束后,触发对运行在桌面主进程中的微件的加载操作。由于可以在结束桌面动画的展示后,触发对微件的加载操作,因此,微件的加载操作与桌面动画的展示操作并不会同时发生,从而改善了展示桌面动画过程中发生的卡顿、掉帧等现象,提高了桌面动画的展示效果。
在对本申请实施例提供的微件的加载方法进行详细地解释说明之前,先对本申请实施例涉及的电子设备予以说明。
本申请实施例提供的方法可以由电子设备执行,电子设备的桌面上显示有运行在桌面主进程中的微件,比如,天气微件等。作为示例而非限定,电子设备可以是但不限于手机运动相机(GoPro)、数码相机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、车载设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、手机、门锁、智能电器等,本申请实施例对此不作限定。
图3是本申请实施例提供的一种电子设备的结构示意图。参见图3,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,比如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口,如可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,比如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。比如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,计算机可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100在使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,比如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D以及应用处理器等实现音频功能,比如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。比如:当有触摸操作强度小于压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180D检测翻盖的开合。电子设备100根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
接近光传感器180G可以包括发光二极管(LED)和光检测器,比如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,电子设备100可以确定电子设备100附近有物体。当检测到不充分的反射光时,可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
接下来对电子设备100的软件系统予以说明。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的安卓(Android)系统为例,对电子设备100的软件系统进行示例性说明。
图4是本申请实施例提供的一种电子设备100的软件系统的框图。参见图4,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统层,以及内核层。
应用程序层可以包括一系列应用程序包。如图4所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙等应用程序。
应用程序层中还可以包括桌面启动器(Launcher)和运行在桌面主进程中的微件,本申请实施例的附图中以天气微件为例进行说明。
作为一个示例,桌面启动器用于管理桌面主进程,且能够触发对微件的添加操作、触发对微件的加载操作和触发对桌面动画的展示操作等。
作为一个示例,微件用于展示对应的应用程序的任意一个应用视图。比如,天气微件可以展示天气应用程序的天气情况视图,该天气情况视图中包括当前时间、电子设备当前所处城市最近一段时间内的天气情况、当天的空气指数等信息。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问,这些数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,比如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序的显示界面,显示界面可以由一个或多个视图组成,比如,包括显示短信通知图标的视图,包括显示文字的视图,以及包括显示图片的视图。电话管理器用于提供电子设备100的通信功能,比如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如,通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或滚动条文本形式出现在系统顶部状态栏的通知,比如后台运行的应用程序的通知。通知管理器还可以是以对话窗口形式出现在屏幕上的通知,比如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
作为一个示例,应用程序框架层中还可以包括目标接口。
需要说明的是,目标接口用于在被调用的情况下触发运行在桌面主进程中的微件进行加载操作。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块,比如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(比如:OpenGL ES),2D图形引擎(比如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,比如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明电子设备100软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别原始输入事件所对应的控件。以该触摸操作是单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用程序框架层的接口,启动相机应用,再调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。
为了便于理解,在对本申请实施例提供的方法进行详细介绍之前,基于上述实施例提供的执行主体,接下来以电子设备是手机,且手机中的桌面主进程中运行有天气微件为例对本申请实施例涉及的应用场景进行介绍。
请参考图5,图5是根据一示例性实施例示出的一种应用场景的示意图。在一种可能的场景中,参见图5中的(a)图,用户在使用社交应用程序的过程中,可能会需要退出社交应用程序,来查看其他应用程序,该种情况下,用户可以触发进入后台应用界面的操作,比如,用户从社交应用程序的应用界面的底部为起点进行向上滑动一段距离的操作;手机响应于用户从社交应用程序的应用界面的底部为起点向上滑动一段距离的操作,可以展示从社交应用程序的应用界面切换至手机桌面的桌面动画;在桌面动画展示结束后,手机可以显示如图5中的(b)图所示的桌面,同时对运行在桌面主进程中的天气微件进行加载操作。其中,手机在展示桌面动画的过程中,参见图5中的(c)图,若该桌面动画包括10帧图像,手机可以逐帧展示每一帧图像,且由于在展示过程中微件并没有进行加载操作,从而手机可以将10帧图像完整且流畅的进行展示。
作为本申请的一个示例,参见图6中的(a)图,在用户需要使用手机的情况下,若手机处于锁屏状态,那么用户可以从锁屏界面的底部为起点向上滑动;若之前用户是在显示桌面的情况下对手机进行的锁屏操作,且手机未设置有解锁密码,那么本次手机响应于用户在锁屏界面的底部为起点向上滑动一段距离的操作,可以展示从锁屏界面切换至手机桌面的桌面动画。在桌面动画展示结束后,手机可以显示如图6中的(b)图所示的桌面,同时对运行在桌面主进程中的天气微件进行加载操作。其中,手机在展示桌面动画的过程中,参见图6中的(c)图,若该桌面动画包括10帧图像,手机可以逐帧展示每一帧图像,且由于在展示过程中微件并没有进行加载,从而手机可以将10帧图像完整且流畅的进行展示。
需要说明的是,若手机设置有解锁密码,那么手机响应于用户在锁屏界面的底部为起点向上滑动一段距离的操作,可以提示用户进行解密操作,用户可以输入解锁密码,手机在验证密码通过后,可以展示桌面动画,并在桌面动画展示结束后显示桌面。
作为本申请的一个示例,用户需要在手机的后台应用界面进行操作的情况下,用户可以进行进入后台应用界面的操作,参见图7中的(a)图,在手机显示社交应用程序的应用界面的情况下,用户可以以该社交应用程序的应用界面的底部为起点进行向上滑动并停顿的操作;手机响应于用户以社交应用程序的应用界面底部为起点进行向上滑动并停顿的操作,展示由社交应用程序的应用界面切换至后台应用界面的桌面动画;在桌面动画展示结束后,显示如图7中的(b)图所示的后台应用界面,同时对运行在桌面主进程中的天气微件进行加载操作。其中,手机在展示桌面动画的过程中,参见图7中的(c)图,若该桌面动画包括10帧图像,手机可以逐帧展示每一帧图像,且由于在展示过程中微件并没有进行加载,从而手机可以将10帧图像完整且流畅的进行展示。
需要说明的是,后台应用界面是一个覆盖在桌面上,且界面透明度为预设透明度的界面,另外,该后台应用界面中显示的运行在后台的应用程序的界面截图不具有透明度。该预设透明度可以为50%、60%或70%等。本申请实施例的附图中以对后台应用界面添加背景图案来说明后台应用界面的透明度为预设透明度。
作为本申请的一个示例,用户需要在快捷菜单栏中进行一些快捷设置的情况下,比如,用户需要快速开启或关闭WiFi信号、调节屏幕亮度或者开启飞行模式的情况下,用户可以下拉快捷菜单栏。参见图8中的(a)图,若用户是在手机显示桌面的情况下下拉快捷菜单栏,那么,手机响应于用户对快捷菜单栏的下拉操作,可以展示由桌面切换为快捷菜单界面的桌面动画。在桌面动画展示结束后,显示如图8中的(b)图所示的由快捷菜单栏展开的快捷菜单界面,同时对运行在桌面主进程中的天气微件进行加载操作。其中,手机在展示桌面动画的过程中,参见图8中的(c)图,若该桌面动画包括10帧图像,手机可以逐帧展示每一帧图像,且由于在展示过程中天气微件并没有进行加载,从而手机可以将10帧图像完整且流畅的进行展示。
需要说明的是,由于用户是在手机显示桌面的情况下进行下拉快捷菜单栏的操作,因此,该快捷菜单界面在显示后是显示在桌面上的,且快捷菜单界面为透明度为预设透明度的界面。另外,快捷菜单界面的透明度可以与后台应用程序的透明度相同,也可以不相同,本申请实施例对此不作具体限制。另外,本申请实施例的附图中以对快捷菜单界面添加背景图案来说明快捷菜单界面的透明度为预设透明度。
作为本申请的一个示例,参见图9中的(a)图,在手机显示社交应用程序的应用界面的情况下,为了使手机更加快速地切换至其他应用程序的应用界面,在手机具有应用快切功能的情况下,用户可以在社交应用程序的应用界面中触发应用快切操作,比如,用户可以以社交应用程序的应用界面中左下角为起点,向该社交应用程序的应用界面的右上角进行滑动操作,以触发应用快切操作;手机响应于该应用快切操作,可以将社交应用程序的应用界面切换至运行在后台中的任意一个应用程序的应用界面,比如,切换至支付应用程序的应用界面;在切换过程中手机可以展示桌面动画,同时,参见图9中的(b)图,在切换过程中桌面作为过渡界面进行显示;在桌面动画结束后,可以显示如图9中的(c)图所示的支付应用程序的应用界面。其中,手机在展示桌面动画的过程中,参见图9中的(d)图,若该桌面动画包括10帧图像,手机可以逐帧展示每一帧图像,且由于在展示过程中天气微件并没有进行加载,从而手机可以将10帧图像完整且流畅的进行展示。另外,图9中的(c)图可以为10帧图像中的某一帧图像。本申请实施例以图9中的(c)图中带有背景图案的界面为桌面为例进行说明。
需要说明的是,本申请实施例中仅以上述图5-图9所示的应用场景为例进行说明,并不对本申请实施例构成限定。
基于上述实施例提供的执行主体和应用场景,接下来对本申请实施例提供的微件的加载方法进行介绍。请参考图10,图10是根据一示例性实施例示出的一种微件的加载方法流程示意图,且图10中是以运行在桌面主进程中的微件为天气微件为例进行说明。作为示例而非限定,这里以该方法应用于手机中,且通过图4所示的桌面启动器执行该方法为例进行说明,该方法可以包括如下部分或者全部内容:
步骤1001:桌面启动器接收对天气微件的添加操作,以在桌面主进程中添加天气微件。
为了便于快速了解天气情况,用户可以在手机的桌面中添加天气微件,从而桌面启动器可以接收到对天气微件的添加操作。
作为一个示例,桌面启动器在接收到对天气微件的添加操作的情况下,天气微件的视图可以显示在桌面中,且电子设备可以通过应用框架层中的类加载天气微件,以将天气微件运行在桌面主进程中;之后,天气微件可以调用视图添加函数,比如,调用onAttachedToWindow函数;之后,天气微件可以进行初始化操作,并在应用框架层中通过观察者添加函数添加天气微件监听模块,比如,通过addObserver函数添加天气微件监听模块。
由于天气微件显示在桌面中的情况下,天气微件可能会发生一些操作,这些操作与其他未运行在桌面主进程中的微件所发生的操作相似或相同,因此,为了区分每个微件的操作,天气微件可以在应用程序框架层中添加天气微件监听模块。
在一些实施例中,参见图11,天气微件在应用程序框架层通过观察者添加函数添加天气微件监听模块的情况下,天气微件可以在生命周期观察器插件中的全局变量中添加天气微件监听模块。其中,生命周期观察器插件位于应用程序框架层中,且通常可以为单例类LauncherLifecycleObserverMgr,该全局变量可以通常可以为HashMap。
需要说明的是,在天气微件的视图从桌面中移除的情况下,天气微件可以通过观察者移除函数移除该天气微件监听模块,该移除函数可以为removeObserver函数。也即是,天气微件可以通过removeObserver函数移除LauncherLifecycleObserverMgr类中的天气微件监听模块。
在一些实施例中,桌面启动器在桌面主进程中添加天气微件的过程中,参见图11,桌面启动器还可以在应用程序框架层中新增目标接口,目标接口可以在生命周期观察器中创建,且该目标接口可以通过onDeskVisible函数表示,且该目标接口用于桌面与天气微件之间的通信。该生命周期观察器是一种声明周期的观察者类,通常可以为ILauncherLifecycleObserver。
步骤1002:桌面启动器在监听到从当前的第一界面向第二界面切换的切换操作的情况下,在桌面主进程中进行目标桌面动画的展示操作。
需要说明的是,目标桌面动画为从第一界面切换至第二界面的过程中展示的动态画面,其中,第二界面为电子设备的桌面,或者,第二界面为显示在桌面上且界面透明度为预设透明度的界面,或者,从第一界面切换至第二界面的过程中桌面为中间过渡界面。第一界面与第二界面是不同的界面,其中,在第二界面为电子设备的桌面的情况下,第一界面可以为手机的桌面之外的任意一个界面。
由于用户在使用手机的过程中,可能会进行多种多样的操作,因此,根据第一界面的不同以及用户进行的切换操作的不同,该显示的第二界面也不同,展示的目标桌面动画也不同。
示例性地,在第一界面为任意一个应用程序的应用界面的情况下,若切换操作为退出应用程序的退出操作,那么目标桌面动画可以为应用程序的退出动画,且切换操作所切换的第二界面可以为手机的桌面。该应用场景可以参考上述图5所示的应用场景。
示例性地,在第一界面为手机的锁屏界面的情况下,若切换操作为对手机的解锁操作,那么目标桌面动画可以为解锁动画,且手机解锁后显示的第二界面可以为桌面。该应用场景可以参考上述图6所示的应用场景。
示例性地,在第一界面为桌面或者任意一个应用程序的应用界面的情况下,若切换操作为进入后台应用界面的操作,那么目标桌面动画可以为进入后台应用界面的进入动画,此时,第二界面为后台应用界面。该应用场景可以参考上述图7所示的应用场景。
需要说明的是,在第一界面为后台应用界面的情况下,若用户进行由后台应用界面切换至桌面的操作,那么,目标桌面动画可以为退出后台应用界面的退出动画,第二界面为手机的桌面。
示例性地,在第一界面为桌面的情况下,若切换操作为下拉快捷菜单栏的下拉操作,那么目标桌面动画可以展开快捷菜单栏的展开操作,第二界面可以为快捷菜单栏展开后的快捷菜单界面。该应用场景可以参考上述图8所示的应用场景。
需要说明的是,在第一界面快捷菜单栏的情况下,若用户进行由快捷菜单栏切换至桌面的操作,那么,目标桌面动画可以为收起快捷菜单界面的收起动画,第二界面为手机的桌面。
示例性地,在第一界面为应用程序A的应用界面A的情况下,若切换操作为应用快切操作,那么目标桌面动画为由应用界面A切换至应用程序B的应用界面B的切换动画,第二应用界面为应用界面B,在应用界面A切换至应用界面B的过程中桌面作为中间过渡界面显示。
步骤1003:桌面启动器在目标桌面动画展示结束后,判断是否对天气微件进行加载操作;若是,则执行下述步骤1004的操作,若否,则执行下述步骤1005的操作。
由于在发生界面切换的情况下,若窗口焦点由其他界面转移至桌面,那么桌面启动器可以在目标桌面动画展示结束后,判断是否对天气微件进行加载操作。
示例性地,在由社交应用程序的应用界面切换至手机桌面的情况下,或者,在手机由解锁界面切换至手机桌面的情况下,或者,在手机由其他应用界面切换至后台应用界面的情况下,或者,在手机由快捷菜单界面切换至桌面的情况下,或者,在手机实现应用快切功能的情况下,桌面启动器可以在目标桌面动画展示结束后,判断是否对天气微件进行加载操作。
在一些实施例中,桌面启动器判断是否对天气微件进行加载操作的过程包括:确定天气微件在展示桌面动画之前是否被加载过;若否,则直接执行下述步骤1004的操作;若是,则确定天气微件的状态是否满足加载条件。
作为一个示例,桌面启动器确定天气微件在展示桌面动画之前是否被加载过的操作可以包括:桌面启动器可以判断是否记录有上一次加载的时间;若是,则确实天气微件在展示桌面动画之前未被加载过。若否,则确定天气微件在展示桌面动画之前已被加载过。
作为一个示例,桌面启动器中可以设置有时间变量,比如,该时间变量通过sLastTime表示,桌面启动器判断是否记录有上一次加载的时间也即是判断sLastTime的赋值是否为0,若为0,则确定天气微件在展示桌面动画之前未被加载过。若不为0,则确定天气微件在展示桌面动画之前已被加载过。
需要说明的是,在确定天气微件在展示桌面动画之前未被加载过的情况下,桌面启动器不仅可以执行下述步骤1004的操作,同时还可以获取当前系统时间,该当前系统时间即为桌面动画展示结束时的时间,将当前系统时间记录为天气微件本次加载的加载时间,即将当前系统时间赋值给sLastTime。
作为一个示例,桌面启动器判断天气微件的状态是否满足加载条件的操作包括:桌面启动器获取桌面动画展示结束时的时间;确定天气微件的上一次的加载时间与桌面动画展示结束时的时间之间的时间间隔;判断时间间隔是否大于或等于时间间隔阈值;若是,即时间间隔大于或等于时间间隔阈值的情况下,确定天气微件的状态满足加载条件;若否,即在时间间隔小于时间间隔阈值的情况下,确定天气微件的状态不满足加载条件。
需要说明的是,时间间隔阈值可以根据需求预先进行设置,比如,该时间间隔阈值可以为5秒、10秒或15秒等等。
在一些实施例中,在天气微件的状态不满足加载条件的情况下,桌面启动器可以执行下述步骤1005的操作。
为了便于理解,现结合图12对桌面启动器判断是否对天气微件进行加载的流程进行说明。其中,桌面启动器可以判断是否记录有上一次加载的时间;若否,即在未记录有上一次加载的时间的情况下,则执行下述步骤1004的操作;若是,即在记录有上一次加载的时间的情况下,桌面启动器获取桌面动画展示结束时的时间;确定天气微件上一次的加载时间与桌面动画结束时的时间之间的时间间隔;判断时间间隔是否大于或等于时间间隔阈值;若是,即在确定时间间隔大于或等于时间间隔阈值的情况下,桌面启动器可以直至执行下述步骤1004的操作;若否,即在确定时间间隔小于时间间隔阈值的情况下,桌面启动器可以直接执行下述步骤1005的操作。
作为一个示例,桌面启动器判断天气微件的状态是否满足加载条件的操作不仅可以包括上述方式,还可以包括其他方式。比如,桌面启动器确定在目标桌面动画展示结束之前的预设时长内天气微件的加载次数;在加载次数小于次数阈值的情况下,确定天气微件的状态满足加载条件。
需要说明的是,该预设时长和次数阈值均可以根据需求预先进行设置,比如,该预设时长可以为2分钟、1分钟或30秒等。次数阈值可以为5次、6次或10次等。
作为一个示例,桌面启动器在天气微件每一次进行加载操作的情况下,可以记录天气微件进行加载的加载时间和加载次数,从而使得桌面启动器能够确定在目标桌面动画展示结束之前的预设时长内天气微件的加载次数。
步骤1004:桌面启动器触发天气微件在桌面主进程中进行加载操作。
作为一个示例,桌面启动器可以调用目标接口,该目标接口用于触发天气微件进行加载操作;天气微件可以通过目标接口在桌面主进程中进行加载操作。
在一种可能的实现方式中,由于目标接口可以通过onDeskVisible函数表示,因此,在该onDeskVisible函数中记载有天气微件的加载操作的情况下,桌面启动器通过调用该目标接口,可以直接触发天气微件执行onDeskVisible函数中的加载操作。
在另一种可能的实现方式中,由于目标接口支持桌面与天气微件之间的通信,即桌面启动器与天气微件之间的通信,因此,桌面启动器也可以通过目标接口向天气微件发送加载消息;天气微件在接收到加载消息的情况下,可以在桌面主进程中进行加载操作。
在一些实施例中,天气微件在桌面主进程中进行加载操作的过程中,还可以从多个显示界面的界面数据中,加载当前的显示界面的界面数据。
由于天气微件上可能会包括多个显示界面,比如,可以包括描述天气情况的界面、描述日程的界面等,且在天气微件中每一次显示一个显示界面。因此,为了加快天气微件的加载速度,天气微件可以从多个显示界面的界面数据中,加载当前的显示界面的界面数据,对于未显示的显示界面的界面数据可以不进行加载。
又由于天气微件每一次加载都会多次对天气信息获取函数(onWeatherChanged函数)进行调用,而每一次对onWeatherChanged函数的调用都会触发对updateUi函数的调用,通过updateUi函数可以对天气微件进行加载,因此,对onWeatherChanged函数的调用次数将会影响到天气微件的加载耗时。而为了降低天气微件的加载耗时,提高天气微件加载的效率,天气微件在加载操作的过程中,可以从多个显示界面的界面数据中,加载当前的显示界面的界面数据。
示例性地,参见图13,在天气微件中包括天气显示界面和卡片显示界面的情况下,由于天气显示界面和卡片显示界面共用一个WidgetHomeView(也可以称为父微件视图),在天气显示界面中设置需要显示两个城市的天气信息的情况下,该天气显示界面中的界面数据中可以包括WidgetHomeView、城市A的天气信息和城市B的天气信息;在卡片显示界面中设置需要显示在两个城市中的日程信息的情况下,卡片显示界面的界面数据中除了包括WidgetHomeView,还可以包括城市A的日程信息和城市B的日程信息。那么在天气微件进行加载的情况下,将会触发6次对onWeatherChanged函数的调用,从而延长了天气微件的加载耗时。若天气微件可以从多个显示界面的界面数据中,加载当前的显示界面的界面数据,那么在当前显示的天气显示界面的情况下,会触发3次对onWeatherChanged函数的调用。由于减少了对onWeatherChanged函数的调用,从而降低了天气微件的加载耗时。
步骤1005:桌面启动器不触发对桌面中的天气微件进行加载的操作。
需要说明的是,本申请实施例中以示出的各个函数为例进行说明,并不对本申请实施例构成限定。
在本申请实施例中,由于可以在结束桌面动画的展示后,触发对微件的加载操作,因此,微件的加载操作与桌面动画的展示操作并不会同时发生,从而改善了展示桌面动画过程中发生的卡顿、掉帧等现象,提高了桌面动画的展示效果。
由于在由第一界面切换至第二界面后,手机的桌面上可能覆盖有其他界面,该种情况下,桌面中的天气微件并不可见,天气微件无论是否加载,也不会影响用户的操作,针对该种情况,本申请实施例提供另一种微件的加载方法,请参考图14,图14中是以运行在桌面主进程中的微件为天气微件为例进行说明。作为示例而非限定,这里以该方法应用于电子设备中,且该方法由图4所示的桌面启动器执行为例进行说明,该方法可以包括如下部分或者全部内容:
步骤1401-步骤1402的操作可以参考上述步骤1001-步骤1002的操作,本申请实施例对此不再进行一一赘述。
步骤1403:在目标桌面动画展示结束后,桌面启动器判断桌面上是否覆盖有其他界面。若否,则执行下述步骤1404的操作,若是,则执行下述步骤1406的操作。
需要说明的是,桌面上覆盖有其他界面的情况可以包括:在显示后台应用界面的情况,或者,通过应用快切操作由应用界面A切换至应用界面B的情况等。
步骤1404:桌面启动器判断是否对天气微件进行加载操作;若是,则执行下述步骤1405的操作,否则执行下述步骤1406的操作。
步骤1405:桌面启动器触发天气微件在桌面主进程中进行加载操作。
步骤1406:桌面启动器不触发对桌面中的天气微件进行加载的操作。
需要说明的是,步骤1404-步骤1406的操作可以参考上述步骤1003-步骤1005的操作,本申请实施例对此不再进行一一赘述。
在本申请实施例中,由于可以在结束桌面动画的展示后,触发对微件的加载操作,因此,微件的加载操作与桌面动画的展示操作并不会同时发生,从而改善了展示桌面动画过程中发生的卡顿、掉帧等现象,提高了桌面动画的展示效果。
为了便于理解本申请实施例,本申请实施例提供了另一种微件的加载方法,请参考图15,图15中是以运行在桌面主进程中的微件为天气微件为例进行说明。作为示例而非限定,这里以该方法应用于电子设备中,电子设备通过图4所示的多个模块交互实现为例进行说明,该方法可以包括如下部分或者全部内容:
步骤1501:桌面启动器接收添加天气微件的添加操作。
步骤1502:天气微件的视图显示在桌面中。
需要说明的是,桌面启动器在接收到天气天气微件的添加操作的情况下,可以触发电子设备中的系统在桌面中显示天气微件的视图,同时,电子设备的系统可以通过应用程序框架层中的类加载天气微件,以在桌面主进程中运行天气微件。
步骤1503:天气微件调用添加视图函数。
由上述可知,该添加视图函数可以为onAttachedToWindow函数。天气微件的视图显示在桌面中后,天气微件可以调用onAttachedToWindow函数。
步骤1504:天气微件进行初始化操作,并在应用框架层中添加目标接口。
由上述可知,天气微件不仅可以在应用程序框架层中添加目标接口,还可以添加天气微件监听模块。添加目标接口和天气微件监听模块的操作可以参考上述操作,本申请实施例对此不在进行一一赘述。
步骤1505:桌面启动器监测桌面的焦点切换情况。
作为一个示例,桌面启动器检测桌面的焦点切换情况可以是指桌面启动器检测在桌面中发生的对界面的切换操作,若切换操作切换后的界面为桌面,或者为覆盖在桌面上且界面透明度为预设透明度的界面,或者在切换操作作用下进行界面切换过程中,桌面作为中间过渡界面显示的情况下,均可以确定焦点切换至桌面中。
步骤1506:桌面启动器在监测到窗口焦点切换至桌面的情况下,展示对应的目标桌面动画。
步骤1507:在目标桌面动画展示结束后,判断是否需要对天气微件进行加载。
步骤1508:若需要对天气微件进行加载,则桌面启动器调用应用框架层中的目标接口。
步骤1509:目标接口触发天气微件进行加载操作。
步骤1510:天气微件调用天气信息获取函数。
步骤1511:天气微件通过调用天气信息获取函数触发界面加载函数。
步骤1512:天气微件通过界面加载函数加载天气微件当前显示的温度、加载最高温度和最低温度、加载天气图标、加载城市名称以及加载城市当前的时间、日期和节气,以完成天气微件的加载。
需要说明的是,上述步骤后1501-步骤1512的操作可以参考上述其他实施例中对应的操作,本申请实施例对此不再进行一一赘述。
在本申请实施例中,由于可以在结束桌面动画的展示后,触发对微件的加载操作,因此,微件的加载操作与桌面动画的展示操作并不会同时发生,从而改善了展示桌面动画过程中发生的卡顿、掉帧等现象,提高了桌面动画的展示效果。
需要说明的是,上述是以电子设备为手机,且手机通过图4所示的多个模块交互实现微件的加载方法为例进行说明,接下来,为了进一步理解本申请实施例,以该方法由电子设备执行,且电子设备的桌面主进程中运行有微件为例进行说明,请参考图16,图16是根据一示例性实施例示出的另一种微件的加载方法流程示意图。作为示例而非限定,该方法可以包括如下部分或者全部内容:
步骤1601:响应于从当前的第一界面向第二界面切换的切换操作,展示目标桌面动画。
需要说明的是,目标桌面动画为从第一界面切换至第二界面的过程中展示的动态画面,其中,第二界面可以为电子设备的桌面,或者,第二界面为显示在桌面上且界面透明度为预设透明度的界面,或者,从第一界面切换至第二界面的过程中桌面为中间过渡界面。
还需要说明的是,第一界面与第二界面是不同的界面,且在第二界面为电子设备的桌面的情况下,第一界面可以为手机的桌面之外的任意一个界面。
由于用户在使用手机的过程中,可能会进行多种多样的操作,因此,根据第一界面的不同以及用户进行的切换操作不同,该显示的第二界面也不同,展示的目标桌面动画也不同。示例性地,该多种情况的说明可以参考上述步骤1002的说明,本申请实施例对此不再进行一一赘述。
步骤1602:在目标桌面动画展示结束后,加载桌面中的目标微件,该目标微件为运行在桌面主进程中的微件。
作为一个示例,在目标桌面动画展示结束后,电子设备加载桌面中的目标微件的操作包括:在目标桌面动画展示结束后,若目标微件在展示目标桌面动画之前未被加载过,则加载目标微件;若目标微件在展示目标桌面动画之前已被加载过,则在目标微件的状态满足加载条件的情况下,加载目标微件。
值得说明的是,通过条件判断来选择是否加载目标微件,从而降低了目标微件的加载频次,节省了桌面主进程的资源。
在一些实施例中,若目标微件在展示目标桌面动画之前已被加载过,则电子设备可以继续判断目标微件的状态是否满足加载条件。
作为一个示例,电子设备判断目标微件的状态是否满足加载条件的操作包括:若目标微件在展示目标桌面动画之前已被加载过,则确定目标微件的上一次的加载时间与目标桌面动画展示结束时的时间之间的时间间隔;在时间间隔大于或等于时间间隔阈值的情况下,确定目标微件的状态满足加载条件。
值得说明的是,通过时间间隔阈值来确定是否对目标微件进行加载,从而降低了目标微件的加载频次,避免了目标微件频繁的进行加载。
需要说明的是,电子设备在加载桌面中的目标微件之后,还可以记录目标微件本次加载的加载时间。
值得说明的是,通过记录本次加载的加载时间,为后续在确定加载的时间间隔的操作提供了数据支持。
在一些实施例中,电子设备判断目标微件的状态是否满足加载条件的操作不仅可以包括上述方式,还可以包括其他方式,比如,若目标微件在展示目标桌面动画之前已被加载过,则电子设备可以确定在目标桌面动画展示结束之前的预设时长内目标微件的加载次数;在加载次数小于次数阈值的情况下,确定目标微件的状态满足加载条件。
在一些实施例中,在加载次数大于或等于次数阈值的情况下,说明目标微件已经加载了很多次,因此,可以确定目标微件的状态不满足加载条件。
需要说明的是,电子设备确定在目标桌面动画展示结束之前的预设时长内目标微件的加载次数的操作可以参考上述步骤1003中桌面启动器确定在目标桌面动画展示结束之前的预设时长内目标微件的加载次数的操作,本申请实施例对此不再进行一一赘述。
值得说明的是,通过不同的方式确定目标微件的状态是否满足加载条件,从而提高了确定是否加载目标微件的方式的丰富性,同时,改善了目标微件频繁加载的问题。
在一些实施例中,电子设备中可以包括目标接口和桌面启动器,如此,在目标桌面动画展示结束后,电子设备加载桌面中的目标微件的操作可以包括:在目标桌面动画展示结束后,桌面启动器调用目标接口,该目标接口用于触发目标微件进行加载操作;目标微件通过目标接口进行加载操作。
需要说明的是,桌面启动器调用目标接口以及目标微件通过目标接口进行加载操作的方式可以参考上述步骤1004的操作,本申请实施例对此不再进行一一赘述。
值得说明的是,通过在目标桌面动画展示结束后,调用目标接口对目标微件进行加载操作,从而不仅实现了对目标微件的加载操作,同时也避免了目标微件的加载操作对目标桌面动画的影响。
在一些实施例中,由于目标微件中可以显示多个显示界面,若每一次在加载目标微件的情况下,均对多个显示界面的界面数据进行加载,那么将会延长对目标微件的加载耗时,因此,为了降低对目标微件的加载耗时,在桌面动画展示结束后,电子设备可以从多个显示界面的界面数据中,加载当前的显示界面的界面数据。
在本申请实施例中,由于可以在结束桌面动画的展示后,触发对微件的加载操作,因此,微件的加载操作与桌面动画的展示操作并不会同时发生,从而改善了展示桌面动画过程中发生的卡顿、掉帧等现象,提高了桌面动画的展示效果。
由上述可知,在由第一界面切换至第二界面后,电子设备的桌面可能会被其他界面覆盖,在该种情况下,电子设备可以按照上述图16所示的方法对目标微件进行加载,也可以按照其他方式进行加载。比如,请参考图17,图17是本申请实施例提供的另一种微件的加载方法,且以电子设备的桌面主进程中运行有微件为例进行说明。作为示例而非限定,这里以该方法应用于电子设备中为例进行说明,该方法可以包括如下部分或者全部内容:
步骤1701:响应于从当前的第一界面向第二界面切换的切换操作,展示目标桌面动画。
步骤1702:在桌面动画展示结束后,获取桌面的显示状态。
需要说明的是,电子设备获取桌面的显示状态的操作包括:确定桌面上是否覆盖有其他界面,该操作可以参考上述步骤1403的操作,本申请实施例对此不再进行一一赘述。
步骤1703:在桌面上覆盖有其他界面的情况下,不触发对桌面中的目标微件进行加载的操作。
在一些实施例中,在桌面上未覆盖有其他界面的情况下,电子设备可以执行上述步骤1602的操作,本申请实施例对此不再进行一一赘述。
在本申请实施例中,由于在桌面上覆盖有其他界面的情况下,目标微件不可见,那么目标微件无论是否加载都不影响用户对电子设备的使用,因此,通过不触发对目标微件的加载,从而避免了目标微件的加载操作对桌面动画的影响。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种微件的加载方法,其特征在于,应用于电子设备中,所述方法包括:
响应于从当前的第一界面向第二界面切换的切换操作,展示目标桌面动画,所述目标桌面动画为从所述第一界面切换至所述第二界面的过程中展示的动态画面,其中,所述第二界面为所述电子设备的桌面,或者,所述第二界面为显示在所述桌面上且界面透明度为预设透明度的界面,或者,从所述第一界面切换至所述第二界面的过程中所述桌面为中间过渡界面;
在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,所述目标微件为运行在桌面主进程中的微件。
2.如权利要求1所述的方法,其特征在于,所述在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,包括:
在所述目标桌面动画展示结束后,若所述目标微件在展示所述目标桌面动画之前未被加载过,则加载所述目标微件;
若所述目标微件在展示所述目标桌面动画之前已被加载过,则在所述目标微件的状态满足加载条件的情况下,加载所述目标微件。
3.如权利要求2所述的方法,其特征在于,所述若所述目标微件在展示所述目标桌面动画之前已被加载过,则在所述目标微件的状态满足加载条件的情况下,加载所述目标微件之前,还包括:
若所述目标微件在展示所述目标桌面动画之前已被加载过,则确定所述目标微件的上一次的加载时间与所述目标桌面动画展示结束时的时间之间的时间间隔;
在所述时间间隔大于或等于时间间隔阈值的情况下,确定所述目标微件的状态满足所述加载条件。
4.如权利要求2或3所述的方法,其特征在于,所述在所述目标桌面动画展示结束后,加载所述桌面中的目标微件之后,还包括:
记录所述目标微件本次加载的加载时间。
5.如权利要求2或3所述的方法,其特征在于,所述若所述目标微件在展示所述目标桌面动画之前已被加载过,则在所述目标微件的状态满足加载条件的情况下,加载所述目标微件之前,还包括:
若所述目标微件在展示所述目标桌面动画之前已被加载过,则确定在所述目标桌面动画展示结束之前的预设时长内所述目标微件的加载次数;
在所述加载次数小于次数阈值的情况下,确定所述目标微件的状态满足所述加载条件。
6.如权利要求1-5中任一项所述的方法,其特征在于,所述电子设备包括目标接口和桌面启动器;
所述在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,包括:
在所述目标桌面动画展示结束后,所述桌面启动器调用目标接口,所述目标接口用于触发所述目标微件进行加载操作;
所述目标微件通过所述目标接口在所述桌面主进程中进行加载操作。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述目标微件包括多个显示界面的界面数据;所述在所述目标桌面动画展示结束后,加载所述桌面中的目标微件,包括:
在所述目标桌面动画展示结束后,从所述多个显示界面的界面数据中,加载当前的显示界面的界面数据。
8.如权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
在所述目标桌面动画展示结束后,获取所述桌面的显示状态;
在所述桌面上覆盖有其他界面的情况下,不触发对所述桌面中的目标微件进行加载的操作。
9.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器,所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,当所述处理器执行所述指令时,所述电子设备用于执行如权利要求1-8中任一项所述的微件的加载方法。
10.一种计算机可读存储介质,用于存储一个或多个程序,其中所述一个或多个程序被配置为被一个或多个处理器执行,所述一个或多个程序包括指令,所述指令使得电子设备执行如权利要求1-8任一所述的微件的加载方法。
CN202211213636.5A 2022-09-30 2022-09-30 微件的加载方法、电子设备及可读存储介质 Active CN116700813B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211213636.5A CN116700813B (zh) 2022-09-30 2022-09-30 微件的加载方法、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211213636.5A CN116700813B (zh) 2022-09-30 2022-09-30 微件的加载方法、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN116700813A true CN116700813A (zh) 2023-09-05
CN116700813B CN116700813B (zh) 2024-05-24

Family

ID=87826374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211213636.5A Active CN116700813B (zh) 2022-09-30 2022-09-30 微件的加载方法、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN116700813B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182426A (zh) * 2013-05-28 2014-12-03 腾讯科技(深圳)有限公司 一种网页更新内容的显示方法和装置
CN105808629A (zh) * 2014-12-31 2016-07-27 广州市动景计算机科技有限公司 一种网页处理方法及装置
CN106886435A (zh) * 2017-01-04 2017-06-23 乐视控股(北京)有限公司 微件的加载方法及装置
CN106909366A (zh) * 2017-01-04 2017-06-30 乐视控股(北京)有限公司 一种微件显示的方法及装置
CN113282212A (zh) * 2021-05-17 2021-08-20 维沃移动通信有限公司 界面显示方法、界面显示装置和电子设备
CN113535019A (zh) * 2021-07-14 2021-10-22 Vidaa美国公司 显示设备及应用图标的显示方法
CN113703937A (zh) * 2021-08-06 2021-11-26 北京小米移动软件有限公司 动画切换方法及装置、存储介质
CN114443194A (zh) * 2021-12-31 2022-05-06 荣耀终端有限公司 显示方法及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182426A (zh) * 2013-05-28 2014-12-03 腾讯科技(深圳)有限公司 一种网页更新内容的显示方法和装置
CN105808629A (zh) * 2014-12-31 2016-07-27 广州市动景计算机科技有限公司 一种网页处理方法及装置
CN106886435A (zh) * 2017-01-04 2017-06-23 乐视控股(北京)有限公司 微件的加载方法及装置
CN106909366A (zh) * 2017-01-04 2017-06-30 乐视控股(北京)有限公司 一种微件显示的方法及装置
CN113282212A (zh) * 2021-05-17 2021-08-20 维沃移动通信有限公司 界面显示方法、界面显示装置和电子设备
CN113535019A (zh) * 2021-07-14 2021-10-22 Vidaa美国公司 显示设备及应用图标的显示方法
CN113703937A (zh) * 2021-08-06 2021-11-26 北京小米移动软件有限公司 动画切换方法及装置、存储介质
CN114443194A (zh) * 2021-12-31 2022-05-06 荣耀终端有限公司 显示方法及电子设备

Also Published As

Publication number Publication date
CN116700813B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
WO2021057868A1 (zh) 一种界面切换方法及电子设备
CN113434288B (zh) 内存管理的方法及电子设备
CN114327666B (zh) 应用启动方法、装置和电子设备
US20220350602A1 (en) Multi-Thread Synchronization Method and Electronic Device
WO2023284415A1 (zh) 电源键误触检测方法及电子设备
WO2022089208A1 (zh) 一种文件拖拽方法及电子设备
US20220358089A1 (en) Learning-Based Keyword Search Method and Electronic Device
CN115348350B (zh) 一种信息显示方法及电子设备
CN113641271B (zh) 应用窗口的管理方法、终端设备及计算机可读存储介质
CN114610419B (zh) 添加widget的方法、装置及计算机可读存储介质
CN115801943B (zh) 显示方法、电子设备及存储介质
CN116700813B (zh) 微件的加载方法、电子设备及可读存储介质
CN116662150B (zh) 应用启动耗时检测方法及相关装置
CN115828227B (zh) 识别广告弹窗的方法、电子设备及存储介质
CN116033333B (zh) 确定位置信息的方法、电子设备及可读存储介质
CN116916093B (zh) 识别卡顿的方法、电子设备及存储介质
CN117215446B (zh) 一种显示方法及电子设备
CN114764300B (zh) 一种窗口页面的交互方法、装置、电子设备以及可读存储介质
CN115562967B (zh) 一种应用程序预测方法、电子设备及存储介质
CN116204093B (zh) 一种页面显示方法及电子设备
CN117707718A (zh) 进程管理的方法、电子设备及可读存储介质
CN116661987A (zh) 内存申请方法和电子设备
CN116702701A (zh) 字重调节方法、终端及存储介质
CN117707719A (zh) 进程管理的方法、电子设备及可读存储介质
CN116668997A (zh) 定位方法、用户界面及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant