分享

一个android工程的运行过程

 啊司com 2016-07-15
原地址http://leequer./blog/593272
首先 :当一个工程部署到模拟环境上后,当用户点击你的应用名字“android:label='@string/app_name'>”的时候,操作系统会根据配置清单文件(AndroidManifest.xml)寻找到下面的配置节点“
Java代码
X

;
这个配置节点下的activity节点,这个节点中的
Java代码

这两个配置,告诉操作系统,这个activity是程序运行的入口类,相当与main方法;在一个应用中只要有一个应用配这个属性就行了;
然后 :我们看看被指定为程序入口的这个activity的代码:
Java代码
package com.android.activity; import android.app.Activity; importandroid.os.Bundle; public class HelloWorldActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.main);} }
android平台实例化这个activity类,其中的onCreate这个方法不是由程序员来调用的,是由android这个平台来调用的,这个类被实例化后就直接调用这个方法了。其中的super调用的父类的方法,是用来画出整个应用的界面的;
值得一提的是
Java代码
setContentView(R.layout.main);
这端代码:android的设计模式是遵守mvc设计模式的,c这层就是activity层,v层是xml文件,在工程目录中的res下的layout目录下的文件,布局文件,m业务层,要自己写,不要和c层放到一起,这样代码的质量很差;那我们回到这句代码,我们现在知道activity相当与action了,那么在struts中负责跳转页面的代码是mapping.forword('xxxx');我想大家都知道,那么类比,在activity中,负责跳转的就是setContentview(xxx);括号中的内容就是视图层的引用。那我们再来看看这个引用的东西
Java代码
R.layout.main
我前面的文章说过,R.java文件是用来引用资源的,那么看看这里我们就知道他引用了谁。对了,就是loayout目录下的main.xml;我们可以看R.java文件中的代码
Java代码
package com.android.activity; public final class R { public staticfinal class attr { } public static final class drawable { publicstatic final int icon=0x7f020000; } public static final classlayout { public static final int main=0x7f030000; } public staticfinal class string { public static final int app_name=0x7f040001;public static final int hello=0x7f040000; } }
Java代码
public static final class layout { public static final intmain=0x7f030000; }
这里就是刚才调用的东西,最终会对应工程目录下的res下的layout下的main。xml文件,如果我们在layout下再建立一个androidxml类型的文件,保存后,会在R.java中自动生成对应的索引;
再然后
说道main.xml文件,我们看看这个文件,以往我们都是用html或者jsp来显示页面,现在用xml了,看看有什么不同,
Xml代码

严格遵守xml文件的格式,
其中,标签
Xml代码
LinearLayout
直接翻译中文是线性布局,那就是一种布局方式了,swing中也有,就是指在这个标签中的元素每个元素占一行。还有绝对布局;不建议使用,因为不知道使用者的手机屏幕大小。还有相对布局:常用;
Xml代码
TextView
相当于label标签。
再来仔细看看,标签中的属性
Xml代码
xmlns:android='http://schemas./apk/res/android' android:orientation='vertical'android:layout_width='fill_parent' android:layout_height='fill_parent' >android:layout_width='fill_parent'android:layout_height='wrap_content' android:text='@string/hello' /> 过程基本就是这样了;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多