开发Android必知的工具

程序开发有时候非常依赖使用的开发工具,好的完备的开发工具可以让开发人员的工作效率有大幅度的提高。开发Android也是如此,大家可能都离不开Eclipse或Android Studio这些工具,但他们其实是集成开发环境(Integrated development environment, IDE),把很多工具集成在一个里面,配合可视化界面和键盘快捷键,方面寻找和使用。

不过有时候工具集成太多了,往往让人感到迷惑容易遗忘某个工具的存在。本文就谈谈Android开发和Debug时可使用的一些工具,这些工具都可以在安装了Android SDK的Eclipse或Android Studio找到相应的菜单和按钮来打开使用。但考虑到IDE很多时候打开速度实在太慢了,还是考虑直接使用指令在终端单独开打它们吧。

如果安装了Android Studio,这些工具可以在其安装包中找到,比如在Mac下它们就保存在/Applications/Android Studio.app/sdk/tools路径下。如果是使用Eclipse,那么就需要手动下载Stand-alone Android SDK,解压之后也能在其下的tools文件夹里找到。

android

这个工具会叫android也说明了它地位应该是最高的,的确它的功能包括了管理SDK(Software development kit)和AVD(Android Virtual Device),以及创建和更新开发使用的Project。通过android -h就能看到其基本使用方式。

       Usage:
       android [global options] action [action options]
       Global options:
  -h --help       : Help on a specific command.
  -v --verbose    : Verbose mode, shows errors, warnings and all messages.
     --clear-cache: Clear the SDK Manager repository manifest cache.
  -s --silent     : Silent mode, shows errors only.

                                                                    Valid
                                                                    actions
                                                                    are
                                                                    composed
                                                                    of a verb
                                                                    and an
                                                                    optional
                                                                    direct
                                                                    object:
-    sdk              : Displays the SDK Manager window.
-    avd              : Displays the AVD Manager window.
-   list              : Lists existing targets or virtual devices.
-   list avd          : Lists existing Android Virtual Devices.
-   list target       : Lists existing targets.
-   list device       : Lists existing devices.
-   list sdk          : Lists remote SDK repository.
- create avd          : Creates a new Android Virtual Device.
-   move avd          : Moves or renames an Android Virtual Device.
- delete avd          : Deletes an Android Virtual Device.
- update avd          : Updates an Android Virtual Device to match the folders
                        of a new SDK.
- create project      : Creates a new Android project.
- update project      : Updates an Android project (must already have an
                        AndroidManifest.xml).
- create test-project : Creates a new Android project for a test package.
- update test-project : Updates the Android project for a test package (must
                        already have an AndroidManifest.xml).
- create lib-project  : Creates a new Android library project.
- update lib-project  : Updates an Android library project (must already have
                        an AndroidManifest.xml).
- create uitest-project: Creates a new UI test project.
- update adb          : Updates adb to support the USB devices declared in the
                        SDK add-ons.
- update sdk          : Updates the SDK by suggesting new platforms to install
                        if available.

android sdk

全新的SDK包里是没有编译工具的,Android程序员都知道Android有很多个版本,开发时要针对版本进行设计和编程。android sdk指令就可以开打一个可视化的管理窗口,让用户可以在上边选择下载需要的Android版本以便可以使用其上的API。还可以下载相应API的源码方便学习。
(可以不加sdk参数,直接使用android指令也是打开SDK管理窗口。)

在这个界面上也可以选择将SDK工具,也就是本文中所要提到的工具,更新到最新的版本。如果不小心更新到了现在开发还不兼容的SDK版本,在这里就无法降版本了,只能到晚上重新下载旧的版本,然后拷贝到前面提到的sdk文件下覆盖现有的tools文件夹。

android avd

开发Android程序一定要有设备来做测试。最好的就是破解了的具有管理员权限的实体设备;如果没有,一部可以开启开发者选项的普通实体设备也可以。因为实体设备的运行效率是最好的(只要不是已经差不多块被市场淘汰的老旧的Android手机),呈现的效果也更接近真实用户的体验。如果实在没有实体设备来做开发,那就只能退到虚拟设备上了。

android avd指令可以打开虚拟设备管理器,方便创建和修改Android虚拟设备以供开发测试。不过在此之前还是需要使用SDK管理器去下载相关API版本的设备镜像才能创建指定版本的虚拟设备。

虚拟设备毕竟是借用电脑上的资源所以相对来说运行速度会很慢。但使用虚拟设备也有几个好处:不用担心设备没有电;在做演示的时候可以投影显示;可以创建不同API版本和屏幕尺寸的设备来做查看效果,就不需要花很多钱买齐各种设备

其他功能

android指令还可以用创建Android项目,然后用ant或gradle来编译,这样就可以完全脱离IDE。不过多数情况下还是会倾向于使用IDE来创建,毕竟可视化的界面会更加的便捷。有时候可能想要部署到其他的设备或者开发项目可以使用这些脚本来做到一键创立。

