[發(fā)明專利]字節(jié)流狀態(tài)機的構建方法及裝置、電子設備、存儲介質有效
| 申請?zhí)枺?/td> | 202111147835.6 | 申請日: | 2021-09-29 |
| 公開(公告)號: | CN113609344B | 公開(公告)日: | 2022-01-14 |
| 發(fā)明(設計)人: | 任志勇 | 申請(專利權)人: | 北京泰迪熊移動科技有限公司 |
| 主分類號: | G06F16/901 | 分類號: | G06F16/901;G06F16/903 |
| 代理公司: | 北京樂知新創(chuàng)知識產權代理事務所(普通合伙) 11734 | 代理人: | 江宇 |
| 地址: | 100085 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 字節(jié) 狀態(tài)機 構建 方法 裝置 電子設備 存儲 介質 | ||
本發(fā)明涉及數(shù)據(jù)處理領域,具體涉及一種字節(jié)流狀態(tài)機的構建方法及裝置、電子設備、存儲介質,所述方法包括:構建包含多個字符串的字典樹;確定各節(jié)點的最長后綴節(jié)點及所述各節(jié)點在字節(jié)流狀態(tài)機中的位置,并根據(jù)所述最長后綴節(jié)點確定對應節(jié)點的偏移量和狀態(tài)轉移節(jié)點;對所述字典樹的節(jié)點進行廣度優(yōu)先前序遍歷,以生成字節(jié)流狀態(tài)機的字節(jié)流節(jié)點信息。該方法通過字節(jié)流的方式生成狀態(tài)機的節(jié)點數(shù)據(jù),其中節(jié)點數(shù)據(jù)能夠非間斷性的連續(xù)進行存儲,能夠節(jié)省系統(tǒng)的存儲空間,尤其是對內存占用較為敏感的智能終端等設備,能夠極大的提高設備的性能。
技術領域
本發(fā)明涉及數(shù)據(jù)處理領域,具體涉及一種字節(jié)流狀態(tài)機的構建方法及裝置、電子設備、存儲介質。
背景技術
狀態(tài)機是由狀態(tài)寄存器和組合邏輯電路構成的,能夠根據(jù)控制信號按照預先設定的狀態(tài)進行狀態(tài)轉移,并協(xié)調相關信號動作、完成特定操作的控制中心。狀態(tài)機可以對多個狀態(tài)進行管理,每個狀態(tài)都有自身實現(xiàn)業(yè)務的能力,通過狀態(tài)機來切換一組狀態(tài)。在以安卓系統(tǒng)為例的智能設備中,可以通過狀態(tài)機維護系統(tǒng)中每一個業(yè)務的狀態(tài)及執(zhí)行狀態(tài)切換、狀態(tài)保持等事項。例如Launcher(安卓系統(tǒng)中的桌面啟動器)主頁的下拉菜單選項中設置有數(shù)據(jù)、WLAN、手電筒、聲音、藍牙等按鈕,當例如藍牙開關按鈕被觸發(fā)時,安卓的系統(tǒng)狀態(tài)機切換狀態(tài)至藍牙的狀態(tài)機。在安卓系統(tǒng)中所有的功能模塊通過有機組合形成一個樹結構的狀態(tài)機,通過該樹結構狀態(tài)機可以針對用戶的觸發(fā)請求而執(zhí)行相應的操作。
在樹結構的狀態(tài)機中,相關數(shù)據(jù)以雙數(shù)組字典樹的結構進行存儲,由于數(shù)據(jù)間的字符編碼的不連續(xù)性而需要占用較大的內存空間,因而在對如智能終端等對內存占用較為敏感的設備中可能存在導致性能降低的問題。因此,有必要提供一種能夠降低內存占用空間,提高設備運行能力的狀態(tài)機。
發(fā)明內容
本發(fā)明的目的在于提供一種字節(jié)流狀態(tài)機的構建方法及裝置、電子設備、存儲介質,進而至少在一定程度上克服由于相關技術的限制和缺陷而導致過度占用設備運行內存而導致性能下降的問題。
根據(jù)本發(fā)明的一個方面,提供一種字節(jié)流狀態(tài)機的構建方法,包括以下步驟:
構建包含多個字符串的字典樹;其中,所述字符串中各字符對應存儲于所述字典樹的節(jié)點,所述節(jié)點表示由根節(jié)點到該節(jié)點途徑字符組成的字符串;
確定各節(jié)點的最長后綴節(jié)點及所述各節(jié)點在字節(jié)流狀態(tài)機中的位置,并根據(jù)所述最長后綴節(jié)點確定對應節(jié)點的偏移量和狀態(tài)轉移節(jié)點;
對所述字典樹的節(jié)點進行廣度優(yōu)先前序遍歷,以生成字節(jié)流狀態(tài)機的字節(jié)流節(jié)點信息。
在一示例性實施例中,所述確定各節(jié)點的最長后綴節(jié)點包括:
在所述節(jié)點與所述根節(jié)點相連接的情況下,確定所述根節(jié)點為所述節(jié)點的最長后綴節(jié)點。
在一示例性實施例中,所述字典樹包括根節(jié)點和多個節(jié)點,所述確定各節(jié)點的最長后綴節(jié)點:
在所述節(jié)點未與所述根節(jié)點相連接的情況下,根據(jù)所述節(jié)點的父節(jié)點的最長后綴節(jié)點確定所述節(jié)點的最長后綴節(jié)點;其中,依次相連接的兩個節(jié)點分別為父節(jié)點與子節(jié)點。
在一示例性實施例中,所述根據(jù)所述節(jié)點的父節(jié)點的最長后綴節(jié)點確定所述節(jié)點的最長后綴節(jié)點包括:父節(jié)點的最長后綴節(jié)點包含與所述節(jié)點相同的子節(jié)點的情況下,確定該子節(jié)點為所述節(jié)點的后綴節(jié)點。
在一示例性實施例中,所述字節(jié)流節(jié)點包括字符串的類型信息和地址信息。
在一示例性實施例中,所述確定所述各節(jié)點在字節(jié)流狀態(tài)機中的位置包括:
以根節(jié)點為初始位置,確定當前節(jié)點位置為上一節(jié)點位置與所述當前節(jié)點的存儲大小之和。
在一示例性實施例中,所述字節(jié)流狀態(tài)機的構建還包括:將所述字節(jié)流節(jié)點寫入文件并進行存儲。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京泰迪熊移動科技有限公司,未經北京泰迪熊移動科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111147835.6/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





