Android学习.0(Android项目目录结构)
1. 重要目录文件:
a) Src/:源代码目录
b) Gen/:系统自动生成代码的目录
c) Res/:存放图片、布局、字符串等资源
d) AndroidManifest.xml:应用程序配置文件
2. res下有五个drawable的目录,分别是xxhdpi,xhdpi,hdpi,mdpi,ldpi,在运行时,系统会自动监测安卓程序的分辨率,然后选择合适的图片(吐槽一下安卓的碎片化……),但是也可以将相同的图片文件放入这五个文件夹。
3. res/values目录下有:
a) strings.xml,用于存放应用中出现的字符串,这样可以为多次出现的字符串节省内存,并且也便于以后的修改。
b) colors.xml,用来定义颜色和数值。
c) dimens.xml,用来定义尺寸和数据,也是方便以后的修改。
d) styles.xml,用来定义样式。
4. res/layout目录下存放了个应用的布局文件,采用xml格式编写,具体的使用方法会在以后的章节介绍。
5. gen/R:自动生成的文件,会对应用中的每个静态内部类中的静态常量(就是drawable,layout,string那些东西)赋予一个资源标识符(ID),在java里可以按照R.ResourceType.ResourceName来引用该资源(PS:Android自身自带资源引用方法为:Android.ResourceType.ResourceName)。在xml文件中引用为@[package:]type/name,一般使用自己的包时,省略[pakage:],例如引用应用名:@string/app_name,但是当引用安卓自身资源时,要加上包名:@Android:color/blue。
6. AndroidManifest.xml:
a) 命名应用程序的java应用包,描述应用程序的组件,决定应用程序权限,声明系统API最低版本等
b) 例如以下一段代码:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test" android:versionCode="1" android:versionName="0.0 beta" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.test.MainActivity" 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> </manifest>
a) Android:versionCode是版本号,Android:versionName是版本名称,每次升级,版本号都应比上一次大,而版本名称可以自行决定。
b) Application:label表示应用名称,就是由@sting/app_name的值来决定的。
c) Activity标签中,name是表示本activity的类名,而label是用来表示本activity的显示名称。
d) Intent-filter为意图过滤器,每一个进程都要向系统声明自己能相应的意图,这样在有用户意图产生时系统才知道应该激活哪个应用,如:<categoryandroid:name="android.intent.category.LAUNCHER" />这段代码,它表示该进程能够响应启动,说明它是应用程序的入口。
e) Permissions标签用于表明该应用所需要的权限,由于默认程序并没有额外的权限,所以以上代码中并未出现permissions的标签,该标签内容会在以后提到。
f) 如果该程序用到了其他开发包中的库,那么还需要在<application>中加入一个<uses-library>的标签,例如:<uses-library android:name=”android.test.runner” />