DDMS

这个工具也是极为重要的,使用频率比android是高很多。android这个工具大多数是用来做初始化配置,而ddms则是debug过程中不可缺少的。它可以查看程序使用时所运行的线程信息,网络使用率,可以进行profiling来查看期间那个方法使用了最多的资源。

在Eclipse和Android Studio中都已经很好的集成了logcat内容的展示,在IDE中还能直接通过点击异常的条目来跳转到相应的出错文件的指定行,十分方便,所以一般不会单独在终端打开这个界面。

dmtracedump

这个指令不太常用,主要是把profiling生成的trace文件处理成一个图片文件,显示方法之间的调用关系。除了看得比较酷炫,实际很难直接从图上找出太多有用的价值。

uiautomatorviewer

这个工具在我看来绝对是神器啊,它可以展示出当面屏幕所呈现的视图(View)的布局(Layout)以及其尺寸大小。这样就可以用来调整xml文件来重新安排布局。不过更多时候,我用它找到视图的id,然后通过id反向寻找对应的的xml文件。

这个工具不局限在只能查看自己的应用,它可以显示屏幕上的任何东西。所以可以用它来看看别人的应用使用了什么View来呈现也是不错的,比如看看他们是用ListView还是RelativeLayout,用的是button还是textview加点击事件。

有些局限就是它不支持查看自定义的视图,只会显示系统定义的类型名字。另外如果是利用canvas和OpenGL画的内容,也无法查看到其具体细节。不过知道别人是自己画的,不是简单组合几个系统视图那也是很有用的信息。

traceview

这个工具也是用来打开profiling生成的trace文件的,但它远比dmtracedump要好用的多。traceview会列出每个方法调用所使用的事件,展开方法还能看到方法被调用其他方法所占用的时间百分比。这样就可以知道那个方法用了最多的资源,进而可以对其进行优化或者将其搬离主线程。

monitor

说了那么多工具,再来说monitor工具,我感觉前面说这么多都是在浪费时间,因为只要这一个就可以包含全部前面介绍的工具了。还额外附赠了好些功能,比如uiautomatorviewer一次只能查看一个屏幕布局,但使用monitor捕获会生成独立的文件,查看互不影响。只能说前面的只是为各个工具做功能介绍,真需要用的时候只要打开monitor就好了。

同样的它也可以打开trace文件分析方法调用所花了的时间。

其它

emulator

用指令emulator -avd <name>来启动给定名字的虚拟设备,不过一般还是会通过AVD管理器来打开。但是如果某个虚拟设备经常使用,用这个来打开是挺方便的。要是记不住名字,可以通过android list avd来查看。

monkeyrunner

这个指令可以运行一些脚本来模拟一个返祖用户是如何疯狂的使用开发的应用程序的,用它做一些压力测试也是挺好的。如果不想写脚本,也可以直接使用adb下的monkey指令来做类似的测试。

sqlite3

Android默认自带了sqlite做数据库,SDK中也提供了简洁清晰的API来创建和访问sqlite数据库文件。数据库文件存在于设备的/data/data/<app-packagename>/databases路径下,每个应用都有自己保存数据库文件的文件夹。SDK工具中也带了这个sqlite3工具帮助喜欢用终端来查看sqlite文件的程序员来访问数据库文件。

不过我很少使用这个工具,因为必须要把sqlite数据库文件设备中用adb pull指令提取到电脑上。而对于普通设备,因为缺少操作权限而无妨提到sqlite数据库文件。对于破解的具有管理员权限的实体设备或者虚拟模拟器,它们在设备上就有sqlite3指令可以直接在adb shell下操作。更主要的原因是我还是习惯用具有可视化的程序来查看这些数据。

mksdcard

该工具是为Android虚拟设备提供一个伪造的sdcard来提供设备的存储量。多个设备也可以共用一个由这个工具创建出来的文件,只要他们不同时启动使用。

在终端运行这些工具时,可以在指令最后加上 & 让其在背后运行,这样就可以在一个终端同时打开多个工具了。要像了解其他更多关于最新Android工具的内容,可以浏览Android开发官方网站,还有Android Tools Project Site网站,以及历年Google IO上介绍Android工具的视频。

除了这些工具外,Android还有一个更强大的工具那就是adb,不过它更像是指令没有可视化界面。而且adb已经从tools文件夹移到了platform-tools下了。在之前已经有文章介绍通过它查看Activity Stack的方式,之后也会有更多文章来详细介绍它。

References:

    1. SDK Tools | Android Developers
    2. Managing Projects from the Command Line | Android Developers
    3. Updating SDK from command-line – Android Tools Project Site
    4. Using DDMS | Android Developers
    5. Android: how to use dmtracedump – Stack Overflow
    6. Google I/O 2014 – What’s new in Android development tools – YouTube
    7. Google I/O 2011: Android Development Tools – YouTube
