初识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文件夹的图片换一下,把新图片的名字改为与原来的一样就完成了,完全不用去修改其他的文件。
如上图,一个工程主要包括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文件夹的图片换一下,把新图片的名字改为与原来的一样就完成了,完全不用去修改其他的文件。
相关文章推荐
- 初识Android Project Butter: 黄油项目,使动画更加的平滑、流畅
- Android Volley完全解析(一),初识Volley的基本用法
- [转]如何把多个Android Project打包成一个APK
- androidproject有红色叹号的解决方式
- 【转】Android开发学习笔记(一)——初识Android
- 【AndroidProject】andriod 带看括弧的计算器
- Android Library Project工程导出jar包供其它工程使用
- 初识 Android平台
- Gradle for Android 系列:初识 Gradle 文件
- Android属性动画完全解析(上),初识属性动画的基本用法
- [问与答]怎样在 Android Stuido中删除一个project
- android中导入低版本project可能会遇到的编译问题
- 初识Android之(一)-自定义标题栏控件
- Android 6.0 运行时权限理论初识
- 使用命令行工具管理Android项目(Managing Projects from the Command Line)
- android 修改project package name
- errors running builder 'Android Pre Compiler' on project'项目名称':java.lang.NullPointerException
- 【Android】log系统初识
- Android Volley完全解析(一),初识Volley的基本用法
- Android图片缓存之初识Glide(三)