這個(gè)mobile開(kāi)發(fā),一般原生開(kāi)發(fā)也許是最合適的方式,但是涉及到跨平臺(tái)的問(wèn)題,有精力的團(tuán)隊(duì)一般都會(huì)逐個(gè)基于移動(dòng)操作系統(tǒng)進(jìn)行開(kāi)發(fā)。但是我追求短小,精悍,快速。于是我希望能夠跨平臺(tái),基于html5開(kāi)發(fā)是一個(gè)不錯(cuò)的選擇,但是終究因?yàn)閳F(tuán)隊(duì)更熟悉flex,于是決定采用flex mobile development來(lái)進(jìn)入移動(dòng)互聯(lián)的開(kāi)發(fā)。
flex是個(gè)雙刃劍,我見(jiàn)過(guò)用的好的,做出來(lái)的效果不比原生差,也見(jiàn)過(guò)做的不好的,那效果,那性能真的不敢恭維,我的團(tuán)隊(duì)一直在臺(tái)式機(jī)的flex app開(kāi)發(fā)上,很少關(guān)于客戶端app的性能優(yōu)化,于是寫(xiě)此日志作為備忘,大部分都是網(wǎng)絡(luò)的共享觀點(diǎn),不過(guò)經(jīng)過(guò)我驗(yàn)證后得以收納:
1、組件盡量使用為移動(dòng)開(kāi)發(fā)優(yōu)化的,皮膚盡量使用簡(jiǎn)潔的,一般最好通過(guò)graphic以及fxg語(yǔ)法來(lái)繪制,不要過(guò)多嵌入位圖。
2、itemRenderer最好用As3的,mobile theme里面有LabelItemRenderer以及IconItemRenderer,里面需要重載的方法有createChildren,measure,drawBackground,layoutContent以及數(shù)據(jù)的setter。相比Flex ItemRenderer,mobile的ItemRenderer的updateDisplayList分割成drawBackground和LayoutContent。IconItemRenderer使用flex ContentCache高速緩存下載下來(lái)的圖形圖像。
3、用styleableTextField,該類只可以在As3中使用,不能在mxml中使用,性能在mobile中比Label和RichText性能高不少。
4、讓flex ItemRender保持矩形形狀并且設(shè)置OpaqueBackground為一個(gè)單一顏色。
5、如果在flex ItemRenderer中繪制自己的背景,則需要將autoDrawBackground為false。
6、flex ItemRenderer如果外觀保持靜態(tài),可以設(shè)置cacheAsBitmap為true。
7、flex ItemRenderer盡量少使用雙向綁定。
8、布局定位組件,盡量使用容器組件的layout屬性來(lái)達(dá)到布局目的,盡量少地嵌入容器組件,減少容器組件層次等。
9、優(yōu)先考慮ConstraintLayout布局方式,減少動(dòng)態(tài)布局。
10、使用Group和Graphics fxg來(lái)代替BorderContainer。
11、flex mobile中不要使用CreationComplete來(lái)初始化view的外觀,直接覆蓋data的setter方法,盡量避免使用雙向綁定以及綁定表達(dá)式。
12、建議在View的ViewActivate中調(diào)用遠(yuǎn)程異步服務(wù)以及處理子組件的初始化等工作,避免用戶體驗(yàn)中的”停頓“。
13、用IncludeIn或ExcludeFrom以state的方式隱藏或顯示組件。
14、如果一個(gè)View來(lái)回被用戶所切入,那么最好指定該View的destructionPolicy為never,即在內(nèi)存中一直保留該view的實(shí)例。
15、使用BitmapImage代替Image進(jìn)行圖像嵌入工作。
16、使用RectangularDropShadow代替DropShadowFilter
17、使用圖像的多個(gè)尺寸備份,而不是使用大圖+縮放或者圖形圓滑技術(shù)來(lái)適應(yīng)不同分辨率和dpi。
18、盡量使用png圖形,而不是采用jpg或者gif.
19、對(duì)于簡(jiǎn)單圖形,可以采用graphics或者rect fill等,對(duì)于復(fù)雜一點(diǎn)的圖形建議采用Adobe Illustrator來(lái)繪制fxg矢量圖形。
20、盡量使用css,利用mobile theme已有的皮膚,因?yàn)檫@些皮膚已經(jīng)高度優(yōu)化。
21、如果mobile theme的css樣式不足,則需要用as3來(lái)編寫(xiě)皮膚或者擴(kuò)展已有組件的皮膚。
posted on 2014-02-06 15:27
不做浮躁的人 閱讀(959)
評(píng)論(0) 編輯 收藏