我们知道,开发一个软件产品,最怕的就是没有辅助IDE工具。如果要用文本编辑器,一行一行的coding,效率太低了。现在的应用非常复杂,一个应用包括资源文件、源码文件、签名加密文件等,非常多。好在Android为应用开发提供了对应的便利工具。开发APP应用最常用的是SDK,另外还有NDK。这两大利刃作为分发包其中包含了许多开发工具。另外最重要的一点就是ECLIPSE,基于Eclipse的ADT插件可以自动调用之些工具,让你图形化的完成一个软件从开发到发布的全过程。

1.4.1Android AVD

开发一个应用APP,首要的条件就是可以运行这个应用APP的机器,通常我们可以将开发好的应用装载到真机上进行测试,但是一般情况下,特别是针对不同版本的Android开发,这是非常不方便的。因此,Android提供了Android virtual device(AVD),注意,这个AVD可不是像它字面所表达的那样是一个虚拟设备,实际上它只是我们Android模拟器的虚拟设备配置项,这些配置项定义了将要运行的模拟器的硬件和软件特征。起动一个模拟器首要条件就是AVD。通常管理AVD是通过SDKmanger的图形化界面,当然这个界面也可以从Eclipse中直接打开。

从命令行,也可以创建、删除、更新一个AVD,缺省创建的AVD文件保存路径在C:\Documents and Settings\<user>\.android\下。

1.4.2 Android 真机调试

我们开发一个应用APP,最终的目的就是发布到手机上运行。在开发过程中,我们通常使用模拟器,便于加快开发速度,另外也便于在不同的硬件和不同的操作系统版本下进行调试。但有些如重力感兴等,模拟器无法模拟的硬件条件,你就需要使用一台真机进行一下测试。在windows XP平台上,你需要安装USB驱动,安装完了USB驱动后,你可以在设备管理器中检查是否有新增设备adb USB Devices,需要手机与计算机用USB连上,才能看到如下内容。

你也可以使用adb 命令来查看设备

其次你需要设置你的Android手机,在设置-》应用程序-》开发—》USB调试,将这个选项勾上。另外你的应用在AndroidManifest.xml中设置android:debuggable=”true”。

运行你的应用时,你就会发现一个弹出框要求你选择应用的部署机器,是模拟机还是真机。

1.4.3 Android 模拟器调试

Android 模拟器是一个基于QEMU的应用,我们知道QEMU是大名鼎鼎的不同CPU机器的模拟器,它能模拟X86,ARM机器的CPU。在Android源码中,它被命名为goldfish,用来模拟一些ARM SOC的常见功能,如arm926ej-S CPU, MMC,RTC,keyboard,USB gadget,Framebuffer,TTY driver NAND FLash等。使用android模拟器首先需要创建一个AVD,通过AVD中定义的硬件和软件选项,模拟器模拟不同的硬件和软件需求。

起动和停止一个模拟器非常简单,通常可以在Eclipse的AVD界面中直接起动,也可以用命令行来启动。

Android模拟器运行起来后,所有的数据都来源于AVD下面的四个image:userdata.img sdcard.img userdata-qemu.img cache.img.这些image在创建AVD时通常都会创建好,如果没有创建或者想要更换时,可以在启动模拟器时指定参数-data/-cache/-initdata/-sdcard/ 等。

Android模拟器启动以后,自己为自己建立了一个独立的网段10.0.2.*,在这个网段与外面相连的是一个虚拟路由器。

在这种网络环境下,有两点特别需要注意,一个是你的HOST是代理上网时,显然模拟器需要配置代理,可以启动时加-http-proxy参数,也可以启动后在设置中设置;另一个是你的主机是DHCP获取IP和DNS,这时候,特别是在WINDOW环境下,模拟器是不能自动根据主机来得到正确的DNS,需要手工设置。方法也比较简单,就是adb shell后 setprop就可以了。

Android模拟器提供了两个连接端口,一个是ADB shell通常是5555,另外一个是Console 口,这两个端口与平常的LINUX登陆是不一样的。CONSOLE口是控制口,主要用来对一些硬件进行管理,ADB Shell是登陆到操作系统之上。

 

通过以上的介绍,我们可以知道Android模拟器是非常强大的。但是有些还是不支持的,比喻USB,蓝牙,像机、电量等硬件方面的一些特征。

