一种焦点搜索方法、装置及电子设备与流程

文档序号:12789991阅读:231来源:国知局
一种焦点搜索方法、装置及电子设备与流程

本发明涉及智能电视及电视盒技术领域,具体而言,涉及一种焦点搜索方法、装置及电子设备。



背景技术:

在安卓电视(TV)/盒子的交互模式中需要依赖于遥控器或手机,整个的对安卓电视的控制模式是:用户按下遥控器按键或点击手机,电视设备接收到遥控器或手机的信号后解析信号源为按键事件指令集。然后,安卓电视或安卓盒子根据按键事件指令集做出焦点的搜索操作,最后,View在获得焦点后会做出更新视图的响应。其中,View是Android系统的一个超类它是Android系统应用层界面可视化的基本组件单元。现有技术中,安卓电视或安卓盒子的焦点搜索引擎在搜索焦点过程中缺乏记忆机制,每次焦点归位时会重新扫描整个ViewGroup,而且焦点搜索引擎在当前ViewGroup扫描无果的情形下会遍历整个ViewTree,效率低下,容易导致焦点错乱和焦点丢失问题。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种焦点搜索方法、装置以及电子设备,以改善现有技术在进行焦点搜索时,效率低下,容易导致焦点错乱和焦点丢失问题。

本发明实施例提供的一种焦点搜索方法,包括利用在ViewGroup初始化时建立的焦点存档器读取焦点的信息;若读取焦点的信息成功,则控制所述焦点位置改变;若读取焦点的信息失败,且ViewGroup的视图被刷新或ViewGroup内的子View数量发生改变,则利用焦点搜索引擎对焦点View进行搜索,且在焦点搜索引擎搜索成功时将搜索的落焦View存入所述焦点存档器。

本发明还实施例提供一种焦点搜索装置,所述装置包括:读取模块,用于利用在ViewGroup初始化时建立的焦点存档器读取焦点的信息;第一执行模块,用于若读取焦点的信息成功,则控制所述焦点位置改变;第二执行模块,用于若读取焦点的信息失败,且ViewGroup的视图被刷新或ViewGroup内的子View数量发生改变,则利用焦点搜索引擎对焦点View进行搜索,且在焦点搜索引擎搜索成功时将搜索的落焦View存入所述焦点存档器。

本发明还实施例提供一种电子设备,所述电子设备包括:存储器;处理器;及焦点搜索装置,所述焦点搜索装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模块,所述焦点搜索装置包括:读取模块,用于利用在ViewGroup初始化时建立的焦点存档器读取焦点的信息;第一执行模块,用于若读取焦点的信息成功,则控制所述焦点位置改变;第二执行模块,用于若读取焦点的信息失败,且ViewGroup的视图被刷新或ViewGroup内的子View数量发生改变,则利用焦点搜索引擎对焦点View进行搜索,且在焦点搜索引擎搜索成功时将搜索的落焦View存入所述焦点存档器。

与现有技术相比,本发明的焦点搜索方法、装置及电子设备,通过加入利用FIFO算法建立的焦点存档器,可以将View的相关信息进行存储,焦点存档器具有存档、删档和读取的功能,在进行焦点搜索的时候,先利用焦点存档器读取焦点的信息,能够提高焦点的读取速度,若读取焦点的信息失败,再利用电子设备的系统自带焦点搜索引擎进行焦点的搜索,防止焦点丢失。并且焦点搜索引擎搜索到焦点后,先将读取焦点成功的View的相关信息存储进焦点存档器,再利用焦点存档器进行读取,能够防止因视图刷新引发的焦点错乱问题。本发明实施例的搜索方法、装置及电子设备能够提高焦点的搜索效率,还能保证焦点的信息准确性,提高焦点搜索的成功率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明第一实施例提供的电子设备的结构框图。

图2示出了本发明第一实施例提供的电子设备的显示单元内显示的多个View。

图3为本发明第一实施例提供的焦点搜索装置的功能模块示意图。

图4为本发明第一实施例提供的焦点存档器的方框示意图。

图5为本发明第二实施例提供的焦点搜索方法的流程图。

图6为本发明第三实施例提供的焦点搜索方法的流程图。

图标:10-电子设备;101-存储器;102-存储控制器;103-处理器;104-外设接口;105-显示单元;106-音频单元;107-输入输出单元;200-焦点搜索装置;201-读取模块;202-第一执行模块;203-第二执行模块;204-建立模块;205-焦点局部搜索模块;300-焦点存档器。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以+下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

第一实施例

请参考图1,是本发明第一实施例提供的电子设备10的结构框图,本发明实施例提供的焦点搜索装置200可应用于电子设备10中。所述电子设备10可以是,但不限于智能电视、电视盒子等。所述电子设备10的操作系统可以是,但不限于,安卓(Android)系统等。优选的,本发明实施例的电子设备10为安卓电视或安卓盒子。

于本发明实施例中,所述电子设备10还包括存储器101、存储控制器102、处理器103、外设接口104、显示单元105、音频单元106以及输入输出单元107。

