每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),主线程负责处理和ui相关的事件,因此主线程通常又叫UI线程。而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。如果在非UI线程直接对UI进行了操作,则会...
分类:
移动开发 时间:
2015-05-04 08:38:21
阅读次数:
199
概述:每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),主线程负责处理和ui相关的事件,因此主线程通常又叫UI线程。而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。如果在非UI线程直接对UI进行了操作,则会报错:CalledFromWrongThreadException only the origi...
分类:
移动开发 时间:
2015-04-25 13:43:58
阅读次数:
324
Dalvik虚拟机是Google的用于移动设备的Android平台的一个主要部分。虚拟机可运行Java平台应用程序,这些应用程序被转换成紧凑的Dalvik可执行格式(.dex),该格式适合内存和处理器速度受限的系统。Dalvik虚拟机的作者是丹伯恩斯坦(Dan Bornstein)。与 大多数虚拟机...
分类:
移动开发 时间:
2015-04-17 20:20:35
阅读次数:
144
介绍这个壳的核心——字节码解释器,它参考了dalvik虚拟机的解释器。不需要hook、注入。目前只支持算数运算指令。我个人把dalviki指令分为这么几类:算数运算指令。引用类指令。如const-string、invoke-kind,这类指令需要引用dex的资源。其他指令解释执行算数运算指令较为简单...
分类:
移动开发 时间:
2015-04-07 08:28:37
阅读次数:
534
参考源码版本:Android-4.4.4_r2
提示:大部分分析直接注释在代码内。
dvmInterpret函数中调用了dvmInterpretPortable函数对方法的字节码进行解释执行,dvmInterpret在dalvik/vm/interp/Interp.cpp文件中。
dvmInterpretPortable函数在dalvik/vm/mterp/out/Int...
分类:
其他好文 时间:
2015-04-04 08:02:46
阅读次数:
264
Android基础-01
1.1G-4G的介绍
2.Android操作系统介绍
3.Android历史介绍
4.Android系统架构(重点)
系统架构的四个层次:
1、应用程序层:自己的开发应用程序都是运行在这一层;
2、框架层:开发应用程序使用的API都在这一层;
3、类库层:基础类库;
4、linux内核:
5.两种虚拟机的不同(重点)
JVM与Dalvik虚拟机之...
分类:
移动开发 时间:
2015-04-03 13:38:54
阅读次数:
166
源码版本:Android-4.4.4_r2
提示:大部分分析直接注释在代码内。
接着上一篇【分析】dalvik虚拟机启动过程(一)
JNI_CreateJavaVM函数调用dvmCreateJNIEnv创建JNIEnv后,接着又调用了dvmStartup函数初始化VM:
/*
* VM 初始化。
* VM initialization. Pass in any...
分类:
其他好文 时间:
2015-03-29 00:37:57
阅读次数:
228
源码版本:Android-4.4.4_r2
在AndroidRuntime::start中调用AndroidRuntime::startVm函数启动了虚拟机,然后又调用了AndroidRuntime::startReg函数注册Android函数:
/*
* 向 VM 注册Android本地函数。
* Register android native functions with...
分类:
其他好文 时间:
2015-03-29 00:37:25
阅读次数:
209
源码版本:Android-4.4.4_r2
提示:大部分分析直接注释在代码内。
主要函数的调用层次:
|AndroidRuntime::start
|AndroidRuntime::startVm
|JNI_CreateJavaVM
|dvmCreateJNIEnv
|dvmStartup
...
分类:
其他好文 时间:
2015-03-29 00:37:22
阅读次数:
178
1、Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念
DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念。
2、sim卡的EF文件有何作用
sim卡的文件系统有自己规范,...
分类:
移动开发 时间:
2015-03-16 14:34:04
阅读次数:
238