android杂谈

本文介绍了DalvikVM的运作方式,包括类文件的处理、垃圾收集优化及汇编代码生成方法。同时,阐述了Android软件栈的核心组件及开发环境的设置,包括JDK、AndroidSDK、Eclipse等工具的使用,以及AVD设备的管理、模拟器的启动与文件交互等功能。

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的方式:

  1. 在图形界面下管理AVD--此方法很简单,不在过多解释
  2. 在命令行管理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 镜像文件名称

其他命令:

  1. 查看当前运行的模拟器: adb -devices
  2. 电脑与模拟器之间文件的相互复制: adb push d:/abc.txt /sdcard/ (电脑到模拟器)      adb pull /sdcard/xyz.txt d:/ (模拟器到电脑)
  3. 启动模拟器的shell窗口: adb shell
  4. 安装、卸载APK程序: adb install [-r] [-s] <file> -r是重新安装,-s是安装到SD卡上          adb uninstall [-k] <package> -k表示只删除应用程序,但保留数据和缓存
  5. 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文件。
  6. 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_资源包中。
  7. 创建SD卡:  mksdcard [-l label] <size> <file> 例如:mksdcard 64M D:\avds\.android\avd\xxx.avd\sdcard.img
  8. 启动时指定SD卡: emulator -avd xxxx -sdcard d:\sdcard.img
  9. 命令行创建Android应用: android create project -n HelloWorld -t 6 -p HelloWorld -k com.xx.helloworld -a HelloWorld

Android项目目录

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值