所述存储器101、存储控制器102、处理器103、外设接口104、显示单元105、音频单元106以及输入输出单元107,各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述的焦点搜索装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述电子设备10的操作系统(operating system,OS)中的软件功能模块。所述处理器103用于执行存储器101中存储的可执行模块,例如,所述的焦点搜索装置200包括的软件功能模块或计算机程序。

处理器103可能是一种集成电路芯片,具有信号的处理能力。上述的处理器103可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器103也可以是任何常规的处理器等。

所述外设接口104将各种输入/输出装置耦合至处理器103以及存储器101。在一些实施例中,外设接口104,处理器103以及存储控制器102可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

显示单元105在所述电子设备10与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元105可以是液晶显示器或触控显示器。

音频单元106向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。

输入输出单元107用于提供给用户输入数据实现用户与所述电子设备10的交互。所述输入输出单元107可以是,但不限于,遥控器和智能手机等。

所述焦点搜索装置200用于在ViewGroup内进行焦点的搜索,以使获得焦点后的View做出视图更新,并在显示单元105上显示。View和ViewGroup是Android UI的基本组件,ViewGroup是View的基本容器单元,可以包含一组View,并且ViewGroup其本身就是View的扩展,View表示屏幕上的一块矩形区域,负责绘制这个区域和事件处理。

如图2所示,示出了显示单元105内显示的View1-View4的图像,每一个View表示显示单元105(如电视屏幕)上的一块区域,图中的View1-View4可以为一个ViewGroup内的子View。

请参考图3,是本发明第一实施例提供的焦点搜索装置200的功能模块示意图。本实施例中,所述焦点搜索装置200包括建立模块204、读取模块201、第一执行模块202和第二执行模块203。

所述建立模块204,用于依据FIFO算法建立焦点存档器300(请参考图4)。具体的,在ViewGroup初始化的时候建立焦点存档器300,优选的,所述焦点存档器300的容量为ViewGroup的子View数量,ViewGroup的子View数量可以直接通过ViewGroup的数据调取。

请参考图4,为本实施例的所述焦点存档器300的方框图述焦点存档器300用于存储ViewGroup内的子View的相关信息,由于子View的相关信息需要获取焦点的时候才能被所述焦点搜索装置200知晓,故焦点存档器300用于存储落焦View的相关信息。其中,落焦View为曾经获得过焦点的子View。所述落焦View相关信息包括所述落焦View的名称、类型、位置和坐标值。

利用FIFO算法建立的焦点存档器300,具有以队列的方式移动容器元素先淘汰底部元素,然后插入新元素,即先淘汰存入时间最长的落焦View的相关信息,再插入新的落焦View的相关信息,故焦点存档器300具有删档和存档的功能。

请再次参考图3,所述读取模块201,用于利用焦点存档器300读取焦点的信息。读取焦点信息的过程其实就是依据焦点存档器300内存储的落焦View的相关信息,判断是否有能够使焦点落焦的View。在读取时为防止并发带来的内存泄漏风险会采用弱引用(Weak Refernece)来包裹落焦View的对象引用。

所述第一执行模块202,用于所述读取模块201读取焦点的信息成功时,控制所述焦点位置改变。即,使焦点从之前的View移动到此时获取到焦点的View上。

所述第二执行模块203,用于当所述读取模块201读取焦点的信息失败时,且ViewGroup的视图被刷新或ViewGroup内的子View数量发生改变,则利用焦点搜索引擎对焦点View进行搜索。其中,焦点搜索引擎是电子设备10的系统依据就近原则按照逆时针方向进行焦点View的捕获。其中,焦点View为获焦状态为可获得焦点状态,属于ViewGroup的子View。

若焦点搜索引擎搜索成功,焦点搜索成功时将落焦View的相关信息存入所述焦点存档器300。由于在焦点搜索成功后,存在使与焦点匹配的焦点View,此焦点View的相关信息可以被获取,将此焦点View的相关信息存入焦点存档器300,此过程即为落焦View存入所述焦点存档器300。

如此,即使焦点存档器300不能成功读取焦点信息,还可以通过电子设备10的系统自带的焦点搜索引擎再次进行焦点View的搜索,找出能使焦点成功落焦的View,一方面可有效防止焦点信息刷新带来的存档器搜索失效问题,另一方面,可以使焦点存档器300更加完善,具有自我学习的功能,为下次搜索焦点的时候提供方便。

本发明实施例中,所述焦点搜索装置200还包括焦点局部搜索模块205,用于在所述ViewGroup内进行焦点局部搜索。具体的,依据ViewGroup内的子View的数量进行判断,若子View的数量为0,则终止焦点局部搜索;若子View的数量大于0,且所有子View的获焦状态为不可获得焦点状态(focusable=false),则终止焦点局部搜索;若子View的数量大于0,且存在焦点View,焦点View为可获得焦点的子View,则利用所述焦点存档器300读取焦点的信息。

第二实施例

