Android與J2me比較
來源:互聯網
上載者:User
一、
程式入口J2me程式入口類為
MIDlet,所有的
j2me程式都要繼承該類來初始化
j2me程式。
Android程式入口是
Activity類。下面先看看她們的生命週期。J2me MIDlet
生命週期1
、
startApp
(活動狀態)程式啟動的時候會調用該方法來初始化使用者需要的資源。2
、
PauseApp
(暫停狀態)當手機來電接電話的時候,會調用該介面。使用者可以調用該介面停止也寫線程的操作。3
、
destroyApp
(銷毀狀態)程式退出的時候調用。使用者可以調用該介面處理處於活動狀態的線程。該幾個周期狀態有
AMS
調用轉換,也可以程式碼調用轉換。
resumeRequest
調用會的結果是
AMS
會調用
startApp
方法,
notifyPaused
調用的結果是可能
AMS
調用
PsuseApp
,
notifyDestroyed
調用會使
AMS
銷毀該
midlet
。Android Activity
生命週期1
、
onCreate
程式開始初始化的時候調用該介面,使用者導航返回到
Activity
的時候也會調用該介面。類似於
J2me
裡面多個
Canvase(Displayable)
切換。所以
Activity
也類似於
Displayable
。2
、
onStart onCreate
調用完後,程式調用該介面。3
、
onResume onStart
調用後調用該介面。此時
Activity
進入運行狀態。4
、
onPause
新的
Activity
啟動的時候調用該介面。5
、
onStop
該
Activity
不可見的時候調用。6
、
onDestroy
程式銷毀的時候調用。二、
顯示組件J2me
中所有可顯示的組件都是直接或間接的繼承了
Displayable
,直接的是
Canvas
和
Screen
。不同的繼承導致了低級
UI
和進階
UI
的區別。
J2me
中現成的
UI
組件都是直接或者間接繼承了
Screen
。只要調用
Display.getDisplay(MIDLet instan).setCurrrent(Displayable disp)
,就可以把組件顯示到手機介面上。切換介面的時候也可以使用該介面。Android
可見的組件直接或者間接繼承了
android.view.View
。通過
Activity.setContentView(View view)
就可以顯示在
android
手機介面上,切換介面的時候也可以使用該介面。如果是直接繼承了
View
而不是
Android
內建的
UI
組件,那麼還要自己去實現它的重新整理,類似
J2me
的低級
UI
組件。三、
重新整理處理J2me
重新整理:J2me
進階
UI
組件由組件內部重新整理實現,低級
UI
可以通過
Canvas
的
repain()
來重新整理。低級
UI
架構可以用
MVC
方式來實現,建議使用二級緩衝。Android
重新整理:Android
提供介面
onLayout
來提供該
View
調整其裡面組件元素的位置布局,使用者只需要重寫該介面就
ok
。重新整理介面
onDraw
,該介面用來重新整理介面裡面的繪製元素。該介面類似
j2me Canvas
的
paint
介面。不過兩個平台傳得參數有些意思。
J2me
傳的時
Graphics
,而
android
傳得是
Canvas
。
Android
繪製的時候會傳入一個參數
Paint
。該對象表示繪製的風格,比如顏色,字型大小,字型格式等。如果是移植的話,建議
android
也使用二級緩衝,這樣也容易管理。四、
使用者事件處理J2me
的鍵盤、觸筆事件都是通過
Canvas
定義介面分發。使用者只需要從寫這些介面就
ok
。它們分別是。鍵盤介面為:
keyPressed(),keyRepeated(),keyReleased()
。觸筆介面為:
pointerPressed(),pointerReleased(),pointerDragged()
。Android
的鍵盤,觸筆通過
View
中定義,只要
override
其介面就
ok
了。觸筆處理介面
onTouchEvent
。軟鍵盤
onKeyDown()
、
onKeyUp()
、
onTracKballEvent()
。