您的位置:首页 > 移动开发 > Android开发

初识android的project

2010-09-27 12:11 549 查看
刚开始接触android开发平台时,对于只写过C和基本JAVA程序的我来说(只有一个源文件),感到有点那一入手。通过两个星期对android开发平台的熟悉,我想谈一下自己对android的工程(project)结构各部分的作用以及那样分布的意义。下面图片是一个 工程的结构图:



如上图,一个工程主要包括src,gen,res目录和一AndroidManifest.xml文件。

src文件夹里包含了我们的android应用程序的全部源代码(.java),比如上面的图片ArrayAdapter工程里包含一个com.ArrayAdapter的包,包里只有一个程序文件ArrayAdapter.java。当然,一个工程可以包含有多个包(根据我们的需要),一个包可以包含多个.java程序文件。

gen目录一下的R.java使我们的开发平台自动生成的(也就是说其实我们不用管它),R.java包含了我们引用的UI界面,图片,定义在res目录里的String.mxl文件里的String的相应id(就像我们的身份证号码一样,是唯一的,如果我们想在源代码引用UI,图片,String,那么我们必须通过id)。例如ArrayAdapter工程的R.java内容如下:



其中的text1便是我在res/layout/main.xml定义的一个名叫text1的TextView的UI元素。

res是一个存放各种资源的目录。drawble—???是用来存放图片资源的,例如

res.drawable-hpi里便存放了一张名为ico.png的图片。

layout目录是用来描述用户UI界面的布局的,其文件后缀名为.xml。

value包含了所有的xml参数描述文件,我们也可以自己定义String(上面说到的),数组等。例如定义String.xml:

?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, ArrayAdapter!</string>
<string name="app_name">ArrayAdapter</string>
</resource>

上面定义了一个名为hello的String,内容为Hello,World;定义了一个名字为app_name的String,内容为ArrayAdapter.

AndroidManifest.xml是每个程序都有的文件,他会告诉系统如何处理你所创建的所有顶层组件(Activity,Service,IntentReceive和ContentProvider),例如:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ArrayAdapter"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ArrayAdapter1"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>

其中, <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />所组合的IntentFilter表示该Activity为应用程序的入口,且该程序会被示在应用程序列表。

android的project这种结构模式,把UI,内部操作(数据库,数据处理,响应等)以及资源(如图片,String)分开,便于管理和修改。例如我想把程序的背景图片给换了,这时我们只要把drawable文件夹的图片换一下,把新图片的名字改为与原来的一样就完成了,完全不用去修改其他的文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: