当一个工程部署到模拟环境上后,当用户点击你的应用名字“android:label="@string/app_name">”的时候,操作系统会根据配置清单文件(AndroidManifest.xml)寻找到下面的配置节点“<activityandroid:name=".HelloWorldActivity”这个activity;android:icon="@drawable/icon" 这个是应用显示的图标这个你可以修改,自己找一个png格式的图片,拷贝到drawable-hdpi文件夹下,你会在R.java中自动添加这个图片的名字的属性,然后在这里修改icon为新生成的图片的名字就行了。 Java代码 收藏代码
  1. <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  2. <activityandroid:name=".HelloWorldActivity"
  3. android:label="@string/app_name">
  4. <intent-filter>
  5. <actionandroid:name="android.intent.action.MAIN"/>
  6. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  7. </intent-filter>
  8. </activity>
  9. </application>

这个配置节点下的activity节点,这个节点中的

Java代码 收藏代码
  1. <intent-filter>
  2. <actionandroid:name="android.intent.action.MAIN"/>
  3. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  4. </intent-filter>

这两个配置,告诉操作系统,这个activity是程序运行的入口类,相当与main方法;在一个应用中只要有一个应用配这个属性就行了;

然后 :我们看看被指定为程序入口的这个activity的代码:

Java代码 收藏代码
  1. packagecom.android.activity;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. publicclassHelloWorldActivityextendsActivity{
  5. @Override
  6. publicvoidonCreate(BundlesavedInstanceState){
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.main);
  9. }
  10. }

android平台实例化这个activity类,其中的onCreate这个方法不是由程序员来调用的,是由android这个平台来调用的,这个类被实例化后就直接调用这个方法了。其中的super调用的父类的方法,是用来画出整个应用的界面的;

值得一提的是

Java代码 收藏代码
  1. setContentView(R.layout.main);

这端代码:android的设计模式是遵守mvc设计模式的,c这层就是activity层,v层是xml文件,在工程目录中的res下的layout目录下的文件,布局文件,m业务层,要自己写,不要和c层放到一起,这样代码的质量很差;那我们回到这句代码,我们现在知道activity相当与action了,那么在struts中负责跳转页面的代码是mapping.forword("xxxx");我想大家都知道,那么类比,在activity中,负责跳转的就是setContentview(xxx);括号中的内容就是视图层的引用。那我们再来看看这个引用的东西

Java代码 收藏代码
  1. R.layout.main

我前面的文章说过,R.java文件是用来引用资源的,那么看看这里我们就知道他引用了谁。对了,就是loayout目录下的main.xml;我们可以看R.java文件中的代码

Java代码 收藏代码
  1. packagecom.android.activity;
  2. publicfinalclassR{
  3. publicstaticfinalclassattr{
  4. }
  5. publicstaticfinalclassdrawable{
  6. publicstaticfinalinticon=0x7f020000;
  7. }
  8. publicstaticfinalclasslayout{
  9. publicstaticfinalintmain=0x7f030000;
  10. }
  11. publicstaticfinalclassstring{
  12. publicstaticfinalintapp_name=0x7f040001;
  13. publicstaticfinalinthello=0x7f040000;
  14. }
  15. }

Java代码 收藏代码
  1. publicstaticfinalclasslayout{
  2. publicstaticfinalintmain=0x7f030000;
  3. }

这里就是刚才调用的东西,最终会对应工程目录下的res下的layout下的main。xml文件,如果我们在layout下再建立一个androidxml类型的文件,保存后,会在R.java中自动生成对应的索引;

再然后

说道main.xml文件,我们看看这个文件,以往我们都是用html或者jsp来显示页面,现在用xml了,看看有什么不同,

Xml代码 收藏代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello"
  11. />
  12. </LinearLayout>

严格遵守xml文件的格式,

其中,标签

Xml代码 收藏代码
  1. LinearLayout

直接翻译中文是线性布局,那就是一种布局方式了,swing中也有,就是指在这个标签中的元素每个元素占一行。还有绝对布局;不建议使用,因为不知道使用者的手机屏幕大小。还有相对布局:常用;

Xml代码 收藏代码
  1. TextView

相当于label标签。

再来仔细看看,标签中的属性

Xml代码 收藏代码
  1. <LinearLayout
  2. <!--这个是标准的格式-->
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. <!--布局方式由上到下垂直显示-->
  5. android:orientation="vertical"
  6. <!--应用界面的宽:填充父面板还有个取值"wrap_content"是根据内容的长度来决定界面大小-->
  7. android:layout_width="fill_parent"
  8. <!--应用界面的高:填充父面板对于这个应用其父面板就是整个屏幕-->
  9. android:layout_height="fill_parent"
  10. >
  11. <TextView
  12. <!--定制这个lable的宽度:父界面的宽度-->
  13. android:layout_width="fill_parent"
  14. <!--定制这个lable的高度:和内容的大小相同-->
  15. android:layout_height="wrap_content"
  16. <!--lable的内容:@代表访问R.java文件,string是R.java文件中的一个元素。/就是访问符号
  17. hello是具体那个资源这样就调用了文字这些文字的信息在values文件夹下的string.xml文件中定义
  18. 这样做是为了国际化这个文件夹下不是只能有stirng.xml这一个文件存在,可以有很多xml文件
  19. 所以我们可以把文字分门别类存放有利于复用减少资源占用-->
  20. android:text="@string/hello"
  21. />
  22. 过程基本就是这样了

更多相关文章

  1. android raw读取超过1M文件的方法
  2. Android中向webview注入js代码
  3. Android手机拨打电话、手动发送短信与自动拨打电话、自动发送短
  4. Android SDK编译 ——如何将自己源代码加入android.jar
  5. Android 资源文件夹下的文件不能有大写字符,会导致R.java无法生成
  6. Android 高级混淆和代码保护技术
  7. Android工程中javax.annotation.Nullable找不到的替代方案

随机推荐

  1. Android无法System.out.println出null
  2. android实战
  3. Android动画循环弹动cycleInterpolator
  4. android批量插入数据效率对比
  5. Android - adb : logcat / shell / app_p
  6. Android中Activity共享变量的另一方法:App
  7. Android实现底部弹出按钮菜单升级版
  8. fastboot 详解
  9. Android系统开发小问题-启动过程中android
  10. android之有返回结果跳转intent