ArcGIS API for Android 案例教程 4
图 9 “Hello World”的工程目录结构 从Eclipse中展开“AgsSampleHelloWorld”工程,我们就可以看到图 9这样的目录结构。在这个目录结构中,最扎眼的就是“src”目录和其中的“HelloWorld.java”,这让我们马上意识到这是一个Java程序。没错,Android系...
- 作者:牛魔王的作坊来源:http://blog.csdn.net/warrenwyf/|2011年03月11日
图 9 “Hello World”的工程目录结构
从Eclipse中展开“AgsSampleHelloWorld”工程,我们就可以看到图 9这样的目录结构。在这个目录结构中,最扎眼的就是“src”目录和其中的“HelloWorld.java”,这让我们马上意识到这是一个Java程序。没错,Android系统虽然是基于Linux内核的,但是在Android开发应用程序却是使用Java语言,Java代码编译出来的字节码将运行在Linux系统中的一个虚拟机中,这个虚拟机名为Dalvik[1]。
在工程的根目录下有两个配置文件,“default.properties”和“AndroidManifest.xml”。这两个配置文件在这么“根”的位置,当然是对整个工程有提纲挈领的作用,先看这个“default.properties”,打开只有一行实际内容(和很多行注释):
target=android-8
从这个文件的注释中知道,你既无需修改这个文件,也从中得不到很多信息,这个文件只是告诉了Android的编译系统,这个工程的目标平台是“android-8”,也就是Android 2.2。
图 10 Android平台版本和API版本的关系
但是,“AndroidManifest.xml”就不一样了,从名字就可以知道,这是Android工程的清单文件,直接用文本编辑器打开它可能是如下的内容:
"1.0" encoding="utf-8"?>
package="com.esri.ARCGIS.android.samples"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name">
在这个清单文件的下方,有一些
图 11 使用Android开发插件配置工程权限
再往上看,清单文件中的
“@drawable/icon”显然是这个程序的图标,但是具体对应到哪个图片呢?这还得继续看当前工程的目录结构,在工程目录下有个“res”文件夹,其中主要存放应用程序的各种资源,而以“drawable-”打头的几个目录就是存放图片的目录,不同目录后面会跟着“hdpi”[2]、“mdpi”[3]、“ldpi”[4]之类不同的内容,这些目录下对应的是不同尺寸屏幕下的不同图片,因为小屏幕可能只需要小图片,大屏幕可能就需要更大更精细的图片。
图 12 res目录下的资源
“@string/app_name”则对应了一段字符串,这个字符串是在“res/values”目录下的“strings.xml”文件中定义的,打开这个文件是如下的内容:
"1.0" encoding="utf-8"?>
想必,等会应用程序运行起来后,它的标题栏上应该会显示“HelloWorld Sample”这一行内容,对吧。
为什么我们在一些目录和XML文件中配置一些内容,Android程序就能知道从哪里去获取真实的资源呢?因为Android开发工具会帮助我们生成一个“R.java”源文件,这个源文件定义了一个名为“R”的类,这个类中不同的静态变量指示了各种资源的不同位置,在后面你可以看到,在程序的Java代码中,我们可以直接通过R.xxx.xxx指代一个资源。
图 13 自动生成的R.java
清单文件的
[1] http://zh.wikipedia.org/zh-cn/Dalvik虚拟机
[2] 高分辨率图片,如WVGA(480x800)、FWVGA(480x854)
[3] 中等分辨率图片,如HVGA(320x480)
[4] 低分辨率图片,如QVGA(240x320)