CN117130698A - 一种菜单显示方法及电子设备 - Google Patents
一种菜单显示方法及电子设备 Download PDFInfo
- Publication number
- CN117130698A CN117130698A CN202310356408.1A CN202310356408A CN117130698A CN 117130698 A CN117130698 A CN 117130698A CN 202310356408 A CN202310356408 A CN 202310356408A CN 117130698 A CN117130698 A CN 117130698A
- Authority
- CN
- China
- Prior art keywords
- interface
- application
- menu
- menu information
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000008569 process Effects 0.000 claims description 25
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000002347 injection Methods 0.000 description 242
- 239000007924 injection Substances 0.000 description 242
- 230000006870 function Effects 0.000 description 41
- 238000013461 design Methods 0.000 description 36
- 239000010410 layer Substances 0.000 description 25
- 238000012545 processing Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 9
- 230000005236 sound signal Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
Abstract
本申请实施例提供一种菜单显示方法及电子设备,应用于终端技术领域,能够解决系统界面中有关第三方应用的菜单有概率未显示的问题,提高了菜单显示的稳定性。该方法包括:启动第一应用后,将待显示在所述第一应用的其中一个界面中的第二应用的菜单信息保存到电子设备的缓存中。若检测到打开第一应用对应的第一界面的操作,且监听到用于指示菜单信息全部载入至缓存中的通知信息,则从缓存中获取用于显示在第一界面的目标菜单信息。然后显示第一界面,第一界面包括目标菜单信息。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种菜单显示方法及电子设备。
背景技术
随着用户需求的提升,电子设备上安装的应用程序(application,APP)越来越多。其中,一些应用程序是电子设备的系统自带的内置程序,可称为系统应用;一些应用程序是用户自行下载的或者电子设备出厂时配置的非官方提供的程序,可称为第三方应用。用户启动系统应用后,在系统界面中可以动态显示与第三方应用相关的菜单,比如系统应用中可以配置有控制第三方应用的一些功能开启和关闭的菜单选项。第三方应用相关的菜单并不是静态显示在系统应用的界面上的,而是会根据第三方应用的配置文件确定是否显示,在确定要显示的情况下在设置界面显示获取到的与该菜单选项对应的数据。
然而实际使用时发现,进入系统界面后有概率出现第三方应用相关的菜单丢失的现象,影响用户使用体验。
发明内容
本申请提供一种菜单显示方法及电子设备,能够解决系统界面中有关第三方应用的菜单概率未显示的问题,提高了菜单显示的稳定性。
第一方面,本申请实施例提供一种菜单显示方法,可应用在电子设备或实现电子设备功能的组件(比如芯片系统)。该方法中,电子设备启动第一应用,在启动过程中或启动后,电子设备将待显示在第一应用的其中一个界面中的第二应用的菜单信息保存到电子设备的缓存中。若检测到打开第一应用对应的第一界面的操作,且监听到用于指示菜单信息全部保存至缓存中的通知信息,则从缓存中获取用于显示在第一界面的目标菜单信息。显示第一界面,第一界面包括目标菜单信息。
基于本申请提供的方法,电子设备通过通知消息确定是否一定能获取到待显示在第一界面上的目标菜单信息。具体的,电子设备将菜单信息保存到缓存中可能存在三种情况,一种是还未开始保存,另一种是还未完全保存完,还有一种是完全保存完毕。针对第一种情况,如果还未开始保存菜单信息,则一定无法从缓存中获取到目标菜单信息。针对第二种情况,如果一部分菜单信息还未保存,则有几率无法从缓存中获取到目标菜单信息,比如目标菜单信息包含在未保存的菜单信息内,则无法获取到目标菜单信息;目标菜单信息包含在已保存的菜单信息内,则可以获取到目标菜单信息。针对第三种情况,如果菜单信息完全保存完毕,则一定可以从缓存中获取到菜单信息。可以理解,电子设备会在第三种情况下监听到通知消息,那么电子设备从缓存中获取目标菜单信息就一定可以获取到,电子设备便可将目标菜单信息显示于第一界面。这样便不会出现菜单不显示的问题,因而菜单显示的稳定性更高,用户的使用体验也更好。
在第一方面的一种可能的设计方式中,第二应用包括未在电子设备的主界面上显示的应用。即第二应用在电子设备的主界面上未设入口,用户无法从主界面上打开第二应用,那么启动第一应用对第二应用的菜单选项进行管理可以是对第二应用的功能进行管理,可以减少主界面上显示的应用数量,使得主界面显示更简洁。
在第一方面的一种可能的设计方式中,在电子设备启动第一应用到检测到打开第一应用对应的第一界面的操作的时间差小于或等于预设时长的情况下,若目标菜单信息未保存到电子设备的缓存中,则在电子设备检测到打开第一应用对应的第一界面的操作之后,该方法还包括:电子设备显示第一界面,第一界面不包括目标菜单信息。
该设计方式下,在启动第一应用到检测到打开第一应用对应的第一界面的操作的时间差小于或等于预设时长的情况下,电子设备显示的第一界面不再发生菜单丢失,而是会进行两次显示。第一次显示第一界面是在检测到通知信息前,即缓存中未保存目标菜单信息,导致电子设备无法从缓存中获取到目标菜单信息,那么目标菜单信息也不会在第一界面显示。第二次显示第一界面是在检测到通知信息后,电子设备又一次从缓存中获取目标菜单信息,由于通知信息指示菜单信息全部保存至缓存,所以在菜单信息全部能从缓存中获取到的情况下,电子设备这一次的获取动作就可以从缓存中获取到目标菜单信息。那么电子设备显示的第二界面中就包含了目标菜单信息。一般来说,菜单信息保存到缓存中的时间在100ms-200ms(毫秒),所以预设时长是100ms-200ms的任意值。在用户对第一应用的界面执行的操作太快,导致需注入至第一界面显示的目标菜单信息尚未保存到缓存中时,电子设备便无法显示目标菜单信息。可能在约几十毫秒后,全部的菜单信息保存完毕,那么电子设备可以接收到通知信息,从缓存中获取目标菜单信息并显示。也就是说约几十毫秒后,电子设备显示的第一界面中包含了目标菜单信息。由于第一界面从未包含目标菜单信息到包含菜单信息的刷新时间非常短,小于全部菜单信息保存到缓存中的时间,与相关技术中需要用户返回第一界面的上一级界面,并重新进入第一界面才可正常显示目标菜单信息相比,本设计方式不会对用户使用注入菜单(目标注入菜单信息)造成困扰,也不会增加用户的操作步骤,所以用户的使用体验较好。
在第一方面的一种可能的设计方式中,在电子设备检测到打开第一应用对应的第一界面的操作之后,该方法还包括:电子设备为每个待显示在第一界面的目标菜单信息设置监听器,监听器用于监听菜单信息的保存进度,在菜单信息全部保存至缓存时,电子设备触发监听器发送通知信息。
该设计方式下,监听菜单信息是否全部保存完毕是通过在缓存设置监听器实现的,具体的,所需显示在第一界面中的N个目标菜单信息对应有N个监听器,这样的好处是实现每个目标菜单信息的单独监听,增加监听容错率。当缓存中数据保存完毕,监听器发送回调(通知信息),则说明电子设备可以从缓存中获取到目标注入菜单信息,响应于通知信息,电子设备从缓存中获取到目标注入菜单信息。本设计方式通过注册监听器可以实时检测到缓存中的数据进度,以便于更快获取到目标注入菜单信息,并基于目标注入菜单信息刷新第一界面,使得第一界面不会有菜单丢失。
在第一方面的一种可能的设计方式中,在显示第一应用对应的第一界面之后,该方法还包括;若目标菜单信息待显示在第一界面的菜单组中,则记录菜单组的分组标识。显示第一界面,第一界面包括目标菜单信息,包括:显示第一界面,第一界面中与分组标识对应的菜单组中包括目标菜单信息。
在该设计方式下,第一界面中显示的目标菜单信息显示在菜单组内,每个菜单组显示至少一个菜单选项。通过对目标菜单信息进行分组可以提高第一界面的呈现效果。记录菜单组的分组标识的目的在于,当打开第一界面后,未获取到目标菜单信息,电子设备会删除目标菜单信息在第一界面上对应的菜单选项,使得排列在目标菜单信息之后的其他菜单选项上移,让界面的呈现效果好。当目标菜单信息的菜单选项被删除后,电子设备重新获取目标菜单信息也无法确定该显示于哪一菜单组。所以电子设备可以在检测到用户打开第一界面的操作后,就记录菜单组的分组标识,以便于当目标菜单信息对应的菜单选项被删除后需要恢复时,可以通过其归属的菜单组的分组标识确定被删除的菜单选项归属于哪一菜单组,将其放置至原有的菜单组中,便可避免第一界面中的菜单分布位置的变化度高,引起用户因画面突变产生的不适感。
在第一方面的一种可能的设计方式中,将待显示在第一应用的其中一个界面中的第二应用的菜单信息保存到电子设备的缓存中,包括:电子设备调用第一应用的第一线程获取电子设备中安装的多个应用程序的配置信息。然后电子设备调用第一线程根据应用程序的配置信息确定应用程序为第二应用。电子设备调用第一线程将应用程序对应的配置信息中的菜单信息保存到缓存中。
该设计方式下,电子设备可以在线程中进行保存菜单信息的处理操作,具体的,电子设备调用第一线程从电子设备中安装的多个应用程序的配置信息中确定应用程序是否为第二应用,配置信息可用于指示应用程序是否是第二应用,这样第二应用是指需将菜单信息待显示在第一应用的其中一个界面的应用。确定出第二应用后,电子设备调用第一线程将第二应用的菜单信息保存到缓存中,以便于用户打开第一应用的任一界面,电子设备都能从缓存中获取界面对应的菜单信息并显示于界面上。也就是说,第二应用的菜单信息是第一应用的任一界面上显示的注入菜单信息,第二应用的菜单信息可以显示于同一界面,也可显示于不同界面,不同界面可以是两个同一级别的界面,也可以是不同级别的界面。以启动第一应用所显示的界面为第一级界面为例,当点击第一级界面的菜单选项后,可以进入第二级界面,不同菜单选项对应不同的第二级界面。第二应用的菜单信息可以是不同的两个第二级界面显示的信息,那么可称第二应用的菜单信息显示于同一级别的不同界面。第二应用的菜单信息也可以是第一级界面和第二级界面显示的信息,那么可称第二应用的菜单信息显示于不同级别的界面。
在第一方面的一种可能的设计方式中,电子设备显示第一界面,第一界面不包括目标菜单信息,包括:电子设备调用第一应用的第二线程从缓存中获取目标菜单信息。如果电子设备确定未获取到目标菜单信息,那么电子设备显示第一界面,第一界面不包括目标菜单信息。
该设计方式下,电子设备可以在第二线程中进行从缓存提取信息的处理操作,其中,第二线程与第一线程是不同的线程,那么电子设备提取信息的处理操作和电子设备存信息进缓存的处理操作可以并行实施,即电子设备可以一边将信息存入缓存中,一边从缓存中获取数据,以提高处理速度。由于两个线程的处理操作是并行的,可能出现第一线程还未将目标菜单信息放入缓存中,第二线程就从缓存中获取目标菜单信息,导致菜单丢失的问题。当菜单丢失,电子设备显示的第一界面就不包括目标菜单信息,那么用户也无法在第一界面执行针对目标菜单信息的操作。
在第一方面的一种可能的设计方式中,上述电子设备从缓存中获取用于显示在第一界面的目标菜单信息,包括:电子设备调用第一应用的主线程从缓存中获取用于显示在第一界面的目标菜单信息。
其中,主线程是不同于第一线程、第二线程的线程,主线程可用于显示或刷新界面以及处理界面上的输入事件(如点击事件、滚动事件、拖拽事件等)。当第二线程未获取到目标菜单信息,第二线程会移除目标菜单信息对应在第二界面的菜单选项,使得第一界面不显示目标菜单信息。所以主线程会再一次从缓存中获取目标菜单信息,目的是避免第二线程是在目标菜单信息还未保存到缓存中就从缓存中获取信息,导致未获取到信息造成的菜单丢失。该设计方式下采用主线程的目的是,主线程可与第二线程并行,在第二线程的处理过程中,若检测到通知信息,主线程可直接从缓存中获取目标菜单信息并进行显示,而不用等第二线程将任务处理完毕后再获取目标菜单信息,因而任务处理效率更高。
在第一方面的一种可能的设计方式中,第一应用包括系统设置应用;电子设备启动第一应用,包括:在系统设置应用的进程未启动的状态下,电子设备启动系统设置应用。
其中,系统设置应用又称系统应用,是电子设备系统自带的内置程序,设置应用无需在应用市场中下载便配置在电子设备中,因此作为显示第三方应用的注入菜单信息的应用的话通用性更好。由于菜单丢失出现在缓存中还未有目标菜单信息,电子设备便需要从缓存中获取目标菜单信息的情况下,所以当设置应用冷启动时,设置应用的进程刚被创建,还未来得及将菜单信息保存到缓存中,所以容易发生菜单丢失现象。因而针对设置应用冷启动易发生菜单丢失的问题,该设计方式能够起到减少菜单丢失概率,提高菜单显示稳定性的效果,使得用户的使用体验更好。
在第一方面的一种可能的设计方式中,第一界面是检测到针对第二界面中的菜单选项的触发操作后显示的界面,第二界面包括启动第一应用后显示的界面。
本申请提供的设计方式中,第一界面可以是第一应用的任一个界面,例如可以是打开第一应用后显示的界面,可以是对第一应用显示的界面中的菜单选项进行触发,切换至的另一个界面。
该设计方式下,第二界面是启动第一应用后的首界面,第一界面是在首界面上通过一次触发操作可进入的界面。
其中,菜单信息包括菜单名称、描述信息、菜单图标。描述信息用于指示菜单项对应的应用功能的开闭状态。用户可通过菜单名称和描述信息对需要管理的菜单选项进行处理操作。菜单图标可以在一些界面上显示,比如首界面上显示有每个菜单选项的菜单图标,用于帮助用户更快地识别菜单选项,提高用户体验。菜单图标也可以增加菜单选项的视觉吸引力,让用户更容易理解菜单选项的功能。
在第一方面的一种可能的设计方式中,电子设备显示第一界面,第一界面包括目标菜单信息,包括:若目标菜单信息满足显示条件,则电子设备显示第一界面,第一界面包括目标菜单信息。
该设计方式下,电子设备获取到目标菜单信息后,并没有直接显示目标菜单信息,而是判断其是否满足显示条件。比如:显示条件包括:在A地显示,在B地不显示。或者显示条件包括:在m型号电子设备显示,在n型号电子设备不显示等。电子设备通过显示条件确定是否需要显示目标菜单信息,并在目标菜单信息满足显示条件的情况下,显示目标菜单信息。如果目标菜单信息不满足显示条件,则不显示目标菜单信息。
在第一方面的一种可能的设计方式中,第二应用的配置信息包括用于指示第二应用的菜单信息用于在第一应用的其中一个界面中显示的指示信息。
其中,指示信息可以是第二应用与第一应用协商的标识符,那么电子设备启动第一应用后,读取安装的应用程序的配置信息,读取到标识符,则可确定该应用程序是第二应用,该应用程序的菜单信息需要注入至第一应用的界面上显示。该标识符可以是对应于第一应用和第二应用的key值,若应用程序的key值与第一应用相同,则应用程序为第二应用。除了协商标识符外,指示信息也可以是与第一应用相关的配置项,根据第二应用的配置信息中的配置项,确定其有菜单信息需要显示与第一应用的界面中。通过指示信息可以使电子设备快速从安装的多个应用程序中查询到第二应用,因而效率更高。
第二方面,本申请提供一种电子设备,该电子设备包括:处理器、显示屏以及用于存储该处理器可执行指令的存储器,处理器被配置为执行所述指令时,使得电子设备实现如第一方面及其任一种可能的设计方式提供的方法。
第三方面,本申请提供一种电子设备,该电子设备包括:处理器、显示屏以及用于存储该处理器可执行指令的存储器,当计算机指令被处理器执行时,使得处理器执行如下步骤:启动第一应用,在启动过程中或启动后,处理器将待显示在第一应用的其中一个界面中的第二应用的菜单信息保存到处理器的缓存中。若检测到打开第一应用对应的第一界面的操作,且监听到用于指示菜单信息全部保存至缓存中的通知信息,则从缓存中获取用于显示在第一界面的目标菜单信息。显示第一界面,第一界面包括目标菜单信息。
在第三方面的一种可能的设计方式中,在处理器启动第一应用到检测到打开第一应用对应的第一界面的操作的时间差小于或等于预设时长的情况下,若目标菜单信息未保存到处理器的缓存中,则在处理器检测到打开第一应用对应的第一界面的操作之后,该方法还包括:处理器显示第一界面,第一界面不包括目标菜单信息。
在第三方面的一种可能的设计方式中,在处理器检测到打开第一应用对应的第一界面的操作之后,该方法还包括:处理器为每个待显示在第一界面的目标菜单信息设置监听器,监听器用于监听菜单信息的保存进度,在菜单信息全部保存至缓存时,处理器触发监听器发送通知信息。
在第三方面的一种可能的设计方式中,在显示第一应用对应的第一界面之后,该方法还包括;若目标菜单信息待显示在第一界面的菜单组中,则记录菜单组的分组标识。显示第一界面,第一界面包括目标菜单信息,包括:显示第一界面,第一界面中与分组标识对应的菜单组中包括目标菜单信息。
在第三方面的一种可能的设计方式中,将待显示在第一应用的其中一个界面中的第二应用的菜单信息保存到处理器的缓存中,包括:处理器调用第一应用的第一线程获取处理器中安装的多个应用程序的配置信息。然后处理器调用第一线程根据应用程序的配置信息确定应用程序为第二应用。处理器调用第一线程将应用程序对应的配置信息中的菜单信息保存到缓存中。
在第三方面的一种可能的设计方式中,处理器显示第一界面,第一界面不包括目标菜单信息,包括:处理器调用第一应用的第二线程从缓存中获取目标菜单信息。如果处理器确定未获取到目标菜单信息,那么处理器显示第一界面,第一界面不包括目标菜单信息。
在第三方面的一种可能的设计方式中,上述处理器从缓存中获取用于显示在第一界面的目标菜单信息,包括:处理器调用第一应用的主线程从缓存中获取用于显示在第一界面的目标菜单信息。
在第三方面的一种可能的设计方式中,第一应用包括系统设置应用;处理器启动第一应用,包括:在系统设置应用的进程未启动的状态下,处理器启动系统设置应用。
在第三方面的一种可能的设计方式中,第一界面是检测到针对第二界面中的菜单选项的触发操作后显示的界面,第二界面包括启动第一应用后显示的界面。
在第三方面的一种可能的设计方式中,处理器显示第一界面,第一界面包括目标菜单信息,包括:若目标菜单信息满足显示条件,则处理器显示第一界面,第一界面包括目标菜单信息。
在第三方面的一种可能的设计方式中,第二应用的配置信息包括用于指示第二应用的菜单信息用于在第一应用的其中一个界面中显示的指示信息。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
第五方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
第六方面,本申请提供一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。接口电路和处理器通过线路互联。该芯片系统应用于包括通信模块和存储器的电子设备;接口电路用于从存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,电子设备执行如第一方面及任一种可能的实施方式的方法。
可以理解地,上述提供的第二方面,第三方面及其任一种可能的实现方式的电子设备,第四方面的计算机存储介质,第五方面的计算机程序产品,以及第六方面的芯片系统所能达到的有益效果,可参考第一方面及其任一种可能的实施方式中的有益效果,此处不再赘述。
附图说明
图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这三种情况。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样仅用于描述目的,并不对数量和执行次序进行限定,也不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。并且“第一”、“第二”等字样也并不限定一定不同。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”的含义是两个或两个以上。
在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
在电子设备中除了需要有系统应用来调度、监控和维护电子设备系统之外,还需要安装有第三方应用满足用户的各类需求。而一些第三方应用在电子设备桌面上是不具备入口的,即无法在桌面上找到这些第三方应用。那么对这些在桌面上不具备入口的第三方应用的管理可配置到系统应用或其他具有入口的第三方应用中。另外,出于方便用户统一对第三方应用提供的部分功能的权限进行管理的目的,电子设备也可以将桌面上具备入口的第三方应用的管理同样配置到系统应用或其他具有入口的第三方应用中。也就是说,用户针对第三方应用进行管理的相关配置项是否需配置到另外应用中,与第三方应用在桌面上是否具备启动应用的入口并无直接关系。为满足实际需要,可以将电子设备已安装的任意第三方应用的菜单显示至系统应用或其他具有入口的第三方应用的界面中,使得用户进入系统应用的界面或其他具有入口的第三方应用的界面便可根据显示的菜单选项对第三方应用进行管理。
比如,为了更注意用户的隐私性以及个性化操作电子设备的需求,使得第三方应用在用户允许的情况下为用户提供服务,第三方应用提供的部分功能通常需要经过用户同意开启后才可使用。那么对第三方应用的管理可以是:在系统应用或其他具有入口的第三方应用所显示的界面上启动、关闭或调整与菜单选项对应的第三方应用的一些功能权限,比如关闭地图APP的定位功能,开启辅助功能APP的辅助功能,调整天气APP的允许访问位置信息的时间范围等。
在一些实施例中,系统应用或其他具有入口的第三方应用可以是设置应用,即用户进入设置应用的界面(或称设置界面)便可根据显示的菜单选项对对应的第三方应用进行管理。如图1所示,电子设备显示设置界面101,设置界面101是用户启动设置应用后进入的界面中的其中一个,比如,设置界面可以是启动设置应用即可显示的第一级界面,设置界面也可以是用户在第一级界面中执行对一些菜单的触发操作,切换至的第二级界面,设置界面也可以是用户第在二级界面中执行对一些菜单的触发操作,切换至的第三级界面等等。在设置界面101上显示有文件分享APP和智慧出行APP的菜单选项102(或称菜单),用户可通过菜单选项102查看第三方应用的功能开启状态。如图1中文件分享APP的功能开启状态显示为“已关闭”。在设置界面101上用户还可以执行针对菜单选项102的触发操作,使电子设备切换至该菜单选项102对应的下一级界面103,下一级界面103中显示菜单选项对应的第三方应用功能的开关按钮104。用户点击开关按钮104可实现对第三方应用功能的开启和关闭。
而目前存在的问题是,用户进入设置界面后有一定概率遇到菜单丢失的情况,也就是说第三方应用对应的菜单并未显示在设置界面中,那么用户便无法在设置界面上对第三方应用对应的菜单进行管理,大大降低了用户的使用体验。
经研究发现,在设置界面除了上文提到的第三方应用对应的菜单之外,还包括系统应用对应的菜单,而系统应用对应的菜单并不会出现丢失的情况,只有第三方应用对应的菜单有概率丢失。例如文件分享、智慧出行、辅助功能等第三方应用对应的菜单,有概率出现无法在设置界面中显示的问题。对于该问题进行定位后发现,一些第三方应用对应的菜单是以注入菜单的形式显示在设置界面上的,其中注入菜单是指动态传入数据从而显示的菜单,与静态菜单不同的时,注入菜单的显示内容以及显示条件会受到第三方应用的配置文件影响。以智慧出行为例,如果智慧出行APP的配置文件中配置了在A地不支持智慧出行服务,那么用户在A地打开电子设备的设置界面,并不会看到智慧出行对应的菜单。目前来说,第三方应用在设置应用显示菜单一般以注入菜单的方式,以便用户在设置界面对第三方应用进行管理,而正是因为注入菜单需要在用户打开设置界面的短时间内将菜单所对应的数据进行下载,一旦注入失败,菜单便无法显示。
下面结合图2对注入菜单作进一步说明,参考图2,用户可通过下拉主屏幕等方式进入电子设备的搜索页面201,在搜索页面201输入应用名称202。如果该应用名称202对应的应用有注入菜单,那么一种情况下搜索页面会显示该应用所注入至的应用的图标,如图2的(a)中显示有设置图标203,设置图标203对应有应用名称202:文件分享。另一种情况下搜索页面会显示该应用所注入的应用的图标以及该应用的图标,如图2的(b)中显示有设置图标及设置应用名称,智慧出行应用图标及智慧出行应用名称。
上述两种情况中,用户都可以通过点击应用名称202对应的应用所注入至的应用(如设置应用)的图标切换至所注入至的应用显示的界面(如设置界面101)。也就是说,无论应用A在电子设备的桌面上是否配置有可以直接打开应用A的入口,当应用A的一些功能菜单可以在应用B中显示时,启动应用B进入应用B的其中一个界面中,可以对应用A的功能菜单进行设置。因此可以通过该方式确定应用B中显示的菜单是注入菜单还是非注入菜单(或称静态菜单),以及确定各个应用是否对应有注入菜单。
由于注入菜单有概率丢失,而非注入菜单会正常显示,所以当用户启动设置应用,并在点击“更多连接”之后进入设置界面,正常情况下设置界面如图3的界面301所示,界面301中显示有近场通信(nearfieldcommunication,NFC)菜单、文件分享菜单、智慧出行菜单、手机投屏菜单、打印菜单、虚拟专用网络(virtualprivatenetwork,VPN)菜单和加密域名系统(domainnamesystem,DNS)。在菜单丢失的情况下设置界面如图3的界面302所示,界面302中未显示文件分享菜单和智慧出现菜单,说明出现了菜单丢失的情况。这时用户可以点击返回按钮303,返回至界面302的上一显示界面304,并再次点击“更多连接”进入设置界面,直至设置界面如界面301所示后,再在界面301执行针对注入菜单的操作。如此,不仅对用户使用注入菜单造成了困扰,还增加了用户的操作步骤,导致用户的使用体验较差。
为了能够定位到注入菜单有概率丢失,导致无法在界面上显示的问题所在,下面以智慧出行APP在设置应用中显示注入菜单为例,对注入菜单的显示过程进行了分析,如图4所示,电子设备执行S401,S401包括第一应用被冷启动,从而显示第一应用对应的界面1(相当于上述第二界面)。其中,第一应用是设置应用,设置应用被冷启动是指设置应用的进程被关闭后又重新启动进程。界面1可理解为启动设置应用后显示的设置界面中的一个第一级界面,界面1中显示多个一级菜单。然后电子设备执行S402,S402包括将配置信息中获取到的多个应用程序中的至少一个第二应用对应的注入菜单信息保存到缓存中。其中,第二应用的注入菜单信息用于在设置应用的其中一个界面中显示。例如,第二应用包括智慧出行APP、辅助功能APP等,智慧出行APP显示在一级菜单“更多连接”对应的界面中,辅助功能APP显示在一级菜单“无障碍”对应的界面中,二者所注入的界面不同。因而,当用户在界面1执行针对一级菜单“更多连接”的触发操作时,电子设备执行S403,S403包括显示一级菜单“更多连接”对应的界面2(相当于上述第一界面)。其中界面2用于显示一级菜单“更多连接”所包括的二级菜单“智慧出行”、“NFC”、“手机投屏”等。所列出的二级菜单中,“智慧出行”为注入菜单,所以打开界面2之后,电子设备需执行S404,以获取“智慧出行”对应的注入菜单信息并显示在界面2上。S404包括从缓存中获取“智慧出行”对应的注入菜单信息。由于S403并不一定等到S402的所有信息获取后才执行,即可能会出现在缓存执行保存的过程中,用户执行了针对一级菜单“更多连接”的触发操作,使得电子设备切换至界面2,导致一级菜单“更多连接”中的“智慧出行”对应的注入菜单信息还未保存到缓存中。所以电子设备执行S404之后可能存在两种情况,其一是从缓存中获取到“智慧出行”对应的注入菜单信息,那么界面2显示正常;其二是从缓存中未获取到“智慧出行”对应的注入菜单信息,那么界面2显示异常,即“智慧出行”对应的注入菜单信息出现菜单丢失的问题。
为了避免上述提到打开界面2时缓存中未获取到“智慧出行”对应的注入菜单信息,就出现菜单丢失的问题,如图5所示,本申请实施例提供了一种菜单显示方法,应用于电子设备,能够在执行S403打开界面2后,注册监听器来监听缓存中的注入菜单信息(相当于上述菜单信息)何时保存完毕。待保存完毕后,电子设备再次从缓存中获取待显示的目标注入菜单信息(相当于上述目标菜单信息),并显示界面2上的注入菜单。这样便避免了因注入菜单信息尚未保存至缓存中,界面2不显示注入菜单,导致菜单丢失的问题。本申请实施例提高了注入菜单成功显示在界面2的几率,因而用户的使用体验更好。
在一些实施例中,在电子设备启动第一应用到检测到打开第一应用对应的界面2的操作的时间差小于或等于预设时长的情况下,若目标注入菜单信息未保存到电子设备的缓存中,则在电子设备检测到打开第一应用对应的界面2的操作之后,电子设备显示界面2,界面2不包括目标注入菜单信息,而后,当检测到监听器触发的通知信息,确定注入菜单信息保存完毕后,刷新第一界面,使得刷新后的第一界面包括目标注入菜单信息。
具体的,在启动第一应用到检测到打开第一应用对应的界面2的操作的时间差小于或等于预设时长的情况下,电子设备显示的界面2不再发生菜单丢失,而是会进行两次显示。第一次显示界面2是在检测到通知信息前,即缓存中未保存目标注入菜单信息,导致电子设备无法从缓存中获取到目标注入菜单信息,那么目标注入菜单信息也不会在界面2显示。第二次显示界面2是在检测到通知信息后,电子设备又一次从缓存中获取目标注入菜单信息,由于通知信息指示注入菜单信息全部保存至缓存,所以在注入菜单信息全部能从缓存中获取到的情况下,电子设备这一次的获取动作就可以从缓存中获取到目标注入菜单信息。那么电子设备显示的第二界面中就包含了目标注入菜单信息。一般来说,注入菜单信息保存到缓存中的时间在100ms-200ms(毫秒),所以预设时长是100ms-200ms的任意值。在用户对第一应用的界面执行的操作太快,导致需注入至界面2显示的目标注入菜单信息尚未保存到缓存中时,电子设备便无法显示目标注入菜单信息。可能在约几十毫秒后,全部的注入菜单信息保存完毕,那么电子设备可以接收到通知信息,从缓存中获取目标注入菜单信息并显示。也就是说约几十毫秒后,电子设备显示的界面2中包含了目标注入菜单信息。由于界面2从未包含目标注入菜单信息到包含注入菜单信息的刷新时间非常短,小于全部注入菜单信息保存到缓存中的时间,与相关技术中需要用户返回界面2的上一级界面,并重新进入界面2才可正常显示目标注入菜单信息相比,本实施例不会对用户使用注入菜单(目标注入菜单信息)造成困扰,也不会增加用户的操作步骤,所以用户的使用体验较好。
在本申请实施例中,电子设备可以为便携式计算机(如手机)、平板电脑、笔记本电脑、个人计算机(personalcomputer,PC)、可穿戴电子设备(如智能手表)、增强现实(augmented reality,AR)\虚拟现实(virtualreality,VR)设备、车载电脑等设备,以下实施例对该电子设备的具体形式不做特殊限制。
如图6所示,以电子设备是手机为例,手机可以包括处理器610,外部存储器接口620,内部存储器621,通用串行总线(universalserialbus,USB)接口630,充电管理模块640,电源管理模块641,电池642,天线1,天线2,移动通信模块650,无线通信模块660,音频模块670,扬声器670A,受话器670B,麦克风670C,耳机接口670D,传感器模块680,按键690,马达691,指示器692,摄像头693,显示屏694,以及用户标识模块(subscriberidentificationmodule,SIM)卡接口695等。
其中,上述传感器模块680可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器和骨传导传感器等传感器。
可以理解的是,本实施例示意的结构并不构成对手机的具体限定。在另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器610可以包括一个或多个处理单元,例如:处理器610可以包括应用处理器(applicationprocessor,AP),传感集线器(sensorhub),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(imagesignalprocessor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digitalsignalprocessor,DSP),基带处理器,和/或神经网络处理器(neural-networkprocessingunit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器610中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器610中的存储器为高速缓冲存储器。该存储器可以保存处理器610刚用过或循环使用的指令或数据。如果处理器610需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器610的等待时间,因而提高了系统的效率。
在一些实施例中,处理器610可以包括一个或多个接口。接口可以包括集成电路(inter-integratedcircuit,I2C)接口,集成电路内置音频(inter-integratedcircuitsound,I2S)接口,脉冲编码调制(pulsecodemodulation,PCM)接口,通用异步收发传输器(universal asynchronousreceiver/transmitter,UART)接口,移动产业处理器接口(mobileindustryprocessor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriberidentitymodule,SIM)接口,和/或通用串行总线(universalserialbus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备通过GPU,显示屏694,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏694和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器610可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
外部存储器接口620可以用于连接外部存储卡,例如MicroSD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口620与处理器610通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器621可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器621可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如控制电子设备切换界面等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如配置信息)等。此外,内部存储器621可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflashstorage,UFS)等。处理器610通过运行存储在内部存储器621的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。
显示屏694用于显示图像,视频等。该显示屏可以是触摸屏。
本申请实施例中,显示屏694可显示第一界面、第二界面,其中,第一界面是用于显示目标注入菜单信息的界面,第二界面是启动第一应用显示的首界面。显示屏694显示的界面可进行切换,比如响应于用户针对第二界面显示的菜单选项的触发操作,可以将第二界面切换至第一界面。
触摸屏可以有显示屏694和触摸传感器组成,由触摸传感器检测作用于其上或附近的触摸操作,触摸屏将触控数据发送给AP。
该显示屏694包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,LCD),有机发光二极管(organiclight-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode,AMOLED),柔性发光二极管(flexlight-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantumdotlightemittingdiodes,QLED)等。
电子设备可以通过ISP,摄像头693,视频编解码器,GPU,显示屏694以及应用处理器等实现拍摄功能。
ISP用于处理摄像头693反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头693中。
摄像头693用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(chargecoupleddevice,CCD)或互补金属氧化物半导体(complementarymetal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备可以包括N个摄像头693,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备可以支持一种或多种视频编解码器。这样,电子设备可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving pictureexpertsgroup,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
电子设备可以通过音频模块670,扬声器670A,受话器670B,麦克风670C,耳机接口670D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块670用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块670还可以用于对音频信号编码和解码。扬声器670A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器670B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风670C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口670D用于连接有线耳机。外部音频设备(如音响),用于将音频电信号转换成声音信号。
按键690包括开机键,音量键等。马达691可以产生振动提示。指示器692可以是指示灯,可以用于指示充电状态,电量变化等。SIM卡接口695用于连接SIM卡。
以下实施例中的方法均可以在具有上述硬件结构的电子设备中实现。
电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的安卓AndroidTM系统为例,示例性说明电子设备的软件结构。
如图7所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将AndroidTM系统分为四层,从上至下分别为应用程序层,应用程序框架层(简称框架层),安卓运行时(AndroidTMruntime)和系统库以及内核层。
其中,应用程序包可以包括相机,日历、地图、视频、音乐、短信息、图库、通话、设置、导航、桌面助手等应用程序。
本申请实施例中,设置应用可以具备显示其他应用的注入菜单信息的功能。启动设置应用,显示设置应用对应的任一界面,可以对注入菜单信息进行管控,从而调整其他应用的功能。导航、桌面助手等应用可以不在电子设备的主界面上设有入口,即主界面上不显示这些应用,这样可以减少主界面上显示的应用程序的数量。由于其不设入口,所以可以将这些应用相关的信息注入至设置应用中显示,以便在设置应用的界面上对这些应用进行管理。
框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,API)和编程框架。框架层包括一些预先定义的函数。框架层可以包括设置服务、窗口管理器、内容提供器、视图系统、资源管理器、通知管理器、活动管理器等。
本申请实施例中,设置服务用于处理设置应用相关的数据流,例如,启动设置应用后,设置服务可以基于设置应用的调用命令创建线程1,以将满足设置注入条件的第三方应用的注入菜单信息保存到缓存中。用户点击设置应用中的某个第一级菜单,电子设备显示第一级菜单的界面之后,设置服务可以创建线程2,从缓存中获取待显示在第一级菜单的界面的注入应用对应的注入菜单信息。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小、判断是否有状态栏、锁定屏幕、截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被APP访问。这些数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标、图片、布局文件、视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知消息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于下载完成告知和消息提醒。通知管理器还可以管理以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知。通知管理器还可以管理以对话窗口形式出现在屏幕上的通知,例如在状态栏提示文本信息、发出提示音、电子设备振动以及指示灯闪烁。
活动管理器用于管理各个应用程序的生命周期以及导航回退功能,负责AndroidTM的主线程创建,各个应用程序的生命周期的维护。
AndroidTMRuntime包括核心库和虚拟机。AndroidTMRuntime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
如图7所示,系统库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体库(MediaLibraries),三维图形处理库(例如:OpenGLES),二维图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
二维(2D)图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含摄像头驱动,音频驱动,传感器驱动等。其中,摄像头驱动是摄像头的驱动层,主要负责和硬件的交互。比如,摄像头驱动可以启动硬件层的摄像头,被启动的摄像头可以采集图像数据。
下面结合界面显示场景,示例性说明电子设备的软件系统和硬件系统的工作流程。
当用户在触摸传感器上进行触摸操作时,相应的硬件中断被发送至内核层,内核层将触摸操作加工成原始输入事件,原始输入事件例如包括触摸坐标和触摸操作的时间戳等信息。原始输入事件被存储在内核层,应用程序框架层从内核层获取原始输入事件,识别出原始输入事件对应的控件,并通知该控件对应的APP。
例如,上述触摸操作为单击操作,上述控件对应的APP为设置应用,设置应用被单击操作启动后,设置服务可以通过API调用内核层的显示驱动,通过显示驱动控制显示屏694显示设置应用对应的界面1。之后设置服务创建线程1,以将满足设置注入条件的第三方应用的注入菜单信息保存到缓存中。
在界面1中显示有至少一个第一级菜单,第一级菜单同样可通过对应的控件被用户触发而切换至第一级菜单对应的界面2。当进入界面2后,如果线程1已将注入菜单信息保存到缓存中,那么设置服务创建的线程2可以从缓存中获取到界面2所需显示的第三方应用的注入菜单信息,并通过API调用内核层的显示驱动,通过显示驱动控制显示屏694显示第一级菜单对应的界面2,界面2中包括第二级菜单的注入菜单信息。
另一种情况下,线程1未将注入菜单信息保存到缓存中(或称还未开始保存),设置服务会调用主线程直接获取注入菜单信息并显示于界面2。
还有一种情况下,线程1未完全将注入菜单信息保存到缓存中(或称需要在界面2显示的信息尚未保存),设置服务会调用线程2从缓存中获取信息,那么界面2不显示未获取到的注入菜单信息,因而会出现菜单丢失问题。
本申请实施例提供的方法可应用的场景如下所述。
电子设备中至少安装有两个应用,一个应用称为第一应用,用于显示注入菜单信息,另一应用称为注入应用(或称第二应用),能够通过配置注入条件(或称注入规则)将注入菜单信息显示在第一应用的其中一个界面上。
注入条件可配置在每个第三方应用的配置文件中。在第一应用启动后,遍历电子设备中安装的第三方应用的配置文件是否包含注入条件:若包含注入条件,则说明该第三方应用是注入应用,若不包含注入条件,则说明该第三方应用不是注入应用。
再次,第一应用至少有一个界面用于显示第二应用的注入菜单信息,上文实施例是以第一应用的第二级菜单显示第二应用的注入菜单信息为例的,在实际应用中,第一应用的第一级菜单、第三级菜单等都具备显示第二应用的注入菜单信息的能力,可根据实际需要对注入菜单信息显示的界面进行配置。
另外,第一应用至少有一个启动该应用的入口,上文是以在桌面启动第一应用为例进行说明的,实际应用中,通过语音指示、触控操作、手势操作等触发操作启动的应用也可作为能够注入其他应用的注入菜单信息的第一应用,本申请对此并无限制。
还需补充的是,第一应用、第二应用并不仅限于应用程序,也可以是安卓应用程序包(AndroidTMapplicationpackage,APK)。APK和APP的区别在于,APK是AndroidTM系统上的安装包,无需下载便可直接使用,因而在电子设备安装有AndroidTM系统的情况下,第一应用、第二应用可以是电子设备上安装的应用程序以及安装包。
下面以电子设备为手机、第一应用为设置应用为例,并结合附图说明本申请实施例提供的方法。
本申请实施例提供一种菜单显示方法,应用于手机,如图8所示,该方法包括以下步骤:
S801、手机启动第一应用,显示第一应用对应的界面1。
在本实施例中,第一应用为设置应用,设置应用是手机的系统自带的应用,不同于第三方应用,设置应用无需在应用市场中下载便配置在手机中,因此作为显示第三方应用的注入菜单信息的应用的话通用性更好。
在手机执行S801之前,设置应用的进程并未启动,也就是说,手机执行S801的启动操作为一次冷启动。具体的,当设置应用启动时,手机后台没有设置应用的进程,这时手机的系统会重新创建一个新的进程分配给设置应用,所以会先创建和初始化application类(或称应用类),再创建和初始化MainActivity类(或称主活动类),然后显示界面1。不同于冷启动,热启动是指设置应用已被打开的情况下,由于按下返回键、主屏幕home键等操作回到桌面或者切换到其他APP后,再重新打开设置应用。热启动会从已有的进程中来启动,因而热启动无需创建和初始化application类,只需创建和初始化MainActivity类。在设置应用冷启动时,手机会执行下文S802-S803,从而将注入菜单信息保存至缓存中。当信息保存完毕,设置应用热启动时,手机会直接执行S804。
由于注入菜单信息丢失的问题发生于:设置应用的进程刚启动时,有概率出现注入菜单信息尚未保存完毕,导致手机缓存中获取不到目标注入菜单信息的情况,所以本实施例以设置应用冷启动进行举例说明。
在一些实施例中,手机能够启动设置应用的入口可以有多个。如图9所示,手机可以将设置应用的应用图标显示在桌面上,当用户点击设置应用的应用图标,即可启动设置应用,并显示界面1。又如,手机可以在其他应用中打开设置应用,可以语音启动设置应用,可以双击手机的侧边启动设置应用等等,本申请实施例对设置应用的启动方式不做任何限制。
以用户点击桌面上的设置应用的图标为例,当手机后台未创建设置应用的进程的情况下,设置应用被启动,并且会创建主线程,用于显示或刷新界面以及处理界面上的输入事件(如点击事件、滚动事件、拖拽事件等)。除了主线程外,设置应用还会创建子线程1(相当于第一线程)来执行下文S802-S803。
S802、手机获取多个应用程序的配置信息。
如果将管理界面1的服务称为一级菜单模块,那么手机启动界面1后,由一级菜单模块启动子线程1从而获取多个应用程序的配置信息,以便确定应用程序是否有需要注入至设置应用的界面中显示的注入菜单。
本实施例中,多个应用程序可以是手机上安装的所有的APP,包括系统应用(如桌面文件夹launcher)以及第三方应用;包括在桌面上设有启动入口的应用(如天气APP、相机APP),也包括未在桌面上设有启动入口的应用(如文件分享APP)。
每个应用程序都对应有配置信息,配置信息可以是配置文件(如xml文件、config文件),也可以是配置文件中的某个或某些配置项。配置信息配置了应用程序相关的菜单是否需要注入至设置应用的界面中,如应用程序A的菜单需要注入至设置应用的界面中,则应用程序A的配置文件中配置有相关配置项;应用程序B的菜单无需注入至设置应用的界面中,则应用程序B的配置文件中未配置相关配置项。那么手机获取应用程序A的配置文件,和应用程序B的配置文件,根据配置文件是否配置有相关配置项便可从多个应用程序中筛选出注入应用(相当于上文第二应用)。
在一些实施例中,子线程1可以通过包管理packagemanage模块提取所有安装在手机里的应用程序的配置文件,遍历配置文件确定哪些应用满足显示在设置应用界面中的条件,确定好之后执行下文S803。
S803、手机从配置信息中将获取到的多个应用程序中的至少一个第二应用对应的注入菜单信息保存到缓存中。
其中,第二应用是指需要将注入菜单信息显示于设置应用的某个界面上的应用程序。第二应用可以和设置应用协商一个标识符。手机读取标识符便可确定应用程序是第二应用,该标识符可配置于应用程序的配置信息中。该标识符可以是对应于第二应用和配置应用的key值。比如,设置应用的key值为1212,文件分享APP的key值为1212,相机APP的key值为2000,则根据key值可确定文件分享APP是需要注入至设置应用的某个界面的应用。
除了协商标识符以外,手机还可以根据应用程序的配置信息中是否包括与设置应用相关的配置项,确定应用程序是否为第二应用。示例性的,应用程序A的配置信息包括配置项1:显示在设置应用的更多连接菜单界面。应用程序B的配置信息包括配置项2:显示在负一屏页面。则手机可确定应用程序A相关的菜单需要注入至设置应用的界面中,因而手机将多个应用程序(即应用程序A和应用程序B)中的第二应用(即应用程序A)对应的注入菜单信息保存到缓存中。
本步骤中,手机调用线程1将全部第二应用的全部注入菜单信息保存到缓存中,以便于用户打开第一应用的任一界面,手机都能从缓存中获取界面对应的注入菜单信息并显示于界面上。也就是说,当所有需要注入至设置应用的注入菜单信息保存至缓存中后,无论手机显示设置应用的哪一界面,都能在界面中显示出对应的目标注入菜单信息。
其中,缓存是数据交换区,缓存被用于存储子线程1保存的数据,以及用于子线程2拿取数据。若数据不经过缓存直接由处理器(如CPU)从硬盘中读取,则数据的读取速度慢,所以设置缓存的目的在于加快处理器读取数据的效率。当设置应用的进程被关闭后,缓存中的数据清除。因此每次设置应用冷启动时,都需要由设置系统的设置服务创建子线程1将注入菜单信息再保存到缓存中。相应的,如果设置应用的进程一直存在,即并未被关闭,那么缓存中已保存有注入菜单信息,启动设置应用时则无需执行S803。
保存到缓存中的注入菜单信息用于在设置应用的其中一个界面中显示。如图10所示,设置界面上显示第一级菜单“更多连接”和“辅助功能”,用户点击“更多连接”即可打开更多连接菜单对应的界面1,界面1显示有如图10所示的文件分享菜单、智慧出行菜单等第二级菜单。
用户点击“辅助功能”即可打开“辅助功能”菜单对应的界面2。界面2显示如图10所示的无障碍菜单等第二级菜单,用户点击“无障碍”即可打开无障碍菜单对应的界面3,界面3显示有如图10所示的屏幕朗读菜单。注入菜单信息可以是界面1,界面2,界面3显示的内容,如注入菜单信息是界面1中的文件分享菜单、智慧出行菜单,注入菜单信息是界面2中的无障碍菜单,注入菜单信息是界面3中的屏幕朗读菜单。
继续参考图10,注入菜单信息包括菜单名称1001、描述信息1002,或者还包括菜单图标1003。其中,描述信息1002用于指示菜单项对应的应用功能的开闭状态。通过对注入菜单信息执行点击、触摸、拖动等触发操作,可以对第二应用的应用功能进行管理和控制。
S804、响应于针对界面1中的菜单选项的触发操作,手机显示第一应用对应的界面2。
本实施例是以注入菜单信息显示在设置应用的第二级界面为例进行说明的,因此界面2是手机接收到用户针对界面1中的菜单选项的触发操作后,切换至的界面。也就是说,界面2是界面1中的菜单选项展开的第二级界面。
再次参考图10,以菜单选项为“更多连接”为例,那么界面1是显示有更多连接菜单的第一级界面,界面2是点击更多连接菜单后切换至的显示文件分享菜单、智慧出行菜单的第二级界面。其中,第一级界面可理解为启动设置应用后的首界面,第二级界面可理解为在第一级界面上通过一次触发操作可进入的界面。
在实际应用中,界面2可以是启动第一应用进入的界面中的其中一个,即界面2可以是第一级界面、第二级界面、第三级界面,对于注入菜单信息所显示在哪一界面,本实施例并无限制,可根据实际需要进行选择。
下面继续以界面2是第二级界面为例,设置应用对应有多个界面,如图11所示,设置界面包括界面1和界面2,设置应用冷启动时,显示界面1,用户执行针对界面1中的菜单选项的触发操作。手机接收到触发操作,响应于该触发操作,切换至界面2。
执行完S804后,界面2上的静态菜单可直接显示出来,注入菜单需要从缓存中获取到注入菜单信息后才可显示,由于子线程1将所有注入菜单信息保存到缓存中大约需要100ms-200ms的时间,所以根据缓存中是否存在注入菜单信息会存在三种情况,可参考图12。
情况一,缓存中尚未保存有任何注入菜单信息。
在情况一中,子线程1还未开始保存注入菜单信息,所以缓存中还未有任何注入菜单信息,便不会执行后续子线程2获取缓存中的注入菜单信息的步骤。按照现有的机制会由设置应用的主线程从配置信息中获取注入菜单信息。也就是说该情况下手机一共获取了一次注入菜单信息。
情况二,缓存中已保存有所有注入菜单信息。
在情况二中,子线程1已执行完保存所有注入菜单信息的操作,所以缓存中已保存有所有注入菜单信息,那么子线程2会从缓存中获取需显示在第二界面上的注入菜单信息。也就是说该情况下手机获取注入菜单信息的次数同样为1次。
情况三,缓存中保存有部分的注入菜单信息。
在情况三中,子线程1和子线程2执行的步骤是并行的,也就说当子线程1开始保存时,如果界面2打开,则子线程2便可以从缓存中获取。那么当缓存中只保存了部分的注入菜单信息,便可能出现需要显示在第二界面上的注入菜单信息尚未保存到缓存中的问题,所以子线程2去获取数据时便会获取不到。此时子线程2已执行了一次获取动作,所以当未获取到时,第二界面便无法显示未获取到的数据。
为了使方案更具有通用性,无论是上述情况一至情况三中的哪一种,手机都会执行下文S805。但是在情况一和情况二中,由于第二界面中的注入菜单信息本来就会正常显示,所以不存在界面由原来的无法显示注入菜单信息刷新为可以显示注入菜单信息。也就是说,本方案能够在情况三出现的情况下,降低注入菜单信息无法显示的概率,使得菜单显示的更完整。
S805、手机为每个待显示在界面2的至少一个第二应用中的至少一个目标应用对应的目标注入菜单信息设置监听。
其中,目标应用的目标注入菜单信息用于在界面2中显示。如图13所示,手机中安装的应用包括第一应用以及多个应用程序,其中多个应用程序包含有第二应用,第二应用包含有目标应用。与多个应用程序相对应的是配置信息,配置信息包含有注入菜单信息,注入菜单信息与第二应用对应;注入菜单信息包含有目标注入菜单信息,目标注入菜单信息与目标应用对应。所以当切换至界面2时,手机会为需显示在界面2上的目标菜单信息设置监听,也就是说每个目标注入菜单信息都设置有一个监听,监听器的数量与界面2上显示的目标注入菜单信息的数量相对应。
在一些实施例中,监听器是在手机接收到触发操作之后设置的,因为在手机接收到触发操作之后,便可确定需切换至的界面,从而可确定需要在界面上显示的目标注入菜单信息。当然监听器也可以是在显示界面2后设置的,实际运用中可根据需要进行调整。
其中,监听器用于监听注入菜单信息的保存进度,在注入菜单信息全部保存至缓存中时,手机触发监听器发送通知信息。通知信息用于指示注入菜单信息全部保存到缓存中。
S806、若手机监听到通知信息,则手机从缓存中获取目标注入菜单信息。
针对上文提到的情况一,手机进入界面2之前,注入菜单信息尚未开始保存,那么手机进入界面2之后,监听器不会触发,手机的主线程会从配置信息中获取目标注入菜单信息,并将其显示在界面2。
针对上文提到的情况二,手机进入界面2之前,注入菜单信息便已经全部保存到缓存中,那么手机进入界面2之后,监听器也不会触发,手机的子线程2会从缓存中获取目标注入菜单信息,并将其显示在界面2。
针对上文提到的情况三,手机进入界面2之前,注入菜单信息部分保存到缓存中,手机进入界面2之后,子线程2未获取到目标注入菜单信息,界面2出现菜单丢失。由于子线程1仍在保存注入菜单信息,当子线程1将所有注入菜单信息保存完毕时,发送回调。监听器监听到回调(或称子线程1向监听器发送通知信息),手机又一次执行了从缓存中获取目标注入菜单信息的操作。由于本次操作是在所有注入菜单信息保存完毕之后执行的,所以手机可以拿到目标注入菜单信息,并将其显示于界面2。
也就是说,在情况三中,子线程2进行了一次获取操作,主线程进行了一次获取操作,手机一共执行了两次获取操作。在第一次获取操作时,可能出现菜单丢失,第二次获取时,菜单对应的数据被获取到,所以菜单刷新后可恢复。那么当启动设置应用到显示界面2之间的小于或等于预设时长的情况下,也就是满足情况三时,界面2会从不显示目标注入菜单信息刷新为显示目标注入菜单信息。
示例性的,如图14所示,情况一中,子线程1还未开始保存注入菜单信息,所以主线程从配置信息中获取目标注入菜单信息,即手机执行了一次获取操作。情况二中,子线程1已经将所有注入菜单信息保存至缓存中,所以子线程2从缓存中获取目标注入菜单信息,即手机也只执行了一次获取操作。情况三中,子线程1正在保存注入菜单信息但并目标注入菜单信息还未保存至缓存中,所以子线程2未获取到目标注入菜单信息。待监听到通知信息,表示所有注入菜单信息全部保存到缓存中,主线程从缓存中获取目标注入菜单信息,即手机执行了两次获取操作,并保证第二次获取操作是从已保存完毕的注入菜单信息中获取目标注入菜单信息的,从而避免目标应用的菜单丢失。
获取到目标注入菜单信息之后,可以在界面2上显示。其中,界面2可以是设置应用的任一个界面,本申请实施例中,第二应用的注入菜单信息是设置应用的任一界面上显示的注入菜单信息,不同第二应用的注入菜单信息可以显示于同一界面,也可显示于不同界面,不同界面可以是两个同一级别的界面,也可以是不同级别的界面。以启动设置应用所显示的界面为第一级界面为例,当点击第一级界面的菜单选项后,可以进入第二级界面,不同菜单选项对应不同的第二级界面。第二应用的注入菜单信息可以是不同的两个第二级界面显示的信息,那么可称第二应用的注入菜单信息显示于同一级别的不同界面。第二应用的注入菜单信息也可以是第一级界面和第二级界面显示的信息,那么可称第二应用的注入菜单信息显示于不同级别的界面。
以上实施例是以目标注入菜单信息需要显示在界面2为例进行说明的,在实际应用中,获取到目标注入菜单信息之后,还可以执行下文S807。
S807、手机判断是否显示目标注入菜单信息。
其中,S807具体包括:手机根据配置信息判断是否显示目标注入菜单信息,和/或在手机的系统为AndroidTM系统的情况下,手机通过调用目标应用的manifest.xml文件(或称清单文件)读取文件配置的显示条件。
每个应用程序的配置信息中可能配置有显示条件,如显示条件包括:菜单在A地显示,在B地不显示。
手机查询配置信息中是否包含显示条件的配置项,如果不包括显示条件的配置项,那么手机显示目标注入菜单信息。如果包括显示条件的配置项,再根据显示条件进一步判断是否满足显示条件,例如菜单在A地显示,则根据手机的地址在A地可确定目标注入菜单信息需显示。
除了配置信息之外,目标应用的manifest.xml文件也可能配置有显示条件,如显示条件包括:菜单在目标应用未在桌面上设有入口的情况下显示。那么手机获取目标注入菜单信息之后,查询manifest.xml文件中是否包含显示条件的配置项,如果不包括显示条件的配置项,那么手机显示目标注入菜单信息。如果包括显示条件的配置项,再根据显示条件进一步判断是否满足显示条件,例如文件分享应用未在桌面上设有入口,那么可确定目标注入菜单信息需要显示。
在一些实施例中,上述提到的任一个显示条件满足显示的情况下,执行S808。或者在上述提到的配置信息中的显示条件满足显示以及manifest.xml文件中的显示条件满足显示的情况下,执行S808。否则,手机执行S809。
S808、若是,手机在界面2显示目标注入菜单信息。
S809、若否,手机不在界面2显示目标注入菜单信息。
本申请实施例中,目标注入菜单信息不显示在界面2与目标注入菜单信息丢失的含义不同。如图15的(a)所示,界面2是设置应用的第二级界面,在第二级界面中显示有NFC菜单、文件分享菜单、智慧出行菜单、手机投屏菜单、打印菜单、VPN菜单和DNS菜单,其中文件分享菜单、智慧出行菜单是目标注入菜单,且都显示于界面2中。如图15的(a)不同的是,在图15的(b)所示的界面2中,不包含智慧出行菜单,即该菜单并不显示在界面2中。不同于丢失的菜单可以通过退回第一级界面,再进入第二级界面来刷新出丢失的菜单,不显示在界面2的菜单即使退回第一级界面,再进入第二级界面也不会显示。所以图15的(a)对应于S808所述的界面2,图15的(b)对应于S809所述的界面2。
在一些实施例中,手机显示的界面2上会预先设置每个菜单选项的占位,用于指示每个菜单选项的显示位置(包括显示顺序、显示区域)。当界面2无需显示某个目标注入菜单信息时,该目标注入菜单信息所占用的节点会被移除,使得显示顺序在该目标注入菜单信息之后的菜单选项上移。具体如图15的(c)所示,手机投屏菜单、打印菜单、VPN菜单和DNS菜单都向上移动一个占位,使得界面2的呈现效果更好。
以上是以手机获取到目标注入菜单信息,但目标注入菜单信息无需显示在界面2为例进行说明的。在一些实施例中,可能出现子线程2和主线程均为获取到目标注入菜单信息的情况,目标应用未安装在手机中,那么子线程2和主线程都无法获取到目标应用的目标注入菜单信息,若目标注入菜单信息的菜单选项预先在界面2上占位,则会删除该菜单选项,使得界面2的呈现效果更好。
也就是说,手机移除目标注入菜单信息对应的菜单选项可能存在三种情况,第一是未获取到目标注入菜单信息,第二是获取到目标注入菜单信息,但配置信息中有关显示条件的配置项指示该目标注入菜单信息无需显示,第三是获取到目标注入菜单信息,但manifest.xml文件中有关显示条件的配置项指示该目标注入菜单信息无需显示。
上述三种情况外,如果界面2未显示目标注入菜单信息,则说明发生了菜单丢失的问题,由于本实施例可以监听数据是否保存完毕,因而当数据保存完毕后,主线程会再一次获取数据并显示于界面2,使得界面2可以显示目标注入菜单信息。
在一些实施例中,界面2包括多个菜单组,每个菜单组显示至少一个菜单选项,那么当子线程2未获取到目标注入菜单信息,从而移除对应的菜单选项时,主线程重新获取目标注入菜单信息也无法确定该显示于哪一菜单组。
基于此,在目标注入菜单信息待显示于界面2的菜单组中的情况下,手机执行S804之后,手机还执行以下步骤:记录目标注入菜单信息待显示的菜单组的分组标识。其中,该步骤可以与S805同时执行,或者呈先后执行。
记录菜单组的分组标识的目的在于,当子线程2将目标注入菜单信息对应的菜单选项移除后,主线程需要重新创建菜单选项,因此需要确定菜单选项归属于哪一菜单组,从而将菜单选项添加到对应的菜单组中。
如图16所示,NFC菜单、文件分享菜单和智慧出行菜单归属于同一个菜单组,文件分享菜单和智慧出行菜单显示的是目标注入菜单信息。所以在显示界面2之后,主线程分别记录文件分享菜单归属的菜单组和智慧出行菜单归属的菜单组,使得当文件分享菜单的菜单选项被删除或智慧出行菜单的菜单选项被删除后需要恢复菜单选项时,可以通过归属的菜单组的分组标识确定被删除的菜单选项归属于哪一菜单组,将其放置至原有的菜单组中,便可避免界面2中的菜单分布位置的变化度高,引起用户因画面突变产生的不适感。
下面对子线程2删除菜单选项以及主线程记录菜单选项的父节点的具体实施过程进行说明。
手机冷启动设置应用后,子线程1便开始保存注入菜单信息,在保存过程中,用户点击界面1中的更多连接菜单,使手机切换至界面2。在打开界面2后,手机保存每个目标注入菜单信息对应的菜单选项的父节点(对应上文菜单组)。同时子线程2从缓存中获取目标注入菜单信息,由于注入菜单信息尚未保存完,可能出现目标注入菜单信息还未保存到缓存中的情况下,所以子线程2未获取到目标注入菜单信息,子线程2删除目标注入菜单信息对应的菜单选项。
这样一来,目标注入菜单信息对应的菜单选项被删除,所以其父节点为空。那么当监听到通知消息后,主线程还可以通过判断目标注入菜单信息对应的菜单选项的父节点是否为空,以确定该菜单选项是否被删除,在该菜单选项被删除过的情况下,再一次从缓存中获取目标注入菜单信息。也就是说,通过判断每个目标注入菜单信息对应的菜单选项的父节点也可以确定是否需要再一次获取目标注入菜单信息。
综上,本申请实施例提供一种菜单显示方法,在用户打开目标注入菜单信息的菜单选项所对应界面后,手机为每个目标注入菜单信息注册监听,用于监听注入菜单信息是否保存完毕。手机还保存每个目标注入菜单信息的父节点,用于在目标注入菜单信息对应的菜单选项被删除时,仍能通过父节点查询到菜单选项的显示位置。当监听到通知信息,则说明在显示该界面后,子线程1还未将全部注入菜单信息保存至缓存,所以为了防止目标注入菜单信息未获取到,手机会再从缓存中获取目标注入菜单信息,并根据其父节点将其显示于父节点对应的菜单组中。本申请实施例能够在子线程2未获取到目标注入菜单信息的情况下,通过设置监听使得子线程1将所有注入菜单信息保存到缓存后,触发主线程从缓存中获取目标注入菜单信息,以降低菜单丢失概率,因而提高了用户的使用体验。
本申请另一些实施例提供了一种电子设备,该电子设备可以包括:上述显示屏(如触摸屏)、存储器和一个或多个处理器。该显示屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。该电子设备的结构可以参考图6所示的手机的结构。
本申请实施例还提供一种芯片系统,如图17所示,该芯片系统包括至少一个处理器1701和至少一个接口电路1702。处理器1701和接口电路1702可通过线路互联。例如,接口电路1702可用于从其它装置(例如,电子设备的存储器)接收信号。又例如,接口电路1702可用于向其它装置(例如处理器1701)发送信号。
例如,接口电路1702可读取电子设备中存储器中存储的指令,并将该指令发送给处理器1701。当所述指令被处理器1701执行时,可使得电子设备执行上述各实施例中的各个步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中手机执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(readonlymemory,ROM)、随机存取存储器(random accessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种菜单显示方法,其特征在于,应用于电子设备,包括:
启动第一应用;
将待显示在所述第一应用的其中一个界面中的第二应用的菜单信息保存到所述电子设备的缓存中;
若检测到打开所述第一应用对应的第一界面的操作,且监听到用于指示所述菜单信息全部保存至所述缓存中的通知信息,则从所述缓存中获取用于显示在所述第一界面的目标菜单信息;
显示所述第一界面,所述第一界面包括所述目标菜单信息。
2.根据权利要求1所述的方法,其特征在于,在启动所述第一应用到检测到打开所述第一应用对应的第一界面的操作的时间差小于或等于预设时长的情况下,若所述目标菜单信息未保存到所述电子设备的缓存中,则在所述检测到打开所述第一应用对应的第一界面的操作之后,所述方法还包括:
显示所述第一界面,所述第一界面不包括所述目标菜单信息。
3.根据权利要求1或2所述的方法,其特征在于,在检测到打开所述第一应用对应的第一界面的操作之后,所述方法还包括:
为每个待显示在所述第一界面的所述目标菜单信息设置监听器,所述监听器用于监听所述菜单信息的保存进度,在所述菜单信息全部保存至所述缓存时,触发所述监听器发送所述通知信息。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在显示所述第一应用对应的第一界面之后,所述方法还包括;
若所述目标菜单信息待显示在所述第一界面的菜单组中,则记录所述菜单组的分组标识;
所述显示所述第一界面,所述第一界面包括所述目标菜单信息,包括:
显示所述第一界面,所述第一界面中与所述分组标识对应的菜单组中包括所述目标菜单信息。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述将待显示在所述第一应用的其中一个界面中的第二应用的菜单信息保存到所述电子设备的缓存中,包括:
调用所述第一应用的第一线程获取所述电子设备中安装的多个应用程序的配置信息;
调用所述第一线程根据所述应用程序的配置信息确定所述应用程序为第二应用;
调用所述第一线程将所述应用程序对应的配置信息中的菜单信息保存到缓存中。
6.根据权利要求2所述的方法,其特征在于,所述显示所述第一界面,所述第一界面不包括所述目标菜单信息,包括:
调用所述第一应用的第二线程从所述缓存中获取所述目标菜单信息;
确定未获取到所述目标菜单信息,显示所述第一界面,所述第一界面不包括所述目标菜单信息。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述从所述缓存中获取用于显示在所述第一界面的目标菜单信息,包括:
调用所述第一应用的主线程从所述缓存中获取用于显示在所述第一界面的所述目标菜单信息。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述第一应用包括系统设置应用;所述启动第一应用,包括:
在所述系统设置应用的进程未启动的状态下,启动系统设置应用。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述第一界面是检测到针对第二界面中的菜单选项的触发操作后显示的界面,所述第二界面包括启动所述第一应用后显示的界面。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述显示所述第一界面,所述第一界面包括所述目标菜单信息,包括:
若所述目标菜单信息满足显示条件,则显示所述第一界面,所述第一界面包括所述目标菜单信息。
11.根据权利要求1-10中任一项所述的方法,其特征在于,所述第二应用的配置信息包括用于指示所述第二应用的菜单信息用于在所述第一应用的其中一个界面中显示的指示信息。
12.一种电子设备,其特征在于,包括:处理器、显示屏以及用于存储所述处理器可执行指令的存储器,所述处理器被配置为执行所述指令时,使得所述电子设备实现如权利要求1至11中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在所述电子设备上运行时,使得所述电子设备执行如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310356408.1A CN117130698A (zh) | 2023-03-29 | 2023-03-29 | 一种菜单显示方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310356408.1A CN117130698A (zh) | 2023-03-29 | 2023-03-29 | 一种菜单显示方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117130698A true CN117130698A (zh) | 2023-11-28 |
Family
ID=88855294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310356408.1A Pending CN117130698A (zh) | 2023-03-29 | 2023-03-29 | 一种菜单显示方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130698A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678298A (zh) * | 2012-08-30 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种信息展示方法和设备 |
CN104793966A (zh) * | 2014-01-21 | 2015-07-22 | 中国科学院声学研究所 | 一种Android本地应用的显示加载方法及系统 |
CN114518817A (zh) * | 2022-01-10 | 2022-05-20 | 荣耀终端有限公司 | 一种显示方法、电子设备及存储介质 |
CN114816167A (zh) * | 2022-05-23 | 2022-07-29 | 荣耀终端有限公司 | 应用图标的显示方法、电子设备及可读存储介质 |
-
2023
- 2023-03-29 CN CN202310356408.1A patent/CN117130698A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678298A (zh) * | 2012-08-30 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种信息展示方法和设备 |
CN104793966A (zh) * | 2014-01-21 | 2015-07-22 | 中国科学院声学研究所 | 一种Android本地应用的显示加载方法及系统 |
CN114518817A (zh) * | 2022-01-10 | 2022-05-20 | 荣耀终端有限公司 | 一种显示方法、电子设备及存储介质 |
CN114816167A (zh) * | 2022-05-23 | 2022-07-29 | 荣耀终端有限公司 | 应用图标的显示方法、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112291764B (zh) | 一种内容接续系统 | |
CN113553130B (zh) | 应用执行绘制操作的方法及电子设备 | |
CN112860145B (zh) | 一种应用的控制方法与电子设备 | |
CN115756268A (zh) | 跨设备交互的方法、装置、投屏系统及终端 | |
CN113709026B (zh) | 即时通信消息的处理方法、设备、存储介质和程序产品 | |
CN115017534A (zh) | 文件处理权限控制方法、装置及存储介质 | |
CN113656089B (zh) | 应用程序中的类验证方法和装置 | |
CN116700601B (zh) | 内存优化方法、设备及存储介质 | |
WO2023005751A1 (zh) | 渲染方法及电子设备 | |
CN116028148A (zh) | 一种界面处理方法、装置及电子设备 | |
CN117130698A (zh) | 一种菜单显示方法及电子设备 | |
CN111787157A (zh) | 移动终端及其操作响应方法 | |
CN111159734A (zh) | 通信终端及多应用数据互访处理方法 | |
CN113642010A (zh) | 一种获取扩展存储设备数据的方法及移动终端 | |
CN116048829B (zh) | 接口调用方法、设备及存储介质 | |
CN116089320B (zh) | 垃圾回收方法和相关装置 | |
WO2024037346A1 (zh) | 页面管理方法及电子设备 | |
WO2023061298A1 (zh) | 一种图片备份系统、方法与设备 | |
CN116743908B (zh) | 壁纸显示方法及相关装置 | |
CN115567666B (zh) | 屏幕录制方法、电子设备及可读存储介质 | |
CN111142648B (zh) | 一种数据处理方法和智能终端 | |
WO2022247664A1 (zh) | 图形界面显示方法、电子设备、介质以及程序产品 | |
CN117857646A (zh) | 数据网络共享方法、电子设备及存储介质 | |
CN117707242A (zh) | 温度控制方法及相关装置 | |
CN117724825A (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 |