1.4.4 Android项目生成器

Android应用开发包含了一些配置文件、资源文件、程序源文件及库文件等,这些文件共同组成的一个项目工程。默认推荐使用Eclipse ADT自动产生这些相关文件。按照功能划分,Android分成应用工程项目、测试工程项和库工程项目。其中库工程项目和一般应用工程项目创建时都一样,只要将一个属性选上就好了。

是库工程项目的default.properties中增加一行:android.library=true。这里比较烦的就是所有库文件中组件的声明需要也主应用工程的Manifest.xml中重新声明。因为可以通过Eclipse IDE很方便的创建和维护一个工程项目,使用命令方式进行工程创建的我就不细述了,但是原理是一样的。

1.4.5编译和运行

基于Eclipse 的开发,是非常简单,隐藏的按钮后的工具调用,通常你是不需要了解的,但从内部机理来说,对一个应用来说,编译和运行是通过Android提供的一些工具来实现的。如下图所示:

这些过程,当你运行Eclipse-&gt;Run as-&gt;as a Android application,Eclipse自动调用这些工具完成打包签名过程,并且启动模拟器,调用ADB工具将应用安装到模拟器上。在Eclipse上你也可以配置run configuration修改运行时的一些参数,如下图所示,你可以选择缺省的模拟器(你有多个模拟器的前提下)。

当然你也可以使用ant编写脚本工具进行项目编译打包测试。ant会跟自动产生的build.xml进行编译、打包发布过程。基于Eclipse IDE的开发,最后生成的apk包放在bin目录下。缺省情况下这个apk包使用的是默认的Debug key进入签名的。也可以手工改变,在eclipse配置项中,如下图所示:

1.4.5 Android 调试方法

作过程序开发的人都知道,所有的程序都不是写出来的,都是调试出来。一个程序不经过生死调试经历的程序通常都不是好程序。程序员通过调试过程更好的理解了自己的程序原理,同时也避免了在客户手中出现更多问题的可能性。但是调试也是非常复杂的。从面向对象的角度来说,你写出的一个对象想要和另外一个对象进行交互时,经常会有不同的场景出现。就像你相亲,去跟一个办公室秘书相亲,通常都认为办公室秘书怎么也是娇小玲珑的小女生吧,但实际上也有男的,也有大妈级人物。所有写一个程序,有一个好的调试工具对程序员来说,绝对是一个幸福的事情。写C时候对GDB就非常喜欢。到了Android时来了一个ADB,注意,它可不是GDB这样的调试工具。实际上因为你的应用是JAVA应用,因此基于JDWP-DEBUGGER的JAVA Debugger通过DDMS加上ADB,就这样三下两下就可以直接和远程模拟器的Dalvkit VM进行对话了。这就是Google的强大,强大到让你不用转换以前JAVA开发经常就可以

直接进行Android应用调试了。

JDWP,全称是Java Debug Wire Protocol,从名字就可以看出来,它是一个协议。它跟实现无关,通常的架构模式如下所示:

通常一个Debugger实现,都分成两部分,一部分基于IDE或者直接的应用如JDB的Debugger,另外一部是基于JWMTI接口(由VM提供的)实现的JDWP的Agent。Android Dalvkit是部分基于Apache Homeney 的VM实现,因此,Android借助ADB通讯协议实现了一个简单的调试环境,注意有些JDWP未完全实现。

Eclipse IDE会有一个DDMS 视图,点击它,实际上在SDK上运行DDMS命令也会打开DDMS图形工具,这两者在界面上有一些小小差异,但功能都一样的。如下图所示:

通过DDMS你可以查看到如下内容:

【1】显示调试的设备,包括真机和模拟器

【2】模拟控制,操作一些设备特性

【3】LOGCAT,记录系统日志,类似于LINUX中的SYSTEM LOG,根据不同的级别进行格式化输出

【4】Threads/Heap/AllocationTracker/File Explore,基于ADB的一些工具应用,可以让你方便的查看系统

DDMS可以让你同时调试多个应用,因此,DDMS对每个DalvkVM配置了一个调试端口,从8600开始向上分配。但Debug用来接收Dalvik VM发过的来数据使用的商品是8700.

