1. 为什么android需要虚拟机,而ios不需要
不是 Android “需要”虚拟机 iOS 不“需要”,而是 Android 的系统机制本来一开始就是基于 Dalvik 虚拟机(现在是 ART)的。因果关系不要弄错。
2. Android 开发用什么工具
安卓常用开发工具有:Eclipsew/ADT、Android SDKandAVDManager、Android模拟器和实际移动设备、Android Debug Bridge(adb)等。
1.Eclipsew/ADT
虽然Eclipse并非唯一可用于开发Android应用的Java开发环境,但它是目前最欢迎的工具,有很大程度上是因为它的成本很低(免费),但最主要的原因还是它与其他Android工具的强大组合功能。最典型的表现就是它与Android Development Tools(ADT)插件的组合(开发者可以通过Android网站下载ADT)。
2.Android SDKandAVDManager
这项SDK可提供多种重要的功能,它能管理不同版本的Android SDK,以及第三方附件、工具、设备驱动程序和文件。第二大功能就是管理用来安装模拟器实体的Android Virtual Device配置(AVD)。
3.Android模拟器和实际移动设备
如果开发者创建完成了一款应用程序,就必须针对自己锁定的设备进行测试。你可以将模拟器与AVD结合在一起模拟目标移动设备的运行环境,但更全面地进行测试,你还是需要一个真正的移动设备,因为模拟器虽然功能强大,但它毕竟不是实际使用的手机,用户也不可能使用模拟器运行应用程序,所以实际移动设备也是测试环节必不可少的工具。
4.Android Debug Bridge(adb)
该工具可将其他工具接入模拟器和设备,它除了可以让其他工具(游戏邦注:尤其是Eclipse ADT插件)功能生效以外,还可以使命令行上传或下载文件,安装或卸载程序包,通过进入设备或模拟器的shell环境访问许多其他功能。
5.Dalvik Debug Monitor Server(DDMS)
无论是通过独立应用程序还是Eclipse perspective访问DDMS,它都能提供检查、调试、与模拟器及设备实体交互的便利功能。开发者可使用DDMS检查运行程序和线程,探索文件系统,搜集堆栈和其他内存信息,附上调试器,甚至是抓取视频截图。通过模拟器,开发者还可以模拟电话接听和发送SMS等状态。
6.LogCat
LogCat是Android日志系统的名称,你可以通过Eclipse、adb读取LogCat数据,它可以提供系统中相关事件的诊断信息。开发者可以由此将应用程序的调试和诊断信息发送到LogCat。
7. Draw 9-Patch
Draw 9-Patch可助开发者更方便地完成应用程序的图形设计,该工具支持开发者将传统的PNG图像文件转化成更具灵活性、更能有效运用于手机应用开发过程的可扩展图像文件。这项工具可以在快速显示效果的环境中简化NinePatch文件的创建过程。
8.The Hierarchy Viewer
开发者可通过独立应用程序或者Eclipse perspective访问The Hierarchy Viewer,它的作用是在运行过程中查看程序的UI布局,提供了一个图表显示应用程序布局和视图层级的情况,开发者可依此判断程序UI布局的存在问题。
3. android sdk和adt的区别
ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。adt只是一个eclipse的插件,里面可以设置sdk路径 SDK(Software Development Kit): 一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,他为开发者提供了库文件以及其他开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包,如果你不用Eclipse作为你的开发工具,你就不需要下载ADT,只下载SDK即可开发。SDK可以自己编译,在linux环境下通过make命令进行,耗时比较长,需要有耐心哦亲。。。然后我们可以把自己编译的SDK通过ADT导入eclipse。在此基础上可以对源码包进行修改,比如修改android system/app/phone.apk中的源码,然后再次调用make命令,就可以产生新的system.image文件,此文件是镜像文件。 ---------- 手机ROM中包含两个基本的image,一个是boot.image,这个image中主要是kernel和文件系统/目录下的一些东西。kernel我就不说了,/目录下主要是init和相关的配置文件 system.image是android系统的userpace的核心,包括/system/bin,system/lib,system/app下的一些东西
Android平台与SDK Tools版本、ADT版本的对应关系
Android平台 SDK Tools的版本 ADT版本
Android 2.2 R7 ADT-0.9.9
Android 2.3 R8 ADT-8.0.1
Android 3.0 预览版 R9 ADT-9.0.0
Android 3.0 R10 ADT-10.0.0
Android 3.1 R11 ADT-11.0.0
Android 3.2 R12 ADT-12.0.0
Android 4.0 R14 ADT-14.0.0
SDK 平台版本,以及API版本
Android平台 API 级别
Android 2.0.11 API6
Android 2.1-update1 API7
Android 2.2 API8
Android 2.3 API9
Android 2.3.3 API10
Android 3.0 API11
Android 3.1 API12
Android 3.2 API13
Android 4.0 API14
4. android如何使用linux系统的一些库
1、放到安卓系统中,每个应用都可以访问
将编译好的libmono2.so放到系统的/system/lib目录下。打开Eclipse上ADT插件里面的File Explorer工具,点击/system/lib目录,选择右上角有个push a file onto devices,打开对话框后,再选择libmono2.so文件,确定后即可将lib文件放到手机中了。(如果不行也可以使用ADB自带adb push命令)。再设置其权限为744,命令如下:
#用命令行方式访问手机设备
adb shell
#进入/system/lib目录
cd /system/lib
#设置libmono2.so权限为744
chmod 744 libmono2.so
此时利用Jni机制编写装载Jni库方法的类,类里面需要严格按照Jni机制进行编写Jni接口
2、放到应用软件中,只有自己的应用可以访问
①在软件工程下新建libs/armeabi文件夹,并将libmono2.so库拷贝进去。
②接下来做的就是重写Jni接口,和方法1的最后过程是一样的。