简单介绍jvm 和 dalvik 并说明两者的区别
发布网友
发布时间:2022-05-18 04:02
我来回答
共1个回答
热心网友
时间:2023-10-09 00:42
在J2ME中,刷新都是在canvas中通过调用线程结合repaint()来刷新, 他们使线程不断去循环,去调用canvas, 笔者在Android编程语言入门时也曾经想用J2ME的模式用在android 中,结果报异常了, 为什么呢?
很多人认为Dalvik虚拟机是一个Java虚拟机,因为Android编程语言恰恰就是Java语言。但是这种说法并不准确。因为Dalvik虚拟机并不是按照Java虚拟机的规范来实现的,两者并不兼容;同时还要两个明显的不同: Java虚拟机运行的是Java字节码。
而Dalvik虚拟机运行的则是其专有的文件格式DEX(Dalvik Executable)。所以在以前JAVA 里面能使用的模式。可能在android 里面用不起来 。在自带的例子里面他是通过消息的机制来刷新的。而在Android编程语言的消定义比较广泛。
比如,手机的暂停, 启动, 来电话、短信,键盘按下,弹起都是一个消息。总的来说, 事件就是消息;只要继承Handler类就可以对消息进行控制,或者处理, 根据具体情况进行具体处理:
class RefreshHandler extends Handler {
//响应消息。
public void handleMessage(Message msg) {
SnakeView.this.update();// 重要页面
SnakeView.this.invalidate();刷新页面
}
// 向外提供人工的调用消息的接口,
public void sleep(long delayMillis) {
this.removeMessages(0);//注消消息
// 添加消息,
sendMessageDelayed(obtainMessage(0), delayMillis);
}