Android为应用开发默认提供了两个用于调试的类,一个是android.util.log,另外一个android.os.Debug。前一个应用使用它用来记录不同级别的日志,所以在Android应用中使用system.printout缺省是不能在logcat中显示的。需要设置属性:

$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start 后面一个DEBUG主要用来对系统内存及进程方面跟踪,输出一个特定的文件,通过这个文件,使用traceview工具可以查看系统的性能。

Android应用App开发工具相关推荐

  1. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  2. 9大跨平台移动 App 开发工具推荐

    如今,移动应用开发已经变得越来越重要,开发人员面临最大的挑战之一就是在多个平台上运行应用程序.最新的应用程序代码支持"一次编写,到处运行"(WORA)的概念,即只要在一个平台上编写 ...

  3. H5 App开发工具 WeX5

    WeX5是H5 App开发工具,Apache开源,免费开放所有代码,所开发的应用均能"一秒打开"!对跨平台多前端应用开发的支持极好,一次开发,多平台运行 . WeX5采用混合应用( ...

  4. 安卓app开发工具_怎么开发app软件需要多少钱?主流app开发工具盘点

    现在智能手机的快速普及让手机app在生活中越来越重要,很多企业及创业者也意识到了app的重要性,但是怎么开发app软件?有哪些主流app开发工具呢?这里就为大家分享一下如何快速开发app软件. 一.编 ...

  5. [Android] [Hybrid APP开发简述]

    Hybrid APP Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具"Native App良好用户交互体验的优势"和& ...

  6. 5 款傻瓜式手机 APP 开发工具

    Google推出的App Inventor Android App开发工具可以让你仅通过拖拉式的简单操作就可以创建自己的Android App.对于那些为了特定目的想要动手尝试开发一个简单应用的用户, ...

  7. 5款开发手机应用的傻瓜式APP开发工具

    Google推出的App Inventor Android App开发工具可以让你仅通过拖拉式的简单操作就可以创建自己的Android App.对于那些为了特定目的想要动手尝试开发一个简单应用的用户, ...

  8. 傻瓜式APP开发工具

    随着智能手机及APP应用程序的普及,越来越多的企业和个人意识到APP的营销价值,出于对技术的敬畏,很多企业下意识认为开发APP是一个有难度的技术活,所以就算有心想开发一个企业自己的APP来对企业或者产 ...

  9. 5个在线制作APP开发工具介绍和APP公司酷站欣赏

    不会编程,自己也能制作出高质量的受欢迎的App.如果你也想免费给自己公司或者产品开发App客户端的,也一样可以参考下面5个在线制作高质量的APP开发工具. 或者我们也可以欣赏下 这5个App公司的运营 ...

最新文章

  1. 鸟哥的Linux私房菜(基础篇)-第零章、计算机概论(零.5)
  2. 学python的总结_为什么那么多自学Python的后来都放弃了,总结起来就这些原因
  3. httpinvoker远程调用超时_RPC远程过程调用协议工作原理分析
  4. Hbase(3)——desc、alter、时间戳
  5. 你离顶尖网络工程师有多远?
  6. OpenSSL以及私有CA的搭建
  7. java ee 代码,JavaEE用户登录注册代码(免费)
  8. python3使用paramiko
  9. python modules_python—模块-
  10. JAVA自行车类代码_租借自行车RentBikeController
  11. Linux基础-进程管理
  12. mysql时间格式化%Y与%y_MySQL日期格式化 DATE_FORMAT() 函数
  13. python opencv 凸包 convexHull
  14. 易语言制作提示类对话框
  15. 探索式测试解密——无探索,不测试!
  16. 郎平,你回来会毁了中国女排!
  17. maya的BonusTools
  18. 新版Microsoft Edge下载时,提示验证失败的问题处理
  19. 解决Excel中VBA批量打印速度慢的问题
  20. Kubernetes K8S之资源控制器Daemonset详解

热门文章

  1. Centos篇-Centos Minimal安装
  2. 微信小程序获取WIFI列表可手动输入密码连接
  3. 青提WiFi微信小程序安装教程常见错误解析
  4. windows挂载webdav
  5. 自己制作Chrome绿色版本。
  6. Visual Studio 插件开发
  7. 计算机网络中的网络安全
  8. SaaS、PaaS、DaaS、IaaS四种云系统说明
  9. Java 中的 getResource 方法
  10. python request.get