Dalvik VM
首先,Dalvik VM获取生成的java类文件(.class),将他们组合为一个或多个Dalvik可执行文件(.dex)。它重用多个类文件中的重复信息,与未压缩的传统.jar文件相比,有效的将控件需求减少了一般。
其次,Goole公司在Dalvik VM中对垃圾收集进行了调优,但它在早期版本中选择了删除JIT(Just-In-Time,即时)编译器。Android2.3添加了JIT,报告称这可在各种场所提供快2到5倍的原始性能,将通用应用程序的性能提升10%~20%。
最后,Dalvik VM使用了一种不同的汇编代码生成方法,它使用寄存器而不是栈作为主要的数据存储单元。Goole公司希望这样能将指令减少到30%,所以Android中最终的可执行程序代码不是基于Java字节码,而是基于.dex文件。这意味着无法直接执行Java代码,必须首先得到Java类文件,然后将它们转换为可链接的.dex文件。
Android软件栈
Android平台的核心是Linux内核,但Android设备上的绝大部分应用程序都是使用Java开发,通过Dalvik VM运行。
设置开发环境
-
下载JDK5.0或以上版本--Path路径到JDK目录下的bin文件夹
-
下载Android SDK--Path路径到android-sdk的tools目录和platform-tools目录
- 下载Eclipse3.6--集成JDK和Android SDK到eclipse
- 安装ADT插件--https://dl-ssl.google.com/android/eclipse
- 最后一步,新建一个HelloWorldAndroid工程,测试开发环境是否搭建成功
Android常用工具介绍
创建、删除和浏览AVD之前,通常应该先为Android SDK设置一个环境变量ANDROID_SDK_HOME,如果不设置该环境变量,开发者创建的虚拟设备默认保存在C:\Documents and Settings\<user_name>\.android目录(以Windows XP为例)下;如果设置了ANDROID_SDK_HOME环境变量,则虚拟设备就会保存在%ANDROID_SDK_HOME%/.android路径下。
需要注意的是,此处的ANDROID_SDK_HOME不同于JAVA_HOME、ANT_HOME,它不是指向的安装目录。
两种管理AVD的方式:
-
在图形界面下管理AVD--此方法很简单,不在过多解释
-
在命令行管理AVD:
如果直接执行android命令将会启动Android SDK和AVD管理器。除此之外,该命令还支持如下子命令:
如果要查看当前已安装的Android版本及已安装的AVD设备,则运行 android list 或者android list avd命令即可。
创建一个全新的AVD设备,需要执行此命令: android create avd -n <avd 名称> -t <Android 版本> -p <AVD 设备保存位置> -s <选择 AVD皮肤> -n 和 -t是必选的
启动模拟器的两种方法:1. emulator -avd <AVD 名称> 2. emulator -data 镜像文件名称
其他命令:
-
查看当前运行的模拟器: adb -devices
-
电脑与模拟器之间文件的相互复制: adb push d:/abc.txt /sdcard/ (电脑到模拟器) adb pull /sdcard/xyz.txt d:/ (模拟器到电脑)
-
启动模拟器的shell窗口: adb shell
-
安装、卸载APK程序: adb install [-r] [-s] <file> -r是重新安装,-s是安装到SD卡上 adb uninstall [-k] <package> -k表示只删除应用程序,但保留数据和缓存
-
DX工具的常见命令格式: dx --dex [--dump-to=<file>] [--core-library] [<file>.class | <file>.{zip, jar, apk} | <directory>] [--dump-to=<file>]指顶生成的*.dex文件的文件名,而[--core-library]指定需要转换的*.class、*.zip、*.jar文件或者目录。例如 dx -dex --dump-to=g:\a.dex --core-library d:\helloworld\bin 将d:\helloworld\bin 路径下的所有二进制文件转换为g:\根目录下的a.dex文件。
-
AAPT工具也支持很多子命令: aapt -A <附件资源路径> -S <资源路径> -M <Android 应用清单文件> -I <额外添加的包> And <目标文件路径> 例如 aapt -A assets -S res -M AndroidManifest.xml -I D:\android-sdk-windows-platforms\android-9\atforms\android-9\android.jar -F bin\res.ap_ 将当前目录下assets子目录、res子目录、AndroidManifest.xml文件都打包到bin\res.ap_资源包中。
-
创建SD卡: mksdcard [-l label] <size> <file> 例如:mksdcard 64M D:\avds\.android\avd\xxx.avd\sdcard.img
-
启动时指定SD卡: emulator -avd xxxx -sdcard d:\sdcard.img
-
命令行创建Android应用: android create project -n HelloWorld -t 6 -p HelloWorld -k com.xx.helloworld -a HelloWorld
Android项目目录