时间: 2024-11-03 21:27:57

开发Android必知的工具的相关文章

移动前端开发人员必知必会:移动设备概述

因为工作岗位的变换带来工作内容的变动,对于移动网站的前端开发已经疏远了好几个月,在这好几个月中有很多新的东西出现,自己所掌握的一些东西也已经陈旧,所以选择了这本书<HTML5触摸界面设计与开发>来系统地学习和整理一下关于移动网站前端开发的知识体系. 之所以选择这本书,一是因为这本书比较新,2014年04月发的第一版.其二是因为作者Stephen Woods,这是Flickr团队的资深前端,Yahoo主页的Javascript技术平台正是出自此人之手. 接下来的时间里会陆续上传关于这本书学习的一

Android必知必会-使用okhttp的PUT方式上传文件

背景 公司的文件上传接口使用PUT协议,之前一直用的都是老项目中的上传类,现在项目中使用了okhttp网络库,就查了下资料,在这里分享一下. 代码实现 /** * @param mediaType MediaType * @param uploadUrl put请求地址 * @param localPath 本地文件路径 * @return 响应的结果 和 HTTP status code * @throws IOException */ public String put(MediaType

Android必知必会-获取视频文件的截图、缩略图

背景 公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下. 代码实现 /** * 获取视频文件截图 * * @param path 视频文件的路径 * @return Bitmap 返回获取的Bitmap */ public static Bitmap getVideoThumb(String path) { MediaMetadataRetriever media = new Me

xamarin开发android收集的一些工具

xamarin开发android收集的一些工具 工欲善其事,必先利其器,从16年下半年开始做xamarin相关的开发,平时使用的一些工具和google插件给大家分享一下,都有下载地址,持续更新. Visual Studio Emulator for Android 通过 Visual Studio 实现最佳Android模拟器(微软家的) Genymotion Android模拟器(google家的) Xamarin Live Player xamarin开发android.ios实时预览器 C

开发中必知必会的常用Linux命令

开发中必知必会的常用Linux命令导语在日常的开发中,Linux操作系统是经常要接触到的,所以关于Linux的常用命令,我们一定要熟悉,在这里,我把平时经常用到的命令总结了一下. 1,基本命令(熟记于心)# 切换目录cd 目录# 退出到上一级cd ..# 输出当前绝对路径pwd# 列出当前目录下所有的文件或目录ls # 创建文件目录mkdir# [强制]杀死进程kill [-9]# -r递归复制 cp [-r] a b# 移动或者重命名mv a b# 删除文件 小心使用rm -rf /rm [-

Android开发人员必知的开发资源

developer.android.com 官方开发人员网站推荐资源 在动手编写第一个 Android 应用之前,用心读一读 Android Design 章节.尤其是以下的这些文章: Devices and Displays  (设备和显示) Touch Feedback(触摸反馈) Metrics and Grids (度量和网格) Iconography (图像研究) 同一时候也请下载 Downloads 部分的代码,这些代码囊括了 Android 图标和控件的设计模板,源文件.样式以及无

Android必知必会--NinePatch图片制作

本文为CSDN学院免费课程<NinePatch图片制作从入门到精通>的笔记,建议新手先观看视频,整理此笔记是为了便于自己复习,有NinePatch基础的朋友可以直接观看第四部分.--[转载请注明出处] 一.工具介绍 这是一张PNG图片,为了方便观看做的比较大.在Android中使用NinePatch图片的一般都是很小的图片,因为当内容多了的时候,背景会自动拉伸来适应内容,而如果图片做大了,内容少,则图片也不会自动变小,所以用作NinePatch图片的png图片一般是比较小的. 打开Androi

JavaScript开发人员必知的10个关键习惯

还在一味没有目的的编写JavaScript代码吗?那么你就OUT了!让我们一起来看看小编为大家搜罗的JavaScript开发人员应该具备的十大关键习惯吧! 随着新技术的不断发展,JavaScript已经不再仅仅只是一个网络语言.现在,我们能够看到很多使用JavaScript来构建基于本地浏览器的Web应用程序的手机,同时也有非常多的灵活的Web应用程序,如Trello.基于JavaScript打造的应用程序在世界上已经非常流行了. 目前,JavaScript仍然是一门比较容易使用和处理的编程语言

Android 必知必会-Android Splash 页秒开之细节处理

如果移动端访问不佳,请访问 –> Github版 背景 今天阅读了两篇 Android Splash 页秒开的文章,就上手试了试,效果确实不错,不过在使用过程中发现个小的问题,应用是发现在 Android 6.0 系统下 APP 启动的时候有个默认的动画,如果按照文章介绍的直接启动下一个加载数据的页面会出现页面闪动,有点美中不足的感觉. 解决方法 解决方法很简单,我这里做出了两处修改:延迟启动和添加淡出的过场动画 SplashActivity @Override protected void o