请参考图5,是本发明第二实施例提供的焦点搜索方法的流程示意图。需要说明的是,本发明所述的焦点搜索方法并不以图5以及以下所述的具体顺序为限制。应当理解,在其它实施例中,本发明所述的焦点搜索方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图5所示的具体流程进行详细阐述。请参阅图5,所述焦点搜索方法包括:

步骤S101,焦点存档器300读取焦点的信息是否成功?

读取模块201利用焦点存档器300对焦点的信息进行读取,判断读取焦点的信息是否成功,即所述焦点存档器300内是否有可以使焦点成功落焦的View。所述焦点存档器300存储有多个落焦View的相关信息,落焦View为曾经获得过焦点的子View,落焦View相关信息包括所述落焦View的名称、类型、位置和坐标值。

如果焦点存档器300读取焦点的信息成功,则进行步骤S102,如果读取失败,则进行步骤S103。

步骤S102,当焦点存档器300读取焦点的信息成功后,焦点存档器300内的View成功获得焦点,焦点移至此View,焦点的位移发生改变。本实施例中,所述步骤S102可以由第一执行模块202执行。

需要提到的是,焦点存档器300内获取有焦点的View的相关信息会被删除,防止在下次焦点存档器300读取焦点的信息时,使获取有焦点的View再次获得焦点,发生焦点错乱的问题。

步骤S103,焦点存档器300读取焦点的信息失败时,判断ViewGroup的视图是否被刷新或子View数量发生改变?

由于焦点存档器300存储的是ViewGroup内的子View的相关信息,如果焦点存档器300读取焦点的信息失败,当ViewGroup的视图被刷新或子View数量发生改变时,ViewGroup内也可能存在能够使焦点成功落焦的子View。若ViewGroup的视图没有被刷新或子View数量没有发生改变,则终止焦点的搜索;若ViewGroup的视图被刷新或子View数量发生改变,为了保证搜索的全面、完整,利用焦点搜索引擎对焦点View进行搜索。

步骤S104,焦点搜索引擎对焦点View搜索是否成功?

若焦点搜索引擎对焦点View搜索失败,则终止搜索;若焦点搜索引擎搜到焦点View,并且此焦点能够使焦点成功落焦,则进入步骤S105。

步骤S105,将搜索的落焦View存入所述焦点存档器300。

由于焦点搜索引擎搜索到能够使焦点成功落焦的焦点View,焦点存档器300会将此View的相关信息存储。需要提到的是,将此View的相关信息存储后,再利用焦点存档器300去读取焦点的信息,如此,可以防止因视图刷新引发的焦点错乱问题。

本实施例中,步骤S105可以由第二执行模块203执行。

第三实施例

请参考图6,是本发明第三实施例提供的焦点搜索方法的流程示意图。需要说明的是,本发明所述的焦点搜索方法并不以图6以及以下所述的具体顺序为限制。应当理解,在其它实施例中,本发明所述的焦点搜索方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图6所示的具体流程进行详细阐述。请参阅图6,本实施例的焦点搜索方法与第二实施例的区别在于,本实施例在所述步骤S101之前还包括步骤S106和在步骤S107。

步骤S106,在ViewGroup内进行焦点局部搜索。

具体的,依据焦点搜索引擎可以对ViewGroup内的焦点进行搜索,可以找出所述ViewGroup内是否有可获得焦点的子View。

本实施例中,所述步骤S106可以由焦点局部搜索模块205执行。

步骤S107,子View的数量是否大于0且存在焦点View?

依据ViewGroup内的子View的数量进行判断,若子View的数量为0,则终止焦点局部搜索;若子View的数量大于0,且所有子View的获焦状态为不可获得焦点状态(focusable=false),则终止焦点局部搜索;若子View的数量大于0,且存在焦点View,焦点View为可获得焦点的子View,则利用所述焦点存档器300读取焦点的信息。

需要提到的是,所述焦点存档器300是利用FIFO算法在ViewGroup初始化的时候建立的,第一次利用本实施例的焦点搜索方法进行搜索的时候,所述焦点存档器300内可能没有存储落焦View的相关信息。在子View的数量大于0且局部焦点搜索模块搜索到可以使焦点成功落焦的View时,则将可以使焦点成功落焦的View的相关信息存储到焦点存档器300,再执行步骤101。

综上所述,本发明实施例提供的焦点搜索方法、装置及电子设备,通过加入利用FIFO算法建立的焦点存档器,可以将View的相关信息进行存储,焦点存档器具有存档、删档和读取的功能,在进行焦点搜索的时候,先利用焦点存档器读取焦点的信息,能够提高焦点的读取速度,若读取焦点的信息失败,再利用电子设备的系统自带焦点搜索引擎进行焦点的搜索,防止焦点丢失。并且焦点搜索引擎搜索到焦点后,先将读取焦点成功的View的相关信息存储进焦点存档器,再利用焦点存档器进行读取,能够防止因视图刷新引发的焦点错乱问题。本发明实施例的搜索方法、装置及电子设备能够提高焦点的搜索效率,还能保证焦点的信息准确性,提高焦点搜索的成功率。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1