邢 邗 孫連英 石曉達(dá) 葛 娜
1(北京聯(lián)合大學(xué)信息學(xué)院 北京 100101) 2(北京聯(lián)合大學(xué)自動(dòng)化學(xué)院 北京 100101)
?
移動(dòng)學(xué)習(xí)平臺(tái)的多圖層管理技術(shù)研究
邢 邗1孫連英2石曉達(dá)1葛 娜1
1(北京聯(lián)合大學(xué)信息學(xué)院 北京 100101)2(北京聯(lián)合大學(xué)自動(dòng)化學(xué)院 北京 100101)
針對(duì)在Android移動(dòng)設(shè)備實(shí)現(xiàn)具有“多圖層”管理功能的繪圖軟件的過(guò)程中,位圖(BitMap)過(guò)度占用內(nèi)存資源導(dǎo)致出現(xiàn)卡頓與尾隨的現(xiàn)象,甚至出現(xiàn)OOM(Out Of Memory)錯(cuò)誤,提出一種“三層”管理機(jī)制,不僅實(shí)現(xiàn)“多圖層”管理功能而且確保繪圖操作流暢。通過(guò)設(shè)計(jì)“畫筆”類與內(nèi)部數(shù)據(jù)結(jié)構(gòu),將包括坐標(biāo)在內(nèi)的用戶繪圖數(shù)據(jù)保存至XML格式的文件,達(dá)到跨平臺(tái)共享數(shù)據(jù)的目的,不僅提高了互操作能力,同時(shí)改善了基于Android平臺(tái)的移動(dòng)學(xué)習(xí)系統(tǒng)性能。
Android系統(tǒng) “三層”管理機(jī)制 XML文件 移動(dòng)學(xué)習(xí)
隨著移動(dòng)應(yīng)用設(shè)備性能的不斷提升和價(jià)格的迅速下降[1],移動(dòng)學(xué)習(xí)軟件的廣泛應(yīng)用促使人們的學(xué)習(xí)方式發(fā)生重大改變,從傳統(tǒng)的教科書到PC端的數(shù)字化學(xué)習(xí)(E-learning)[2],再到使用平板電腦等移動(dòng)終端設(shè)備進(jìn)行的移動(dòng)學(xué)習(xí)(Mobile learning)[3-4]。移動(dòng)學(xué)習(xí)是指在通信網(wǎng)絡(luò)技術(shù)和無(wú)線移動(dòng)通信設(shè)備的幫助下,不受時(shí)間與地點(diǎn)限制的學(xué)習(xí)[5-6],是一種時(shí)間零散化的學(xué)習(xí),是一種具有個(gè)性化和情緒化的學(xué)習(xí),在培養(yǎng)學(xué)生的學(xué)習(xí)興趣、學(xué)習(xí)熱情和自學(xué)能力等方面有著其他學(xué)習(xí)方式無(wú)法比擬的優(yōu)點(diǎn)[7]。在學(xué)習(xí)過(guò)程中, 用戶遇到的操作不流暢或軟件崩潰會(huì)破壞其對(duì)移動(dòng)學(xué)習(xí)軟件的信任并減少其學(xué)習(xí)時(shí)間[8], 最終導(dǎo)致用戶流失。所以移動(dòng)學(xué)習(xí)軟件的設(shè)計(jì)要體現(xiàn)以用戶為中心滿足用戶功能需求和審美需求的思想[9]。移動(dòng)學(xué)習(xí)軟件還需要滿足教師與學(xué)生、學(xué)生與學(xué)生之間雙向交流的功能,要求移動(dòng)學(xué)習(xí)軟件擁有保存用戶的學(xué)習(xí)結(jié)果數(shù)據(jù)和跨平臺(tái)共享學(xué)習(xí)數(shù)據(jù)的功能。
在Strategy Analytics公布的2014年第二季度智能設(shè)備操作系統(tǒng)市場(chǎng)份額報(bào)表中,Android系統(tǒng)占據(jù)84.6%的份額,占據(jù)市場(chǎng)主導(dǎo)地位[10]。本文針對(duì)移動(dòng)學(xué)習(xí)軟件的需求,設(shè)計(jì)一款基于Android系統(tǒng)的移動(dòng)繪畫學(xué)習(xí)軟件。本軟件具有畫筆、顏色、擦除、添加外部圖片資源與文字等基本功能外,著重設(shè)計(jì)并實(shí)現(xiàn)“多圖層”管理功能,方便用戶通過(guò)圖層管理繪畫操作?!岸鄨D層”管理功能包括圖層合并、添加與刪除圖層、移動(dòng)縮放旋轉(zhuǎn)圖層和更改圖層透明度等功能,用戶在更改某一圖層時(shí),對(duì)其他圖層無(wú)任何影響。
在Android系統(tǒng)中實(shí)現(xiàn)“多圖層”功能的方法有很多,例如采用FrameLayout布局,使用多個(gè)View疊加實(shí)現(xiàn)“多圖層”功能。創(chuàng)建一個(gè)View對(duì)象,在View中為每一個(gè)圖層創(chuàng)建一個(gè)BitMap同樣可以實(shí)現(xiàn)“多圖層”功能。采用LayerDrawable對(duì)象也可以實(shí)現(xiàn)顯示多張圖片疊加的效果。當(dāng)應(yīng)用程序僅僅需要一個(gè)或兩個(gè)圖層時(shí),占用的系統(tǒng)內(nèi)存相對(duì)較少,不同方法之間呈現(xiàn)的應(yīng)用效果近乎相同,同樣可以滿足用戶的需求。但是當(dāng)用戶創(chuàng)建十幾個(gè)、乃至創(chuàng)建幾十個(gè)圖層時(shí),采用以上方法將占用大量?jī)?nèi)存資源,導(dǎo)致軟件運(yùn)行緩慢,甚至出現(xiàn)OOM(內(nèi)存溢出)現(xiàn)象,用戶體驗(yàn)將急劇下降。本文針對(duì)內(nèi)存資源管理問(wèn)題,提出“三層”管理機(jī)制,實(shí)現(xiàn)“多圖層”管理功能的基礎(chǔ)之上確保用戶繪圖操作流暢,并且達(dá)到繪圖操作流暢程度與用戶創(chuàng)建的圖層數(shù)量無(wú)關(guān)的目的。在使用“三層”管理機(jī)制的同時(shí),軟件兼具實(shí)現(xiàn)使用XML文件保存用戶繪畫學(xué)習(xí)結(jié)果數(shù)據(jù)功能。1997年,W3C就發(fā)布了XML1.0規(guī)范[11-12],用來(lái)簡(jiǎn)化信息傳輸。XML語(yǔ)言是當(dāng)今處理結(jié)構(gòu)信息的有效工具,多種編程語(yǔ)言支持XML文件的生成與解析。本文采用XML格式文件實(shí)現(xiàn)保存與恢復(fù)用戶的繪畫學(xué)習(xí)信息,有利于實(shí)現(xiàn)跨平臺(tái)共享用戶繪畫數(shù)據(jù)和用戶雙向交流學(xué)習(xí)結(jié)果數(shù)據(jù)的功能,有利于提高移動(dòng)學(xué)習(xí)樂(lè)趣。
本文實(shí)現(xiàn)的移動(dòng)繪畫學(xué)習(xí)軟件采用Android系統(tǒng)中Android.Graphics包提供的二維圖形處理API(應(yīng)用程序編程接口)實(shí)現(xiàn)。它包括圖形處理相關(guān)的Canvas(畫板)、BitMap(圖像)、Paint(畫筆)、Matrix(矩陣)和Point(點(diǎn))類等。其中可以將Canvas理解為“畫板”,BitMap理解為畫板上的“圖像”,一塊“畫板”可以擁有多張“圖像”,Paint是用戶繪畫使用的“畫筆”,Paint可以設(shè)置顏色、大小和透明度等多種屬性,更改Paint屬性可以達(dá)到呈現(xiàn)多種繪畫效果的目的。在軟件運(yùn)行過(guò)程中,首先創(chuàng)建一個(gè)View視圖并獲取Canvas對(duì)象,通過(guò)視圖View的View.touchEvent函數(shù)捕獲用戶的繪畫操作。其次Canvas通過(guò)setBitmap方法將Bitmap與Canvas進(jìn)行綁定,用戶當(dāng)前的繪畫操作顯示在綁定的Bitmap中,最后調(diào)用視圖View的View.onDraw方法,動(dòng)態(tài)顯示繪畫效果。
2.1 圖層概念
在繪圖軟件中,“圖層”的概念非常重要,許多效果可以通過(guò)“圖層”的直接操作而得到。 “圖層”疊加后的效果是呈現(xiàn)在用戶視覺(jué)中的最終效果。每一個(gè)繪圖操作必須對(duì)應(yīng)一個(gè)操作“圖層”。以移動(dòng)設(shè)備的屏幕為X、Y坐標(biāo)軸平面,以垂直屏幕朝向用戶方向?yàn)閆軸正方向?!岸鄨D層”可以理解為多個(gè)在Z軸坐標(biāo)值不同的“圖層”構(gòu)成,“圖層”本身透明不可見(jiàn),如圖1所示。“圖層”在Z軸坐標(biāo)值越大,代表該圖層越接近用戶,對(duì)Z軸坐標(biāo)值小于它的“圖層”有遮蓋效果。所有 “圖層”按Z軸正方向依次疊加在一起就形成了屏幕上顯示的最終效果。如果用戶對(duì)其中一個(gè)“圖層”做出縮放、旋轉(zhuǎn)、混合效果等操作的時(shí)候,不會(huì)對(duì)其他“圖層”造成任何影響。
圖1 “多圖層”示意圖
本軟件中使用PopWindow組件實(shí)現(xiàn)圖層管理窗口。點(diǎn)擊圖層管理按鈕,在彈出的圖層管理窗口內(nèi),包含添加圖層功能的按鈕和圖層列表。圖層列表中每一項(xiàng)展示本圖層內(nèi)繪畫操的作縮略圖、圖層名稱、圖層是否可見(jiàn)和更改圖層順序按鈕,用戶正在編輯使用的圖層使用深灰色標(biāo)識(shí),如圖2所示。
圖2 圖層管理窗口
2.2 “三層”管理設(shè)計(jì)
“多圖層”管理功能包括新建圖層、刪除圖層和圖層功能三類,圖層功能包括圖層合并、更改圖層順序、清空?qǐng)D層內(nèi)容、復(fù)制圖層和更改圖層透明度等。長(zhǎng)按圖層列表,彈出對(duì)應(yīng)的圖層功能窗口,如圖3所示。用戶在更改當(dāng)前圖層時(shí),對(duì)其他圖層無(wú)任何影響。
圖3 圖層功能窗口
如果使用一個(gè)BitMap顯示所有繪畫操作,在更改圖層屬性時(shí)會(huì)對(duì)其他圖層造成影響,違背“多圖層”管理功能的需求。如果為每一個(gè)圖層建立一個(gè)BitMap,需要占用大量的內(nèi)存。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)創(chuàng)建四個(gè)或四個(gè)以上的BitMap并顯示在屏幕上時(shí),用戶在繪畫過(guò)程中出現(xiàn)尾隨和卡頓的現(xiàn)象?!拔搽S”是指軟件呈現(xiàn)繪畫效果與用戶手勢(shì)移動(dòng)存在一定時(shí)間延遲,如圖4所示。“卡頓”是指軟件呈現(xiàn)繪畫效果不夠流暢。需要顯示的BitMap數(shù)量越多,占用內(nèi)存越多,尾隨和卡頓的現(xiàn)象越明顯,直至出現(xiàn)內(nèi)存溢出的錯(cuò)誤,導(dǎo)致程序崩潰。
圖4 “尾隨”現(xiàn)象示意圖
“三層”管理機(jī)制將用戶繪畫操作繪制在三個(gè)BitMap中以實(shí)現(xiàn)“多圖層”效果,完全避免因“多圖層”功能需求創(chuàng)建BitMap導(dǎo)致的內(nèi)存過(guò)度占用問(wèn)題,支持用戶創(chuàng)建無(wú)限多“圖層”,并且用戶繪圖操作流暢。無(wú)論用戶創(chuàng)建多少個(gè)圖層,系統(tǒng)內(nèi)部共需建立三個(gè)BitMap,分別命名為頂層、當(dāng)前操作層和底層,對(duì)應(yīng)的BitMap分別命名為UpBitMap、CurrentBitMap和DownBitMap,如圖5所示。Canvas可以通過(guò)setBitMap方法更改綁定操作的BitMap。
圖5 “三層”管理機(jī)制示意圖
“三層”管理機(jī)制是將用戶當(dāng)前的繪畫操作繪制在當(dāng)前層,頂層中繪制大于當(dāng)前層圖層編號(hào)的所有圖層對(duì)應(yīng)的繪畫操作,底層繪制小于當(dāng)前層圖層編號(hào)的所有圖層對(duì)應(yīng)的繪畫操作。頂層對(duì)當(dāng)前層和底層有遮蓋效果,當(dāng)前層對(duì)底層有遮蓋效果。并且在用戶操作當(dāng)前層時(shí),對(duì)其它圖層無(wú)任何影響。
軟件在新建一個(gè)繪畫項(xiàng)目時(shí),默認(rèn)擁有一個(gè)圖層,圖層編號(hào)默認(rèn)等于一。用戶每新建一個(gè)圖層,圖層編號(hào)加一。創(chuàng)建一個(gè)Map
“三層”管理機(jī)制中必須遵守兩個(gè)原則,一是用戶繪圖操作的始終是當(dāng)前層。二是圖層編號(hào)小于當(dāng)前層圖層編號(hào)的繪畫內(nèi)容繪制在底層中,圖層編號(hào)大于當(dāng)前層圖層編號(hào)的繪圖內(nèi)容繪制在頂層中。
2.3 當(dāng)前操作層編輯
假設(shè)共有N個(gè)圖層,當(dāng)前層為n(1≤n≤N),用戶期望當(dāng)前層為m(1≤m≤Nm!=n)。本著用戶繪畫操作的始終是當(dāng)前層原則,更換當(dāng)前層的步驟如下:
第一步清空三個(gè)圖層分別對(duì)應(yīng)的BitMap,可以調(diào)用recycle函數(shù)回收三個(gè)BitMap,之后重建相同大小的三個(gè)BitMap。
第二步從tuceng對(duì)象中獲取圖層編號(hào)為m的List
第三步從tuceng對(duì)象中獲取圖層編號(hào)小于m的所有List
第四步從tuceng對(duì)象中獲取圖層編號(hào)大于m的所有List
在更換當(dāng)前層的過(guò)程中,存在兩種特殊情況。一是期望當(dāng)前層m等于圖層總數(shù)N,即期望當(dāng)前層是所有圖層中的頂層。二是期望當(dāng)前層m等于1,即期望當(dāng)前層是所有圖層中的最底層。
當(dāng)m等于圖層總數(shù)N時(shí),三個(gè)BitMap依舊全部存在,UpBitMap中沒(méi)有任何繪畫操作,圖層編號(hào)小于m的用戶繪圖操作全部繪制在DownBitMap中,如圖6所示。
圖6 當(dāng)前層為最頂層
當(dāng)m等于1時(shí),DownBitMap中沒(méi)有任何繪畫操作,圖層編號(hào)大于1的用戶繪圖操作全部繪制在UpBitMap中,如圖7所示。
圖7 當(dāng)前層為最底層
3.1 畫筆類設(shè)計(jì)
在本軟件中,將用戶的每一個(gè)繪畫操作可以看作是“畫筆”(Paint)沿手勢(shì)移動(dòng)軌跡在“畫布”(BitMap)上的一次繪畫。為了能夠重現(xiàn)用戶的繪畫操作,需要保存“畫筆”數(shù)據(jù)和手勢(shì)移動(dòng)軌跡,其中主要包括以下三類數(shù)據(jù)。
(1) 手勢(shì)移動(dòng)軌跡
手勢(shì)移動(dòng)軌跡可以使用一系列二維坐標(biāo)表示。Android移動(dòng)設(shè)備屏幕坐標(biāo)系以左上角為坐標(biāo)軸原點(diǎn),水平向右為X軸正方向,垂直向下為Y軸正方向。通過(guò)觸屏事件Event獲取用戶觸摸屏幕的坐標(biāo)。觸屏事件可以分落下(touchDown)、移動(dòng)(touchMove)和抬起(touchUp)三種事件。Android系統(tǒng)默認(rèn)獲取坐標(biāo)值是Float類型,為使用Point對(duì)象保存坐標(biāo)值,將捕獲的坐標(biāo)值數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為Int類型。實(shí)例化一個(gè)List
X=(int)Event.getX();
Y=(int)Event.getY();
Point.x=X;
Point.y=Y;
List
(2) Paint參數(shù)
Android.Graphics包中Paint類提供更改畫筆半徑、顏色、透明度等屬性方法。在畫筆類中創(chuàng)建Paint對(duì)象和半徑(size)、顏色(color)、透明度(alpha)、樣式(style)、Join、Cap、Align等變量,通過(guò)Paint對(duì)象的set方法設(shè)置各類屬性,更改相應(yīng)屬性對(duì)應(yīng)的變量值,可以呈現(xiàn)不同繪畫效果。
(3) “畫筆”類型
根據(jù)繪畫效果可以將“畫筆”類型分為點(diǎn)、曲線、基本幾何圖形、圖片和文字五類,調(diào)用的繪畫方法各不相同。“畫筆”類型為“點(diǎn)”表示在捕獲的手勢(shì)坐標(biāo)點(diǎn)的位置繪畫一個(gè)點(diǎn),并不連接相鄰的坐標(biāo)點(diǎn)。調(diào)用Canvas.drawPoint()方法,參數(shù)包括坐標(biāo)點(diǎn)X與Y軸坐標(biāo)值和實(shí)例化的Paint對(duì)象。“畫筆”類型為“曲線”是使用Android.Graphics中提供Path類連接相鄰的被捕獲坐標(biāo)點(diǎn),形成軌跡對(duì)象。連接相鄰坐標(biāo)點(diǎn)函數(shù)為Path.moveTo(x,y)和Path.quadTo(x1,y1),其中(x,y)和(x1,y1)表示相鄰兩個(gè)坐標(biāo)點(diǎn)坐標(biāo)值。調(diào)用Canvas.drawPath方法繪制軌跡,參數(shù)包括Path對(duì)象和實(shí)例化Paint對(duì)象?!爱嫻P”類型為“基本幾何圖形”表示可以繪畫包括直線、矩形、圓等基本幾何圖形。不同幾何圖形對(duì)應(yīng)各自的繪畫方法,例如繪畫直線采用Canvas.drawLine方法,繪畫矩形使用Canvas.drawRect方法,繪畫圓采用Canvas.drawCircle方法。各自的參數(shù)中包括起始坐標(biāo)和終點(diǎn)坐標(biāo),表示最終繪畫幾何圖形的位置只與捕獲的落下事件坐標(biāo)點(diǎn)和捕獲的抬起事件坐標(biāo)點(diǎn)有關(guān),與移動(dòng)過(guò)程無(wú)關(guān)?!爱嫻P”類型是圖片時(shí),使用Bitmap.decodeResource方法讀取指定圖片資源成為BitMap類型數(shù)據(jù)。調(diào)用Canvas.drawBitmap方法將圖片繪畫到指定坐標(biāo)?!爱嫻P”類型是文字時(shí),獲取用戶動(dòng)態(tài)輸入的文字,調(diào)用Canvas.drawText方法,即可在指定坐標(biāo)點(diǎn)或指定路徑繪畫文字。
3.2 “撤銷”與“重畫”功能實(shí)現(xiàn)
當(dāng)一個(gè)繪畫操作完成后,也就是用戶的手勢(shì)從落下到抬起后,需要將此繪畫操作進(jìn)行保存。創(chuàng)建一個(gè)List
一般情況下,用戶要求繪圖軟件擁有“撤銷”和“重畫”的功能?!俺蜂N”就是取消最后一次或最后幾次的繪畫操作,“重畫”就是將“撤銷”的操作重新繪制到相應(yīng)圖層中。此時(shí)需要另一個(gè)與“ALL”序列對(duì)象同樣類型的序列,命名為“SOME”。將取消的最后一次或最后幾次操作依次添加進(jìn)入“SOME”,并從“ALL”序列中刪除,代碼示例為:
SOME.add(ALL.get(ALL.size()-1));
ALL.remove(ALL.size()-1);
可以設(shè)定一個(gè)“撤銷”功能允許的最大撤銷步驟數(shù)目為M(M≥1)。當(dāng)用戶繪畫操作數(shù)為A(A>M)時(shí),將第一步繪畫操作直到A-M步繪畫操作保存至文件并從保存繪畫操作的序列“ALL”中刪除,即可減少內(nèi)存占用。
清空當(dāng)前層對(duì)應(yīng)的CurrentBitMap,將“ALL”序列中的繪畫操作從第一位開(kāi)始,依次繪畫到CurrentBitMap中,刷新顯示,即可實(shí)現(xiàn)“撤銷”功能。當(dāng)需要“重畫”功能時(shí),將“SOME”中保存的繪畫操作依次繪畫到CurrentBitMap中,將重畫的操作添加進(jìn)入“ALL”序列中,并從“SOME”中刪除,即可實(shí)現(xiàn)“重畫”功能。
在Android移動(dòng)設(shè)備中使用BitMap.compress方法將BitMap保存成圖片是每一個(gè)繪圖軟件的必備功能。用戶之間共享的數(shù)據(jù)僅僅是一張圖片,不具備繪畫項(xiàng)目重新編輯功能,降低了移動(dòng)學(xué)習(xí)的樂(lè)趣與效率。為實(shí)現(xiàn)繪畫項(xiàng)目重新編輯的目標(biāo),解決數(shù)據(jù)共享中跨平臺(tái)和兼容性的問(wèn)題。本軟件實(shí)現(xiàn)將具有“圖層信息”的用戶繪畫操作數(shù)據(jù)保存為XML文件的功能,達(dá)到共享用戶繪畫操作信息的目的,提高用戶數(shù)據(jù)交流和移動(dòng)學(xué)習(xí)水平。保存的XML文件中標(biāo)簽根據(jù)“畫筆”類中參數(shù)定義,例如本軟件中包含圖層編號(hào)標(biāo)簽、“畫筆”標(biāo)簽、坐標(biāo)標(biāo)簽和顏色標(biāo)簽等,保存的XML文件示意圖如下所示:
在打開(kāi)與其他用戶的繪畫數(shù)據(jù)時(shí),根據(jù)XML文件標(biāo)簽順序,依次讀取相應(yīng)數(shù)據(jù)并更改內(nèi)存中數(shù)據(jù)值。在讀取數(shù)據(jù)結(jié)束后,將讀取的繪畫操作依次繪制到相應(yīng)Bitmap中,實(shí)現(xiàn)項(xiàng)目恢復(fù)功能,滿足不同用戶之間學(xué)習(xí)交流的需求。
在Android移動(dòng)應(yīng)用開(kāi)發(fā)中,終端有限的內(nèi)存與對(duì)內(nèi)存不斷提升的需求始終是矛盾的。移動(dòng)學(xué)習(xí)軟件采用“三層”管理機(jī)制,實(shí)現(xiàn)了繪圖軟件的“多圖層”管理功能,確保用戶繪圖體驗(yàn)流暢。并且通過(guò)設(shè)計(jì)“畫筆”類保存用戶繪畫操作數(shù)據(jù),實(shí)現(xiàn)“撤銷”與“重畫”功能。在文件保存和用戶交流中,利用多平臺(tái)支持XML文件生成與解析的特點(diǎn),實(shí)現(xiàn)項(xiàng)目恢復(fù)與跨平臺(tái)用戶交流繪畫數(shù)據(jù)的功能。與僅將用戶繪畫數(shù)據(jù)保存為圖片的功能相對(duì)比,無(wú)疑提高了編輯繪畫項(xiàng)目的效率和靈活性,增強(qiáng)了移動(dòng)學(xué)習(xí)系統(tǒng)的性能。
[1] 潘志庚,何高奇,楊柏林,等.移動(dòng)設(shè)備圖形技術(shù)的研究進(jìn)展[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2008,20(3):273-280.
[2] 馮瑤,馮錫煒.基于本體的教育資源推理查詢?cè)拖到y(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(10):14-18.
[3] 李向東,楊昕.基于Android平臺(tái)的移動(dòng)學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2014(4):24-26.
[4] 劉帥,李建偉,勾學(xué)榮.互動(dòng)式移動(dòng)學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[J].北京郵電大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2014,16(6):111-116.
[5] 趙丞兵.基于Android平臺(tái)的移動(dòng)學(xué)習(xí)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2012.
[6] 孟祥武,史艷翠,王立才,等.用戶對(duì)移動(dòng)網(wǎng)絡(luò)服務(wù)偏好學(xué)習(xí)技術(shù)綜述[J].通信學(xué)報(bào),2013(2):147-155.
[7] 陳錦昌,劉菲,陳煌,等.基于工程制圖課程投影知識(shí)的移動(dòng)學(xué)習(xí)游戲設(shè)計(jì)[J].東華大學(xué)學(xué)報(bào)(自然科學(xué)版),2016(4):608-616.
[8] 劉建設(shè),李青,劉金梅.移動(dòng)學(xué)習(xí)研究現(xiàn)狀綜述[J].電化教育研究,2007(7):21-25.
[9] 羅仕鑒,龔蓉蓉,朱上上.面向用戶體驗(yàn)的手持移動(dòng)設(shè)備軟件界面設(shè)計(jì)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2010,22(6):1033-1041.
[10] 楊紅麗,姜皓,秦勝潮,等.Android應(yīng)用能耗漏洞分析技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(9):1-6.
[11] 鄭黎曉,王成.XML模式推斷研究綜述[J].電子學(xué)報(bào),2016,44(2):461-467.
[12] Zhao H,Chen M,Qiu M,et al.A novel pre-cache schema for high performance Android system[J].Future Generation Computer Systems,2016,56(C):766-772.
RESEARCHONMULTI-LAYERMANAGEMENTTECHNOLOGYOFMOBILELEARNINGPLATFORM
Xing Han1Sun Lianying2Shi Xiaoda1Ge Na1
1(CollegeofInformationInstitute,BeijingUnionUniversity,Beijing100101,China)2(CollegeofAutomation,BeijingUnionUniversity,Beijing100101,China)
During the process of implementing drawing software with “multi-layer” management on Android mobile devices, BitMap over-occupied memory resources results in caton and trailing phenomena, and even OOM (Out Of Memory) errors. Therefore, we presented a kind of “tri-layer” management mechanism that not only to achieve the “multi-layer” management function, but also ensured the smooth operation of drawing operation. We designed the “brush” class and the internal data structure, including the coordinates of the user to save the data to the XML format file, so as to achieve the purpose of sharing data across platforms. Our approach can not only improves the interoperability, but also improves the performance of a mobile learning system based on Android platform.
Android system Tri-layers management mechanism XML file Mobile learning
2016-11-26。國(guó)家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(2016YFC0802107)。邢邗,碩士生,主研領(lǐng)域:移動(dòng)終端應(yīng)用,圖形設(shè)計(jì)。孫連英,教授。石曉達(dá),碩士生。葛娜,碩士生。
TP311.52
A
10.3969/j.issn.1000-386x.2017.08.018