赞
踩
Android SDK 目录和作用的分析详解
1、add-ons这里面保存着附加库,比如GoogleMaps,当然你如果安装了OphoneSDK,这里也会有一些类库在里面。
2、docs这里面是Android SDKAPI参考文档,所有的API都可以在这里查到。
3、market_licensing作为AndroidMarket版权保护组件,一般发布付费应用到电子市场可以用它来反盗版。
4、platforms是每个平台的SDK真正的文件,里面会根据APILevel划分的SDK版本,这里就以Android2.2来说,进入后有一个android-8的文件夹,android-8进入后是Android2.2SDK的主要文件,其中ant为ant编译脚本,data保存着一些系统资源,images是模拟器映像文件,skins则是Android模拟器的皮肤,templates是工程创建的默认模板,android.jar则是该版本的主要framework文件,tools目录里面包含了重要的编译工具,比如aapt、aidl、逆向调试工具dexdump和编译脚本dx。
5、platform-tools保存着一些通用工具,比如adb、和aapt、aidl、dx等文件,Android123提示,这里和platforms目录中tools文件夹有些重复,主要是从android2.3开始这些工具被划分为通用了。
6、samples是Android SDK自带的默认示例工程,里面的apidemos强烈推荐初学者运行学习,对于SQLite数据库操作可以查看NotePad这个例子,对于游戏开发Snake、LunarLander都是不错的例子,对于Android主题开发Home则是androidm5时代的主题设计原理。
7、tools作为SDK根目录下的tools文件夹,这里包含了重要的工具,比如ddms用于启动Android调试工具,比如logcat、屏幕截图和文件管理器,而draw9patch则是绘制android平台的可缩放png图片的工具,sqlite3可以在PC上操作SQLite数据库,而monkeyrunner则是一个不错的压力测试应用,模拟用户随机按键,mksdcard则是模拟器SD映像的创建工具,emulator是Android SDK模拟器主程序,不过从android 1.5开始,需要输入合适的参数才能启动模拟器,traceview作为android平台上重要的调试工具。
8、usb_driver顾名思义,保存着android平台google官方机型的驱动如nexusone、nexuss,同时也有一些老机型驱动的支持,比如说htcdream、htcmagic和motorola的droid。
Android SDK 包括各种各样的定制工具,可以帮助读者在 Android 平台上开发移动应用程序。其中最重要的工具是 Android 模拟器和 Eclipse 的 Android 开发工具插件,但 SDK 也包含了各种在模拟器上用于调试、打包和安装的工具,针对不同的使用场景,能带来很多便利,下面将逐一介绍这些工具及其使用方法。
Android 模拟器(Android Emulator (emulator.exe))
一个运行在计算机上的虚拟移动模拟器,可以使用模拟器在一个实际的 Android 运行环境下设计、调试和测试用户的应用程序。
集成开发插件环境(Android Development Tools Plugin for the Eclipse IDE,ADT)
用于 Eclipse 集成开发环境的 Android 应用开发工具插件,它为 Eclipse 集成开发环境增加了强大的功能,使创建和调试 Android 应用程序变得更加简单和快速。如果使用 Eclipse 来开发 Android 应用,ADT 插件将带来极大的帮助,具体作用如下。
可以从 Eclipse 集成开发环境内部访问别的 Android 开发工具。通过它可以进行包括截屏、管理端口转发(Port-Forwarding)、设置断点、查看线程和进程信息的一系列操作。
它提供一个新的项目向导,用于快速创建一个新的 Android 应用需要的所有基本文件。
它使构建 Android 应用的过程自动化和简单化。
它提供一个 Android 代码编辑器,用以为 Android 的 manifest 和资源文件编写有效的 XML。
调试监视服务(Dalvik Debug Monitor Service (ddms.bat))
它集成在 Dalvik(Android 平台的虚拟机)中,用于管理运行在模拟器或设备上的进程,并协助进行调试。可以用它来去除进程、选择一个特定程序来调试、生成跟踪数据、查看堆和线程数据、对模拟器或设备进行屏幕快照等。
Android 调试桥(Android Debug Bridge (adb.exe))
它用于向模拟器或手机设备安装应用程序的 apk 文件和从命令行访问模拟器或手机设备。也可以用于将标准的调试器连接到运行在 Android 模拟器或手机设备上的应用代码。
Andorid 资源打包工具(Android Asset Packaging Tool (aapt.exe))
可以通过 aapt 工具来创建 apk 文件,这些文件包含 Android 应用程序的二进制文件和资源文件。
Android 接口描述语言(Android Interface Description Language (aidl.exe))
它用来生产二进制间接口代码,例如在一个服务中可能就会用到。
SQLite3 数据库(sqlite3 (sqlite3.exe))
Android 应用程序可以用来创建和使用 SQLite 数据文件,而开发者和使用者也可以方便地访问这些 SQLite 数据文件。
跟踪显示工具(Traceview (traceview.bat))
它可以生成跟踪日志数据的图形分析视图,这些跟踪日志数据由 Android 应用程序产生。
创建 SD 卡工具(mksdcard (mksdcard.exe))
创建 SD 卡工具帮助创建磁盘镜像,这个磁盘镜像可以在模拟器上模拟外部存储卡(如 SD 卡)。
DX 工具(dx (dx.bat))
DX 工具将 class 字节码重写为 Android 字节码(存储在 dex 文件中)。
生成 Ant 构建文件(activityCreator (activitycreator.bat))
生成 Ant 构建文件是一个脚本,用于生成 Ant 构建文件。Ant 构建文件用来编译 Android 应用程序。如果在安装了 ADT 插件的 Eclipse 环境下开发,就不需要这个脚本了。
Android 虚拟设备(Android Virtual Devices AVD)
每个 Android 虚拟设备(AVD)模拟单一的虚拟设备来运行 Android 平台,这个平台至少要有自己的内核、系统图像和数据分区。开发者可以创建并保持多种虚拟器配置,每种配置环境有其自己的平台版本,硬件配置以及 SD 卡和用户数据,当然还可以有不同的显示外观等个性化设置,而你在运行的时候只需要指定需要使用哪个即可现实多平台下的模拟测试。
重点介以下工具,其他工具,学友们可自行上网搜索
1.layoutopt<wbr>检验布局文件是否合理,布局文件一般是不可缺少的,不良的布局文件【比如:不必要的嵌套,过多的视图,嵌套太深】,很容易引起系统开销过大,程序anp等等。怎么初步检测一个布局文件是否合理?</wbr>
<wbr>使用参考:<a target="_blank" href="http://www.2cto.com/kf/201201/116870.html" style="text-decoration:none; color:rgb(62,115,160)">http://www.2cto.com/kf/201201/116870.html</a></wbr>
<wbr></wbr>
2.hierarchyviewer可以很方便地查看和调试应用中的UI界面,分析其性能
使用参考:http://hb.qq.com/a/20110809/000032.htm
<wbr></wbr>
3.TraceView是android平台配备的一个很好的性能分析工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method
使用参考:http://hubingforever.blog.163.com/blog/static/17104057920112825035143/
<wbr></wbr>
4.monkeyRunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。
<wbr>使用参考:<a target="_blank" href="http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980086.html" style="text-decoration:none; color:rgb(62,115,160)">http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980086.html</a></wbr>
<wbr></wbr>
5.draw9patch是一个制作可拉伸图片的工具
使用参考:http://www.2cto.com/kf/201107/96778.html
http://www.cnblogs.com/qianxudetianxia/archive/2011/04/17/2017591.html
这个HelloWorld项目是基于Android 2.1的)在Eclipse的左侧展开HelloWorld项目,可以看到如下图的目录结构:
下面将分节介绍上面的各级目录结构。
顾名思义(src, source code)该文件夹是放项目的源代码的。打开HelloWorld.java文件会看到如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package helloworld.test;
import android.app.Activity;
import android.os.Bundle;
public class HelloWorld extends Activity {
/* * Called when the activity is first created. * /
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
|
可以知道:我们新建一个简单的HelloWorld项目,系统为我们生成了一个HelloWorld.java文件。他导入了两个类android.os.Bundle,HelloWorld类继承自Activity且重写了onCreate方法。
以下说明针对没有学过Java或者Java基础薄弱的人 @Override 在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。例如,void onCreate(Bundle savedInstanceState){…….}这种写法是正确的,如果你写成void oncreate(Bundle savedInstanceState){…….}这样编译器回报如下错误——The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,以确保你正确重写onCreate方法。(因为oncreate应该为onCreate) 而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate。
Activity类关注创建窗口,你可以用方法Activity子类都实现的:
更多的关于Activity类的详细信息此系列以后的文章将做介绍,如果你想了解更多请参阅相关文档。
android.os.Bundle类:从字符串值映射各种可打包的(Parcelable)类型(Bundle单词就是捆绑的意思,所有这个类很好理解和记忆)。如该类提供了公有方法——public boolean containKey(String key),如果给定的key包含在Bundle的映射中返回true,否则返回false。该类实现了Parceable和Cloneable接口,所以它具有这两者的特性。
该文件夹下面有个R.java文件,R.java是在建立项目时自动生成的,这个文件是只读模式的,不能更改。R.java文件中定义了一个类——R,R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引。看我们的HelloWorld项目是不是如此,如下图:
Image:R thumb.png图2、R.java对应res
该文件夹下包含android.jar文件,这是一个Java 归档文件,其中包含构建应用程序所需的所有的Android SDK 库(如Views、Controls)和APIs。通过android.jar将自己的应用程序绑定到Android SDK和Android Emulator,这允许你使用所有Android的库和包,且使你的应用程序在适当的环境中调试。例如上面的HelloWorld.java源文件中的:
import android.app.Activity;import android.os.Bundle;
这里两行代码就是从android.jar导入包。
包含应用系统需要使用到的诸如mp3、视频类的文件。
资源目录,包含你项目中的资源文件并将编译进应用程序。向此目录添加资源时,会被R.java自动记录。新建一个项目,res目录下会有三个子目录:drawabel、layout、values。
main.xml
<?xml version"utf-8"?>
项目的总配置文件,记录应用中所使用的各种组件。这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。AndroidManifest.xml将包含如下设置:application permissions、Activities、intent filters等。
如果你跟我一样是ASP.NET出生或者学过,你会发现AndroidManifest.xml跟web.config文件很像,可以把它类同于web.config文件理解。 如果你不是,你可以这样理解——众所周知xml是一种数据交换格式,AndroidManifest.xml就是用来存储一些数据的,只不过这些数据时关于android项目的配置数据。
HelloWorld项目的AndroidManifest.xml如下所示:
<?xml version"utf-8"?>
关于AndroidManifest.xml现在就讲这么多,此系列后面的文章将单独详细介绍。
记录项目中所需要的环境信息,比如Android的版本等。 HelloWorld的default.properties文件代码如下所示,代码中的注释已经把default.properties解释得很清楚了:
default.properties# This file is automatically generated by Android Tools.
split.density=false
target=android-7
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。