Android系列课程之三:Android项目的目录结构
Android系列教程之三:Android项目的目录结构一: Android 项目的目录结构 ??? Android 项目结构概览。其实 A
Android系列教程之三:Android项目的目录结构
一: Android 项目的目录结构
?
?? Android 项目结构概览。其实 Android 项目的目录结构和 Java 的差不多,没有太大变化,如下图:
????? 可以看到 src 文件夹里的是源文件, Android2.2 是引用的类库,这些和 java 的都一样,那么下面的这个 gen 是什么呢?这个里面的类就是 ADT 自动生成的啦,一般只有一个 R.java 文件,是不能修改的,那么他是怎么生成的呢,看到下面的 res 文件夹了吗? R.java 就是根据资源文件夹 res 生成的 ,R.java 里放的就是 res 中资源文件索引,用一个常量标记 res 中的一个资源文件,便于我们在代码中引用。 ? ?? 现在让我们看看 res 文件夹,这下面又有几种类别,其中 drawable 是放图片的,有 drawable-hdpi,drawable-ldpi,drawable-mdpi 之分,对应的是高密度图片,低密度图片,和中等密度的图片,如果你要使用一个图片,你根据密度的不同做了三种相同的图片分别放到这三个文件夹里,那么你的应用运行在不同分辨率机器上的时候,就会根据该机器的分辨率自动选择合适的图片,怎么样智能吧!下图是密度和手机尺寸对应关系表。

Layout 中放的就是布局文件了, Android 支持通过 xml 生成视图,这样视图就和逻辑控制的代码分离了便于管理。
Values 中放的就是我们常用的字符串,颜色值,数组等 .
其实资源文件还有多种,这里生成的 HelloWorld 结构中没有,比如动画 , 菜单等。
接下来的这个 AndroidManifest.xml 很重要,每个 Android 项目都有一个,这是 Android 的配置文件,我们可以在这里配置应用的属性,定义 Activity ,声明使用的权限等等,这里就不具体介绍,后面的章节会讲到 .default.properties 也是一个配置文件。
?
二: Android 项目文件的具体讲解
?
? 首先看这个 HelloWorld 类。
?
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); }}?
他继承了 Activity ,前面讲了,一个 Activity 可以想象成一个手机的屏幕,用于展示一屏的内容,所以所有要展示内容的屏幕都要继承 Activity 才能实现,接着覆盖了 onCreate() 方法对该 Activity 进行初始化 setContentView(R.layout. main ); 设置了使用 main.xml 这个布局文件作为当前 Activity 的内容展示 .main.xml 就是放在 res 下, layout 下面的文件 xml 布局文件 , 我们可以直接使用 R.layout.main 进行直接的引用他,这也是 Android 亮点的地方,省得我们为了引用一个 xml 文件再使用 File 类去读取,我们要做的只是把这个 xml 文件的索引给 Android ,他会自动的帮我们找到它并使用 .
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /></LinearLayout>?
<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, HelloWorld!</string> <string name="app_name">HelloWorld</string></resources>?
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.flysnow" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloWorld" 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> <uses-sdk android:minSdkVersion="8" /></manifest>?
?
最后的 <uses-sdk android:minSdkVersion="8" /> 就是定义应用的最低 SDK 的级别
?