一種數(shù)據(jù)處理方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及Android系統(tǒng)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法、裝置及系統(tǒng),該方法為,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令;根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù);指示數(shù)據(jù)采集設(shè)備基于數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果;分別對(duì)數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果;將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序,這樣,可以支持多個(gè)應(yīng)用程序同時(shí)獲取數(shù)據(jù),并且,進(jìn)行處理后再發(fā)送給相應(yīng)的應(yīng)用程序,使得各個(gè)應(yīng)用程序不會(huì)受到數(shù)據(jù)采集設(shè)備對(duì)數(shù)據(jù)采集結(jié)果的限制,而獲得符合本身業(yè)務(wù)需求的數(shù)據(jù)。
【專利說明】
一種數(shù)據(jù)處理方法、裝置及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及Android系統(tǒng)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]目前,在基于Android系統(tǒng)的許多應(yīng)用場(chǎng)景中,有越來越多的應(yīng)用程序需要同時(shí)去獲取并處理數(shù)據(jù),例如,獲取MIC采集到的音頻數(shù)據(jù)或camera采集到的視頻數(shù)據(jù),進(jìn)而對(duì)數(shù)據(jù)進(jìn)行各種分析處理。例如,用戶通過一個(gè)應(yīng)用程序進(jìn)行視頻聊天,同時(shí)需要通過另一個(gè)應(yīng)用程序進(jìn)行人臉識(shí)別;又例如,用戶通過一個(gè)應(yīng)用程序進(jìn)行語音聊天,同時(shí)有另一個(gè)應(yīng)用程序同時(shí)需要采集語音數(shù)據(jù)用于語音識(shí)別或聲紋處理。
[0003]但是,現(xiàn)有技術(shù)下,Android原生框架并不支持這種應(yīng)用場(chǎng)景和需求。也就是說,同一時(shí)刻,對(duì)于采集到的視頻數(shù)據(jù),只能有一個(gè)應(yīng)用程序獲取并進(jìn)行處理,并且,Android應(yīng)用程序不能隨意設(shè)置視頻數(shù)據(jù)的參數(shù),例如,視頻的分辨率和幀率,只能設(shè)置camera硬件支持的分辨率和幀率,這樣,應(yīng)用程序不能獲取到符合業(yè)務(wù)所需的分辨率和幀率的視頻數(shù)據(jù)。同樣地,同一時(shí)刻,對(duì)于同一個(gè)MIC,Android系統(tǒng)中只允許一個(gè)應(yīng)用程序與它建立連接并獲取到采集的音頻數(shù)據(jù),并且,應(yīng)用程序也無法隨意設(shè)置音頻數(shù)據(jù)的參數(shù),例如,音頻的采樣率和聲道數(shù),也就不能獲取到所需的采樣率和聲道數(shù)的音頻數(shù)據(jù),這樣就無法滿足實(shí)際業(yè)務(wù)場(chǎng)景中多個(gè)應(yīng)用程序同時(shí)獲取數(shù)據(jù)的需求。
[0004]由此可見,現(xiàn)有技術(shù)下,在Android系統(tǒng)中,不支持多個(gè)應(yīng)用程序同時(shí)獲取數(shù)據(jù)并進(jìn)行處理。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法、裝置及系統(tǒng),以解決現(xiàn)有技術(shù)中不能支持多個(gè)應(yīng)用程序同時(shí)獲取數(shù)據(jù)并進(jìn)行處理的問題。
[0006]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0007]—種數(shù)據(jù)處理方法,包括:
[0008]接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令;
[0009]根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù);
[0010]指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收上述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果;
[0011 ]分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果;
[0012]將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
[0013]本發(fā)明實(shí)施例中,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令;根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù);指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收上述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果;分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果;將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序,這樣,可以支持多個(gè)應(yīng)用程序同時(shí)獲取數(shù)據(jù),并且,根據(jù)每一個(gè)數(shù)據(jù)處理命令,將數(shù)據(jù)采集結(jié)果進(jìn)行相應(yīng)處理后,再發(fā)送給相應(yīng)的應(yīng)用程序,可以使得各個(gè)應(yīng)用程序獲得符合本身業(yè)務(wù)需求的數(shù)據(jù)。進(jìn)一步地,本發(fā)明實(shí)施例中的數(shù)據(jù)處理方法,可以靈活適配到Android原生框架層,基于Android原生框架的應(yīng)用程序不需要做任何修改就可正常運(yùn)行,非常方便。
[0014]較佳的,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令之后,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)之前,進(jìn)一步包括:
[0015]分別給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,并按照預(yù)設(shè)周期,根據(jù)每一個(gè)應(yīng)用程序的數(shù)據(jù)處理命令和系統(tǒng)當(dāng)前可用內(nèi)存大小,分別計(jì)算每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值;其中,上述內(nèi)存統(tǒng)計(jì)量表示,應(yīng)用程序當(dāng)前累計(jì)接收到的數(shù)據(jù)處理結(jié)果的總大小。
[0016]這樣,分別給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,便于管理各個(gè)應(yīng)用程序接收到數(shù)據(jù)結(jié)果的大小。
[0017]較佳的,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù),具體包括:
[0018]若上述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)視頻數(shù)據(jù)的分辨率,并從中選擇一個(gè)視頻數(shù)據(jù)的分辨率,以及將選取的一個(gè)視頻數(shù)據(jù)的分辨率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括視頻數(shù)據(jù)的分辨率;或,
[0019]若上述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)音頻數(shù)據(jù)的采樣率,并從中選擇一個(gè)音頻數(shù)據(jù)的采樣率,以及將選擇的一個(gè)音頻數(shù)據(jù)的采樣率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括音頻數(shù)據(jù)的采樣率。
[0020]較佳的,分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,具體包括:
[0021]若上述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則將上述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的視頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,視頻數(shù)據(jù)參數(shù)至少包括視頻數(shù)據(jù)的分辨率和幀率;或,
[0022]若上述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則將上述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的音頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,音頻數(shù)據(jù)參數(shù)至少包括音頻數(shù)據(jù)的采樣率和聲道數(shù)。
[0023]較佳的,進(jìn)一步包括:
[0024]若確定有多個(gè)數(shù)據(jù)處理命令相同,則根據(jù)上述多個(gè)數(shù)據(jù)處理命令中任意一個(gè)數(shù)據(jù)處理命令,對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得相應(yīng)的數(shù)據(jù)處理結(jié)果,并將上述數(shù)據(jù)處理結(jié)果分別發(fā)送至上述多個(gè)數(shù)據(jù)處理命令各自對(duì)應(yīng)的應(yīng)用程序。
[0025]這樣,當(dāng)多個(gè)數(shù)據(jù)處理命令相同時(shí),只需進(jìn)行一次處理,節(jié)省了CPU開銷和內(nèi)存開銷。
[0026]較佳的,將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序,具體包括:
[0027]分別判斷每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前取值是否小于當(dāng)前的最大值,若確定小于時(shí),則將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
[0028]這樣,在發(fā)送時(shí),進(jìn)行一次內(nèi)存判斷,可以防止某些惡意(或有缺陷的)應(yīng)用程序不斷獲取數(shù)據(jù),占用寶貴的內(nèi)存資源,進(jìn)而影響其他應(yīng)用程序的正常運(yùn)行。
[0029]一種數(shù)據(jù)處理裝置,包括:
[0030]第一接收單元,用于接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令;
[0031 ]設(shè)置單元,用于根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù);
[0032]第二接收單元,用于指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收上述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果;
[0033]處理單元,用于分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果;
[0034]發(fā)送單元,用于將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
[0035]本發(fā)明實(shí)施例中,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令;根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù);指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收上述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果;分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果;將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序,這樣,可以支持多個(gè)應(yīng)用程序同時(shí)獲取數(shù)據(jù),并且,根據(jù)每一個(gè)數(shù)據(jù)處理命令,將數(shù)據(jù)采集結(jié)果進(jìn)行相應(yīng)處理后,再發(fā)送給相應(yīng)的應(yīng)用程序,可以使得各個(gè)應(yīng)用程序獲得符合本身業(yè)務(wù)需求的數(shù)據(jù)。進(jìn)一步地,本發(fā)明實(shí)施例中的數(shù)據(jù)處理方法,可以靈活適配到Android原生框架層,基于Android原生框架的應(yīng)用程序不需要做任何修改就可正常運(yùn)行,非常方便。
[0036]較佳的,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令之后,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)之前,進(jìn)一步包括:
[0037]內(nèi)存管理單元,用于分別給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,并按照預(yù)設(shè)周期,根據(jù)每一個(gè)應(yīng)用程序的數(shù)據(jù)處理命令和系統(tǒng)當(dāng)前可用內(nèi)存大小,分別計(jì)算每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值;其中,上述內(nèi)存統(tǒng)計(jì)量表示,應(yīng)用程序當(dāng)前累計(jì)接收到的數(shù)據(jù)處理結(jié)果的總大小。
[0038]這樣,分別給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,便于管理各個(gè)應(yīng)用程序接收到數(shù)據(jù)結(jié)果的大小。
[0039]較佳的,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)時(shí),設(shè)置單元具體用于:
[0040]若上述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)視頻數(shù)據(jù)的分辨率,并從中選擇一個(gè)視頻數(shù)據(jù)的分辨率,以及將選取的一個(gè)視頻數(shù)據(jù)的分辨率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括視頻數(shù)據(jù)的分辨率;或,
[0041]若上述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)音頻數(shù)據(jù)的采樣率,并從中選擇一個(gè)音頻數(shù)據(jù)的采樣率,以及將選擇的一個(gè)音頻數(shù)據(jù)的采樣率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括音頻數(shù)據(jù)的采樣率。
[0042]較佳的,分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果時(shí),處理單元具體用于:
[0043]若上述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則將上述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的視頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,視頻數(shù)據(jù)參數(shù)至少包括視頻數(shù)據(jù)的分辨率和幀率;或,
[0044]若上述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則將上述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的音頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,音頻數(shù)據(jù)參數(shù)至少包括音頻數(shù)據(jù)的采樣率和聲道數(shù)。
[0(Μ5] 較佳的,處理單元進(jìn)一步用于:
[0046]若確定有多個(gè)數(shù)據(jù)處理命令相同,則根據(jù)上述多個(gè)數(shù)據(jù)處理命令中任意一個(gè)數(shù)據(jù)處理命令,對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得相應(yīng)的數(shù)據(jù)處理結(jié)果,并由發(fā)送單元將上述數(shù)據(jù)處理結(jié)果分別發(fā)送至上述多個(gè)數(shù)據(jù)處理命令各自對(duì)應(yīng)的應(yīng)用程序。
[0047]這樣,當(dāng)多個(gè)數(shù)據(jù)處理命令相同時(shí),只需進(jìn)行一次處理,節(jié)省了CPU開銷和內(nèi)存開銷。
[0048]較佳的,將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序時(shí),發(fā)送單元具體用于:
[0049]分別判斷每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前取值是否小于當(dāng)前的最大值,若確定小于時(shí),則將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
[0050]這樣,在發(fā)送時(shí),進(jìn)行一次內(nèi)存判斷,可以防止某些惡意(或有缺陷的)應(yīng)用程序不斷獲取數(shù)據(jù),占用寶貴的內(nèi)存資源,進(jìn)而影響其他應(yīng)用程序的正常運(yùn)行。
[0051 ] 一種數(shù)據(jù)處理系統(tǒng),至少包括多個(gè)應(yīng)用程序、數(shù)據(jù)采集設(shè)備和數(shù)據(jù)分發(fā)模塊,其中,
[0052]多個(gè)應(yīng)用程序,用于各自向數(shù)據(jù)分發(fā)模塊發(fā)送數(shù)據(jù)處理命令;
[0053]數(shù)據(jù)采集設(shè)備,用于基于數(shù)據(jù)分發(fā)模塊指示的數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并將數(shù)據(jù)采集結(jié)果返回給數(shù)據(jù)分發(fā)模塊;
[0054]數(shù)據(jù)分發(fā)模塊,用于接收上述多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù),并指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,接收上述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果,以及,分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,并將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
【附圖說明】
[0055]圖1為本發(fā)明實(shí)施例中,數(shù)據(jù)處理方法概述流程圖;
[0056]圖2為本發(fā)明實(shí)施例中,數(shù)據(jù)處理系統(tǒng)結(jié)構(gòu)示意圖;
[0057]圖3為本發(fā)明實(shí)施例中,數(shù)據(jù)處理方法詳細(xì)流程圖;
[0058]圖4為本發(fā)明實(shí)施例中,數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0059]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,并不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0060]為了解決現(xiàn)有技術(shù)中不能支持多個(gè)應(yīng)用程序同時(shí)獲取數(shù)據(jù)并進(jìn)行處理的問題,本發(fā)明實(shí)施例中,設(shè)置一個(gè)數(shù)據(jù)分發(fā)模塊,當(dāng)接收到不同應(yīng)用程序發(fā)送的的數(shù)據(jù)處理命令時(shí),設(shè)置數(shù)據(jù)采集參數(shù),并獲取采集到的數(shù)據(jù),以及分別將獲取到的數(shù)據(jù)進(jìn)行處理,并將數(shù)據(jù)處理結(jié)果發(fā)送給相應(yīng)的應(yīng)用程序。
[0061]下面通過具體實(shí)施例對(duì)本發(fā)明方案進(jìn)行詳細(xì)描述,當(dāng)然,本發(fā)明并不限于以下實(shí)施例。
[0062]參閱圖1所示,本發(fā)明實(shí)施例中,數(shù)據(jù)處理方法的具體流程如下:
[0063]步驟100:接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令。
[0064]具體為,本發(fā)明實(shí)施例中,設(shè)置一個(gè)數(shù)據(jù)分發(fā)模塊,在多個(gè)應(yīng)用程序需要同時(shí)獲取并處理數(shù)據(jù)時(shí),多個(gè)應(yīng)用程序發(fā)送的數(shù)據(jù)處理命令會(huì)先發(fā)送到數(shù)據(jù)分發(fā)模塊,數(shù)據(jù)分發(fā)模塊接收多個(gè)應(yīng)用程序發(fā)送的數(shù)據(jù)處理命令,這樣,便于實(shí)現(xiàn)多個(gè)數(shù)據(jù)處理命令的統(tǒng)一管理。
[0065]其中,數(shù)據(jù)處理命令中至少包括數(shù)據(jù)處理的參數(shù),具體為:若數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則數(shù)據(jù)處理命令中至少包括視頻數(shù)據(jù)的分辨率和幀率;或,若數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則數(shù)據(jù)處理命令中至少包括音頻數(shù)據(jù)的采樣率和聲道數(shù)。當(dāng)然,并不僅限于上述列舉的參數(shù),還可以包括其它和音頻數(shù)據(jù)、視頻數(shù)據(jù)相關(guān)的參數(shù),這里就不再一一列舉了,本發(fā)明實(shí)施例中僅以視頻數(shù)據(jù)的分辨率和幀率、音頻數(shù)據(jù)的采樣率和聲道數(shù)為例進(jìn)行說明。
[0066]進(jìn)一步地,在執(zhí)行完步驟100之后,即接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令之后,包括:
[0067]分別給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,并按照預(yù)設(shè)周期,根據(jù)每一個(gè)應(yīng)用程序的數(shù)據(jù)處理命令和系統(tǒng)當(dāng)前可用內(nèi)存大小,分別計(jì)算每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值,例如為MEM(Hiax)0
[0068]其中,內(nèi)存統(tǒng)計(jì)量的初始賦值為0,表示應(yīng)用程序當(dāng)前累計(jì)接收到的數(shù)據(jù)處理結(jié)果的總大小。
[0069]其中,設(shè)置內(nèi)存統(tǒng)計(jì)量,是因?yàn)榭赡苡心承阂?或有缺陷的)應(yīng)用程序,獲取到數(shù)據(jù)后,沒有釋放內(nèi)存,或不斷獲取數(shù)據(jù),導(dǎo)致系統(tǒng)可用內(nèi)存越來越少,可能導(dǎo)致所有的應(yīng)用程序都無法獲取到數(shù)據(jù),進(jìn)而無法正常運(yùn)行,給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,可以監(jiān)控各個(gè)應(yīng)用程序累計(jì)獲取到的數(shù)據(jù)大小,進(jìn)而控制各個(gè)應(yīng)用程序占用的內(nèi)存大小。
[0070]實(shí)際中,多個(gè)應(yīng)用程序發(fā)送的數(shù)據(jù)處理命令中的數(shù)據(jù)處理參數(shù)一般是不同的,所需的內(nèi)存也是不同的,因此,需要根據(jù)不用應(yīng)用程序的需求和系統(tǒng)當(dāng)前可用內(nèi)存大小,按照一定比例來分別計(jì)算上述多個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的最大值,并且,系統(tǒng)當(dāng)前可用內(nèi)存大小,或當(dāng)前發(fā)送數(shù)據(jù)處理命令的應(yīng)用程序的個(gè)數(shù)可能發(fā)生變化,因此,每隔一段時(shí)間,都會(huì)重新進(jìn)行計(jì)算MEM(max)。其中,各個(gè)應(yīng)用程序?qū)?yīng)的MEM(max)和系統(tǒng)當(dāng)前可用內(nèi)存成正比,和當(dāng)前應(yīng)用程序個(gè)數(shù)成反比,即系統(tǒng)當(dāng)前可用內(nèi)存增大了,那么各個(gè)應(yīng)用程序?qū)?yīng)的MEM(max)就增大,系統(tǒng)當(dāng)前可用內(nèi)存減小了,那么各個(gè)應(yīng)用程序?qū)?yīng)的MEM(max)就減小;當(dāng)前應(yīng)用程序個(gè)數(shù)增加了,那么各個(gè)應(yīng)用程序?qū)?yīng)的MEM(max)就減小,當(dāng)前應(yīng)用程序個(gè)數(shù)減小了,那么各個(gè)應(yīng)用程序?qū)?yīng)的MEM (max)就增加。
[0071 ]步驟110:根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)。
[0072]執(zhí)行步驟110時(shí),具體可以分為以下兩種情況:
[0073]第一種情況:數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)視頻數(shù)據(jù)的分辨率,并從中選擇一個(gè)視頻數(shù)據(jù)的分辨率,以及將選取的一個(gè)視頻數(shù)據(jù)的分辨率作為數(shù)據(jù)采集參數(shù)。
[0074]第二種情況:數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)音頻數(shù)據(jù)的采樣率,并從中選擇一個(gè)音頻數(shù)據(jù)的采樣率,以及將選擇的一個(gè)音頻數(shù)據(jù)的采樣率作為數(shù)據(jù)采集參數(shù)。
[0075]其中,進(jìn)行選擇時(shí),可以從提取最大的前N個(gè)視頻數(shù)據(jù)的分辨率或最大的前N個(gè)音頻數(shù)據(jù)的采樣率中,選擇最大的一個(gè),也可以選擇次最大的一個(gè),具體可以根據(jù)實(shí)際情況進(jìn)行選擇,這樣,可以達(dá)到效果和性能最佳。
[0076]步驟120:指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收上述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果。
[0077]執(zhí)行步驟120時(shí),具體包括:
[0078]首先,指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集。
[0079]例如,接收到兩個(gè)應(yīng)用程序發(fā)送的視頻數(shù)據(jù)處理命令,則視頻數(shù)據(jù)采集設(shè)備為camera,這兩個(gè)應(yīng)用程序所需的視頻分辨率分別為P(1)、P(2),且P(1)>P(2),則數(shù)據(jù)分發(fā)模塊選擇P(I)作為數(shù)據(jù)采集參數(shù),并從camera硬件所支持的分辨率中選擇出與P(I)最接近的分辨率P (hardware),將P (hardware)設(shè)置給camera。
[0080]又例如,接收到兩個(gè)應(yīng)用程序發(fā)送的音頻數(shù)據(jù)處理命令,則音頻數(shù)據(jù)采集設(shè)備為MIC,這兩個(gè)應(yīng)用程序所需的音頻采樣率分別為S(1)、S(2),且S(1)>S(2),則數(shù)據(jù)分發(fā)模塊選擇S( I)作為數(shù)據(jù)采集參數(shù),并將S( I)設(shè)置給MIC。
[0081 ]然后,數(shù)據(jù)采集設(shè)備采集到數(shù)據(jù)后,將數(shù)據(jù)采集結(jié)果返回給數(shù)據(jù)分發(fā)模塊。
[0082]步驟130:分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果。
[0083]也就是說,數(shù)據(jù)采集設(shè)備基于數(shù)據(jù)采集參數(shù)獲得的數(shù)據(jù)采集結(jié)果,并一定都能滿足所有應(yīng)用程序的需求,因此,需要再對(duì)數(shù)據(jù)采集結(jié)果分別進(jìn)行處理,獲得滿足每一個(gè)應(yīng)用程序所需的數(shù)據(jù)處理結(jié)果。
[0084]執(zhí)行步驟130時(shí),可以分為以下兩種情況:
[0085]第一種情況:上述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則分別按照每一個(gè)數(shù)據(jù)處理命令中的的視頻數(shù)據(jù)參數(shù),對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,視頻數(shù)據(jù)參數(shù)至少包括視頻數(shù)據(jù)的分辨率和幀率。
[0086]具體為,分別按照每一個(gè)數(shù)據(jù)處理命令中的視頻數(shù)據(jù)分辨率和幀率,將視頻數(shù)據(jù)采集結(jié)果調(diào)整為相應(yīng)的分辨率和幀率,獲得滿足相應(yīng)應(yīng)用程序所需的數(shù)據(jù)處理結(jié)果。
[0087]例如,接收到兩個(gè)應(yīng)用程序發(fā)送的視頻數(shù)據(jù)處理命令,這兩個(gè)應(yīng)用程序所需的視頻分辨率分別為P(1)、P(2),所需的幀率分別為f(l)、f(2),則數(shù)據(jù)分發(fā)模塊接收到camera返回的數(shù)據(jù)采集結(jié)果后,分別對(duì)該數(shù)據(jù)采集結(jié)果進(jìn)行處理,即按照分辨率為P(l)、幀率為f(I)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,以及按照分辨率為P(2)、幀率為f(2)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果。
[0088]第二種情況:上述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則分別按照每一個(gè)數(shù)據(jù)處理命令中的音頻數(shù)據(jù)參數(shù),對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,音頻數(shù)據(jù)參數(shù)至少包括音頻數(shù)據(jù)的采樣率和聲道數(shù)。
[0089]具體為,分別按照每一個(gè)數(shù)據(jù)處理命令中的音頻數(shù)據(jù)采樣率和聲道數(shù),對(duì)音頻數(shù)據(jù)采集結(jié)果進(jìn)行音頻重采樣,獲得滿足相應(yīng)應(yīng)用程序所需的數(shù)據(jù)處理結(jié)果。
[0090]例如,接收到兩個(gè)應(yīng)用程序發(fā)送的音頻數(shù)據(jù)處理命令,這兩個(gè)應(yīng)用程序所需的音頻采樣率分別為S(1)、S(2),所需的聲道數(shù)分別為H(1)、H(2),則數(shù)據(jù)分發(fā)模塊接收到MIC返回的數(shù)據(jù)采集結(jié)果后,分別對(duì)該數(shù)據(jù)采集結(jié)果進(jìn)行處理,即按照采樣率為S(l)、聲道數(shù)為H
(I)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,以及按照采樣率為S(2)、聲道數(shù)為H(2)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果。
[0091]進(jìn)一步地,對(duì)于有多個(gè)應(yīng)用程序的數(shù)據(jù)處理命令中數(shù)據(jù)處理參數(shù)相同的情況,則不需要針對(duì)這多個(gè)應(yīng)用程序的數(shù)據(jù)處理命令,對(duì)數(shù)據(jù)采集結(jié)果都進(jìn)行一次相應(yīng)處理,只需進(jìn)行一次相應(yīng)處理,獲得相應(yīng)的數(shù)據(jù)處理結(jié)果,并將數(shù)據(jù)處理結(jié)果分別發(fā)送給上述多個(gè)數(shù)據(jù)處理命令各自對(duì)應(yīng)的應(yīng)用程序即可,即數(shù)據(jù)處理命令中數(shù)據(jù)處理參數(shù)相同的多個(gè)應(yīng)用程序,可以共享一份數(shù)據(jù)處理結(jié)果,節(jié)省了 CPU開銷和內(nèi)存開銷。
[0092]這樣,將數(shù)據(jù)采集結(jié)果,根據(jù)不同的數(shù)據(jù)處理命令進(jìn)行相應(yīng)處理,可以使得應(yīng)用程序可以獲取到自身業(yè)務(wù)所需的數(shù)據(jù),無需在獲取到數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行二次處理才能使用。
[0093]步驟140:將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
[0094]執(zhí)行步驟140時(shí),具體包括:
[0095]首先,分別判斷每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前取值是否小于上述內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值。
[0096]然后,若確定小于時(shí),則將數(shù)據(jù)處理結(jié)果發(fā)送給相應(yīng)的應(yīng)用程序,否則,本次不進(jìn)行發(fā)送。
[0097]進(jìn)一步地,應(yīng)用程序接收到數(shù)據(jù)處理結(jié)果(即處理后的數(shù)據(jù))后,根據(jù)上述數(shù)據(jù)處理結(jié)果的大小,調(diào)整該應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的取值:將上述應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的取值加上上述數(shù)據(jù)處理結(jié)果的大小。
[0098]同樣地,當(dāng)應(yīng)用程序在使用完接收到的數(shù)據(jù)處理結(jié)果后,調(diào)整該應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的取值:將上述應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的取值減去上述數(shù)據(jù)處理結(jié)果的大小,即將該數(shù)據(jù)處理結(jié)果對(duì)應(yīng)的內(nèi)存釋放掉,避免占用過多的內(nèi)存資源。
[0099]這樣,在進(jìn)行發(fā)送時(shí),進(jìn)行一次內(nèi)存判斷,可以防止某些惡意(或有缺陷的)應(yīng)用程序不斷獲取數(shù)據(jù),占用寶貴的內(nèi)存資源,進(jìn)而影響其他應(yīng)用程序的正常運(yùn)行。
[0100]具體參閱圖2所示,本發(fā)明實(shí)施例中,數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)框架示意圖。
[0101]I)可以有多個(gè)Android應(yīng)用程序,例如,應(yīng)用程序I和應(yīng)用程序2同時(shí)發(fā)出數(shù)據(jù)處理命令(例如,視頻數(shù)據(jù)處理命令和音頻數(shù)據(jù)處理命令),應(yīng)用程序發(fā)出的數(shù)據(jù)處理命令先發(fā)送到數(shù)據(jù)分發(fā)模塊。
[0102]2)數(shù)據(jù)分發(fā)模塊,根據(jù)接收到的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù),并配置給Andro id框架層。
[0103]3)數(shù)據(jù)采集設(shè)備,例如,camera驅(qū)動(dòng)或聲卡/MIC驅(qū)動(dòng),就會(huì)基于數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并將采集到數(shù)據(jù)通過Andro id框架層發(fā)送給數(shù)據(jù)分發(fā)模塊。
[0104]4)數(shù)據(jù)分發(fā)模塊根據(jù)各個(gè)應(yīng)用程序的數(shù)據(jù)處理命令,將數(shù)據(jù)采集結(jié)果進(jìn)行相應(yīng)處理,并將數(shù)據(jù)處理結(jié)果分別發(fā)送給相應(yīng)的應(yīng)用程序。
[0105]其中,將數(shù)據(jù)分發(fā)模塊插入到Android原始框架層,例如可以通過嵌入式技術(shù)實(shí)現(xiàn),就可以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理方法,Android原始框架層不需要做任何實(shí)質(zhì)性修改,只需在執(zhí)行數(shù)據(jù)處理時(shí),調(diào)用數(shù)據(jù)分發(fā)模塊即可。
[0106]這樣,多個(gè)應(yīng)用程序可以同時(shí)獲取并處理視頻數(shù)據(jù)或音頻數(shù)據(jù),并且,可以獲取到符合自身業(yè)務(wù)所需的視頻數(shù)據(jù)或音頻數(shù)據(jù)。
[0107]下面采用一個(gè)具體的應(yīng)用場(chǎng)景對(duì)上述實(shí)施例作出進(jìn)一步詳細(xì)說明。具體參閱圖3所示,本發(fā)明實(shí)施例中,數(shù)據(jù)處理方法的執(zhí)行過程具體如下:
[0108]步驟200:接收多個(gè)應(yīng)用程序發(fā)送的數(shù)據(jù)處理命令。
[0109]步驟201:分別為每一個(gè)應(yīng)用程序配置一個(gè)內(nèi)存統(tǒng)計(jì)量,并分別計(jì)算出每一個(gè)內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值。
[0110]具體為,分別根據(jù)每一個(gè)數(shù)據(jù)處理命令和系統(tǒng)當(dāng)前的內(nèi)存大小,計(jì)算每一個(gè)內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值。
[0111]步驟202:根據(jù)各個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)。
[0112]步驟203:指示數(shù)據(jù)采集設(shè)備進(jìn)行數(shù)據(jù)采集,并接收數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果。
[0113]步驟204:根據(jù)每一個(gè)數(shù)據(jù)處理命令,分別對(duì)數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果。
[0114]步驟205:分別判斷每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的取值是否小于當(dāng)前的最大值,若是,則執(zhí)行步驟206,否則,執(zhí)行步驟207。
[0115]步驟206:將數(shù)據(jù)處理結(jié)果發(fā)送給相應(yīng)的應(yīng)用程序。
[0116]步驟207:本次不用給相應(yīng)的應(yīng)用程序發(fā)送。
[0117]基于上述實(shí)施例,參閱圖4所示,本發(fā)明實(shí)施例中,數(shù)據(jù)處理裝置,具體包括:
[0118]第一接收單元30,用于接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令;
[0119]設(shè)置單元31,用于根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù);
[0120]第二接收單元32,用于指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收上述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果;
[0121 ]處理單元33,用于分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果;
[0122]發(fā)送單元34,用于將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
[0123]較佳的,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令之后,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)之前,進(jìn)一步包括:
[0124]內(nèi)存管理單元35,用于分別給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,并按照預(yù)設(shè)周期,根據(jù)每一個(gè)應(yīng)用程序的數(shù)據(jù)處理命令和系統(tǒng)當(dāng)前可用內(nèi)存大小,分別計(jì)算每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值;其中,上述內(nèi)存統(tǒng)計(jì)量表示,應(yīng)用程序當(dāng)前累計(jì)接收到的數(shù)據(jù)處理結(jié)果的總大小。
[0125]較佳的,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)時(shí),設(shè)置單元31具體用于:
[0126]若上述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)視頻數(shù)據(jù)的分辨率,并從中選擇一個(gè)視頻數(shù)據(jù)的分辨率,以及將選取的一個(gè)視頻數(shù)據(jù)的分辨率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括視頻數(shù)據(jù)的分辨率;或,
[0127]若上述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)音頻數(shù)據(jù)的采樣率,并從中選擇一個(gè)音頻數(shù)據(jù)的采樣率,以及將選擇的一個(gè)音頻數(shù)據(jù)的采樣率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括音頻數(shù)據(jù)的采樣率。
[0128]較佳的,分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果時(shí),處理單元33具體用于:
[0129]若上述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則將上述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的視頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,視頻數(shù)據(jù)參數(shù)至少包括視頻數(shù)據(jù)的分辨率和幀率;或,
[0130]若上述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則將上述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的音頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,音頻數(shù)據(jù)參數(shù)至少包括音頻數(shù)據(jù)的采樣率和聲道數(shù)。
[0131]較佳的,處理單元33進(jìn)一步用于:
[0132]若確定有多個(gè)數(shù)據(jù)處理命令相同,則根據(jù)上述多個(gè)數(shù)據(jù)處理命令中任意一個(gè)數(shù)據(jù)處理命令,對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得相應(yīng)的數(shù)據(jù)處理結(jié)果,并由發(fā)送單元34將上述數(shù)據(jù)處理結(jié)果分別發(fā)送至上述多個(gè)數(shù)據(jù)處理命令各自對(duì)應(yīng)的應(yīng)用程序。
[0133]較佳的,將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序時(shí),發(fā)送單元34具體用于:
[0134]分別判斷每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前取值是否小于當(dāng)前的最大值,若確定小于時(shí),則將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
[0135]綜上所述,本發(fā)明實(shí)施例中,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令;根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù);指示數(shù)據(jù)采集設(shè)備基于上述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收上述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果;分別對(duì)上述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果;將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序,這樣,多個(gè)應(yīng)用程序需要獲取數(shù)據(jù)時(shí),可以同時(shí)發(fā)送數(shù)據(jù)處理命令,在接收到多個(gè)應(yīng)用程序發(fā)送的數(shù)據(jù)處理命令時(shí),指示進(jìn)行數(shù)據(jù)采集,并將采集到的數(shù)據(jù)分發(fā)給各個(gè)應(yīng)用程序,可以支持多個(gè)應(yīng)用程序同時(shí)獲取數(shù)據(jù),并且,根據(jù)每一個(gè)數(shù)據(jù)處理命令,將數(shù)據(jù)采集結(jié)果進(jìn)行相應(yīng)處理后,再發(fā)送給相應(yīng)的應(yīng)用程序,可以使得各個(gè)應(yīng)用程序不會(huì)受到數(shù)據(jù)采集設(shè)備硬件本身對(duì)數(shù)據(jù)采集結(jié)果的限制,獲得符合本身業(yè)務(wù)需求的數(shù)據(jù),以及,本發(fā)明實(shí)施例中的數(shù)據(jù)處理方法,可以靈活適配到Android原生框架層,基于Android原生框架的應(yīng)用程序不需要做任何實(shí)質(zhì)性的修改就可正常運(yùn)行,非常方便。
[0136]并且,在向應(yīng)用程序發(fā)送數(shù)據(jù)時(shí),進(jìn)行一次內(nèi)存判斷,可以防止某些惡意(或有缺陷的)應(yīng)用程序不斷獲取數(shù)據(jù),占用寶貴的內(nèi)存資源,進(jìn)而影響其他應(yīng)用程序的正常運(yùn)行。
[0137]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0138]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0139]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0140]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0141]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0142]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明實(shí)施例的精神和范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)處理方法,其特征在于,包括: 接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令; 根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù); 指示數(shù)據(jù)采集設(shè)備基于所述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收所述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果; 分別對(duì)所述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果; 將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。2.如權(quán)利要求1所述的方法,其特征在于,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令之后,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)之前,進(jìn)一步包括: 分別給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,并按照預(yù)設(shè)周期,根據(jù)每一個(gè)應(yīng)用程序的數(shù)據(jù)處理命令和系統(tǒng)當(dāng)前可用內(nèi)存大小,分別計(jì)算每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值;其中,所述內(nèi)存統(tǒng)計(jì)量表示,應(yīng)用程序當(dāng)前累計(jì)接收到的數(shù)據(jù)處理結(jié)果的總大小。3.如權(quán)利要求1所述的方法,其特征在于,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù),具體包括: 若所述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)視頻數(shù)據(jù)的分辨率,并從中選擇一個(gè)視頻數(shù)據(jù)的分辨率,以及將選取的一個(gè)視頻數(shù)據(jù)的分辨率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括視頻數(shù)據(jù)的分辨率;或, 若所述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)音頻數(shù)據(jù)的采樣率,并從中選擇一個(gè)音頻數(shù)據(jù)的采樣率,以及將選擇的一個(gè)音頻數(shù)據(jù)的采樣率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括音頻數(shù)據(jù)的采樣率。4.如權(quán)利要求1或3所述的方法,其特征在于,分別對(duì)所述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,具體包括: 若所述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則將所述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的視頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,視頻數(shù)據(jù)參數(shù)至少包括視頻數(shù)據(jù)的分辨率和幀率;或, 若所述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則將所述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的音頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,音頻數(shù)據(jù)參數(shù)至少包括音頻數(shù)據(jù)的采樣率和聲道數(shù)。5.如權(quán)利要求4所述的方法,其特征在于,進(jìn)一步包括: 若確定有多個(gè)數(shù)據(jù)處理命令相同,則根據(jù)所述多個(gè)數(shù)據(jù)處理命令中任意一個(gè)數(shù)據(jù)處理命令,對(duì)所述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得相應(yīng)的數(shù)據(jù)處理結(jié)果,并將所述數(shù)據(jù)處理結(jié)果分別發(fā)送至所述多個(gè)數(shù)據(jù)處理命令各自對(duì)應(yīng)的應(yīng)用程序。6.如權(quán)利要求2所述的方法,其特征在于,將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序,具體包括: 分別判斷每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前取值是否小于當(dāng)前的最大值,若確定小于時(shí),則將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。7.一種數(shù)據(jù)處理裝置,其特征在于,包括: 第一接收單元,用于接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令; 設(shè)置單元,用于根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù); 第二接收單元,用于指示數(shù)據(jù)采集設(shè)備基于所述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并接收所述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果; 處理單元,用于分別對(duì)所述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果; 發(fā)送單元,用于將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。8.如權(quán)利要求7所述的裝置,其特征在于,接收多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令之后,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)之前,進(jìn)一步包括: 內(nèi)存管理單元,用于分別給每一個(gè)應(yīng)用程序設(shè)置一個(gè)內(nèi)存統(tǒng)計(jì)量,并按照預(yù)設(shè)周期,根據(jù)每一個(gè)應(yīng)用程序的數(shù)據(jù)處理命令和系統(tǒng)當(dāng)前可用內(nèi)存大小,分別計(jì)算每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前的最大值;其中,所述內(nèi)存統(tǒng)計(jì)量表示,應(yīng)用程序當(dāng)前累計(jì)接收到的數(shù)據(jù)處理結(jié)果的總大小。9.如權(quán)利要求7所述的裝置,其特征在于,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù)時(shí),設(shè)置單元具體用于: 若所述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)視頻數(shù)據(jù)的分辨率,并從中選擇一個(gè)視頻數(shù)據(jù)的分辨率,以及將選取的一個(gè)視頻數(shù)據(jù)的分辨率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括視頻數(shù)據(jù)的分辨率;或, 若所述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則從獲得的多個(gè)數(shù)據(jù)處理命令中提取最大的前N個(gè)音頻數(shù)據(jù)的采樣率,并從中選擇一個(gè)音頻數(shù)據(jù)的采樣率,以及將選擇的一個(gè)音頻數(shù)據(jù)的采樣率作為數(shù)據(jù)采集參數(shù),其中,一個(gè)數(shù)據(jù)處理命令中至少包括音頻數(shù)據(jù)的采樣率。10.如權(quán)利要求7或9所述的裝置,其特征在于,分別對(duì)所述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果時(shí),處理單元具體用于: 若所述數(shù)據(jù)處理命令為視頻數(shù)據(jù)處理命令,則將所述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的視頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,視頻數(shù)據(jù)參數(shù)至少包括視頻數(shù)據(jù)的分辨率和幀率;或, 若所述數(shù)據(jù)處理命令為音頻數(shù)據(jù)處理命令,則將所述數(shù)據(jù)采集結(jié)果分別按照每一個(gè)數(shù)據(jù)處理命令中的音頻數(shù)據(jù)參數(shù)進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,其中,音頻數(shù)據(jù)參數(shù)至少包括音頻數(shù)據(jù)的采樣率和聲道數(shù)。11.如權(quán)利要求10所述的裝置,其特征在于,處理單元進(jìn)一步用于: 若確定有多個(gè)數(shù)據(jù)處理命令相同,則根據(jù)所述多個(gè)數(shù)據(jù)處理命令中任意一個(gè)數(shù)據(jù)處理命令,對(duì)所述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得相應(yīng)的數(shù)據(jù)處理結(jié)果,并由發(fā)送單元將所述數(shù)據(jù)處理結(jié)果分別發(fā)送至所述多個(gè)數(shù)據(jù)處理命令各自對(duì)應(yīng)的應(yīng)用程序。12.如權(quán)利要求8所述的裝置,其特征在于,將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序時(shí),發(fā)送單元具體用于: 分別判斷每一個(gè)應(yīng)用程序?qū)?yīng)的內(nèi)存統(tǒng)計(jì)量的當(dāng)前取值是否小于當(dāng)前的最大值,若確定小于時(shí),則將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。13.一種數(shù)據(jù)處理系統(tǒng),其特征在于,至少包括多個(gè)應(yīng)用程序、數(shù)據(jù)采集設(shè)備和數(shù)據(jù)分發(fā)模塊,其中, 多個(gè)應(yīng)用程序,用于各自向數(shù)據(jù)分發(fā)模塊發(fā)送數(shù)據(jù)處理命令; 數(shù)據(jù)采集設(shè)備,用于基于數(shù)據(jù)分發(fā)模塊指示的數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,并將數(shù)據(jù)采集結(jié)果返回給數(shù)據(jù)分發(fā)模塊; 數(shù)據(jù)分發(fā)模塊,用于接收所述多個(gè)應(yīng)用程序各自發(fā)送的數(shù)據(jù)處理命令,根據(jù)獲得的多個(gè)數(shù)據(jù)處理命令,設(shè)置數(shù)據(jù)采集參數(shù),并指示數(shù)據(jù)采集設(shè)備基于所述數(shù)據(jù)采集參數(shù)進(jìn)行數(shù)據(jù)采集,接收所述數(shù)據(jù)采集設(shè)備返回的數(shù)據(jù)采集結(jié)果,以及,分別對(duì)所述數(shù)據(jù)采集結(jié)果進(jìn)行處理,獲得對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果,并將獲得的每一個(gè)數(shù)據(jù)處理結(jié)果發(fā)送至相應(yīng)的應(yīng)用程序。
【文檔編號(hào)】G06F9/38GK106020777SQ201610287018
【公開日】2016年10月12日
【申請(qǐng)日】2016年4月29日
【發(fā)明人】馬飛, 劉金鴿
【申請(qǐng)人】杭州華橙網(wǎng)絡(luò)科技有限公司