android之helloworld详解
通过第一个android程序helloworld对各个文件的了解
src/
每个Android程序都包含资源目录(src)主要存放资源文件
packagecn.csdn.class3g;//声明包名称
importandroid.app.Activity;
importandroid.os.Bundle;
public classHelloWorldActivity extends Activity {//定义类 继承activity
/** Called when the activity is firstcreated. */
@Override
public void onCreate(BundlesavedInstanceState) {//重写方法onCreate应用程序启动时调用
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//设置画面显示时的视图(初始化后的helloView)
}
}
gen/
gen/自动生成目录:gen 目录中最关键的程序就是 R.java 。R.java 自动生成的。会由 ADT 插件自动根据你放入 res 目录的 XML 中字符、视频/音频文件、图像等资源,自动更新添加'R.java' 这个文件中。只要修改XMLR.java会自动更新,所有的 Android 程序中都会有以R.java 为名的这个文件,你完全不需要,也应避免手工修改 R.java 这个文件。如果目录下没有R.java,也不用着急,可以右击工程->选择Properties->选择 Android->Apply就行 还有一种是右击工程->选择Android Tools->选择FixProject Properties
新建项目R.java会默认有四个内部类
R.java文件:默认有attr,drawable,layout,string这四个静态内部类,每个静态内部类对应一中资源,如layout静态内部类对应layout中的界面文件,string静态内部类对应string内部的string标签。如果在layout中在增加一个界面文件或者在string内增加一个string标签,R.java会自动在其对应的内部类增加所增加的内容。
R.java除了自动标识资源的索引功能外,还有另一个功能,就是当res文件中的某个资源在应用中没有被用到,在这个应用被编译时,系统不会把对应的资源编译到应用中的APR包中。
packagecn.csdn.class3g;
public final classR {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
其中定义的变量名字都是XML文件中映射过来的
Assets
词义本事就是资产的意义,主要存放视频、音频、多媒体等文件;
访问的时候,则必须使用AssetManager以字节流的方式来读取,用起来非常的不方便
再下边是bin目录在bin目录下的res中
有三个目录drawable-hdpi drawable-ldpi drawable-mdpi
drawable—hdpi看他的单词名肯定知道他是放置高分辨率的图片,drawable—mdpi放置中等分辨率的图片,drawable—ldpi放置低分辨率的图片
再下边有个res目录 其中那drawable-hdpi drawable-ldpi drawable-mdpi跟上边一样
Values中的string.xml
<?xml version="1.0"encoding="utf-8"?>
这里定义一个个键值对 也就是赋值的 减少内存的浪费 也这对字符的统一管理和国际化有很大的意义
Main.xml
<?xml version="1.0"encoding="utf-8"?>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> 布局文件的内容不多 , 开始就是一个LinearLayout 组件的定义,然后在这个 LinearLayout 放了一个用于显示文字的 TextView 。现在来看一下几个参数: LinearLayout 一个线性布局面板,只能垂直和水平布局, android:orientation="vertical" 代表里面的子元素只能垂直排列,而使用 android:orientation="horizontal"就标识里面的子元素水平排列 .. .android:layout_width定义当前视图占的宽度,这里是 fill_parent 即为充满整个屏幕。而设置成wrap_content 会根据当前视图的大小只能的改变宽度 android:layout_height是定义视图的高度,这里也是填充整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变高度。 android:text 是这是 TextView 要显示的文本,可以是字符串,也可以是一个字符串的引用,这里是一个引用,引用的是 strings.xml 定义好的名字为hello 的字符串 AndroidManifest.xml <?xml version="1.0"encoding="utf-8"?> package="cn.csdn.class3g": 该应用包 android:versionCode="1"应用的版本号 android:versionName="1.0" >应用的版本名字 android:icon="@drawable/ic_launcher"定义了应用的图标 引用资源文件中的 icon 图片 android:label="@string/app_name" >定义了应用的名称 android:label="@string/app_name" 定义了 Activity 的类名 , 这里的 .HelloWorld 是以上面的Package 定义为基础的,也就是 Package(com.flysnow) 加上这个 android:name(.HelloWorld) 要能定位到这个 Activity(com.flysnow.HelloWorld) ,否则就是找不到 . android:name=".HelloWorldActivity" >定义了该Activity 的标题 "android.intent.action.MAIN"/> 这是项目的重要配置文件,诸如 Activity ,权限, Intent等都在这里配置 元素 元素是一个很重要的元素,开发组件都会在此下定义 元素的”icon”属性是用来设定应用的图标,其中“@drawable/ic_launcher”的意思是:在R.java文件中的drawable静态内部类下的icon, 元素的“label”属性用来设定应用的名称,其中“@string/app_name”和上述的一样,也是R.java文件中的string静态内部类下的app_name 元素 元素的作用是注册一个activity信息,当我们在创建“HelloWorldAndroid”这个项目时,指定了“CreatedActivity”属性为“HelloActivity”,然后ADT在生成项目时帮我们自动创建了一个Activity,就是“HelloWorldActivity.java”; 元素的“name“属性指定的是Activity的类名,其中“.HelloWorldActivity”中的“.”指的是 存放Android自身的jar包
更多相关文章
随机推荐