1. 好多程式在Sun的模擬器上測試非常好,但是拿到Windows Mobile上面之後,問題就出現了N多,其中好多問題可能都是因為程式運行時佔用了太多的空間。
a). 在Sun模擬器上運行正常,在Mobile上裝好之後,無法運行,提示OutofMemory之類的資訊,這可能就是因為你的程式運行時申請記憶體申請不到了,你可以檢查一下你的程式裡面是不是使用了太多的圖片資源,是不是有很多全域變數,基本上就是這塊的原因導致的。
b). 用MMAPI來播放gif動畫,在Windows mobile上顯示一片空白,貌視不支援……,若想在所有平台上使用,最好還是自己解碼,在網上有現成的解碼代碼,使用起來也很簡單。
c). 在程式開頭播放了gif動畫之後(自用網上的解碼類),後面程式的主介面顯示不出來,只是一片空白,但在Sun的模擬器上運行正常。如果去除gif動畫,則在mobile上運行正常。最後一點一點的更改paint中的代碼,因為我使用了雙緩衝,在最後往螢幕的Graphics上draw的時候展開了一片,就導致了整個螢幕空白,但如果不使用開始的gif,就正常。 我估計還是因為空白間申請不到導致的問題,因為展開的時候,會產生一個臨時的Image,這個Image如果申請空間出錯的時候,也就無法顯示了。
d). 在程式mobile上啟動並執行過程中,感覺亂了套,有些介面無法顯示。好像還是因為這個問題
我記得在mobile上好像每個程式可以有32M的虛擬記憶體吧,我的程式其實也不大,但為啥頻頻申請空間失敗呢?這個問題也不明白,所以寫程式的時候要注意著點,有些全域的東西該釋放的時候,就將其置為null,系統會自動釋放它所佔用的空間。
2. 美工給做的圖,看起來很漂亮。但是程式運行出來之後,就在背景上出現一個圓,好像一個大太陽。與是想盡一切辦法,也在眾多網友的協助下,最終還是沒能確定問題出在哪。
不過現在感覺,90%的可能性是因為圖片造成的問題,因為美工做的這個背景圖片,顏色是漸層的,但在手機上無法區分那麼清楚,在某個臨界值以上的顯示一種顏色,在這個臨界值一下的顯示一種顏色,所以就出現了一個明顯的圓圈。
3. 寫了N天j2me程式,今天終於知道Sun的模擬器原來也可以支援滑鼠觸摸呀
更改它的方法是:
開啟 C:/WTK2.5.2_01/wtklib/devices 目錄
這下面有幾個檔案夾,分別對應幾種模擬器,這幾個檔案夾下面都有一個 .properties檔案,這個就是模擬器的設定檔。開啟它之後,尋找touch_screen項,將其改為true
即:touch_screen=true
然後重啟模擬器,就可以支援觸摸了。
4. 做動畫的時候,要使某個圖片不斷的變化然後將其畫在螢幕上。裡面用到了迴圈,在迴圈裡面調用了repaint,但調試的時候卻發現,執行完repaint之後,並不會去調用paint函數,而是最後迴圈執行完了之後再去調用一次paint,所以根本形不成動畫的效果。
後來在網上發貼詢問之後才知道repaint並不會強制去調用paint函數。要想強制重新整理螢幕,必須要還要調用 serviceRepaints。即要用如下的代碼:
repaint();
serviceRepaints();
這樣就可以強制重新整理了。