Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1736534
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 嵌入式

2012-03-25 20:58:19

首先使用Eclipse创建一个Android程序<<==这是一个链接

Android程序把逻辑代码和界面分离。看自动产生的代码里,逻辑代码在单独的java文件里,而界面定义在main.xml里。

自动生成的逻辑代码(MyAndroid2_3_3Activity.java):


  1. public class MyAndroid2_3_3Activity extends Activity {
  2.     /** Called when the activity is first created. */
  3.     @Override
  4.     public void onCreate(Bundle savedInstanceState) {
  5.         super.onCreate(savedInstanceState);
  6.         setContentView(R.layout.main);
  7.     }
  8. }

Dalvik java与普通java有点不同。出于性能考虑,它的方法默认情况下并不是多态的,除非在方法定义前加入“@Override”注解。一个Activity对象调用setContentView方法可以设置对应的UI。

自动生成的UI代码(main.xml):


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns: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>

这个UI仅仅包含一个TextView,显示了一行文字。查看运行结果:


有没有注意到在main.xml里TextView的text属性值是“@String/hello”,而程序运行时显示的是“Hello World, MyAndroid2_3_3Activity!”?在自动生成的代码里,有一个目录res/values:

打开strings.xml可以看到@string/hello的定义:


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.     <string name="hello">Hello World, MyAndroid2_3_3Activity!</string>
  4.     <string name="app_name">MyAndroid2_3_3</string>
  5. </resources>

回到MyAndroid2_3_3Activity.java里的onCreate方法,里面有这行语句:“setContentView(R.layout.main);”这个“R”是什么东西?看到在Gen目录下有个自动生成的R.java文件。

  1. /* AUTO-GENERATED FILE. DO NOT MODIFY.
  2.  *
  3.  * This class was automatically generated by the
  4.  * aapt tool from the resource data it found. It
  5.  * should not be modified by hand.
  6.  */

  7. package tommy.myandroid;

  8. public final class R {
  9.     public static final class attr {
  10.     }
  11.     public static final class drawable {
  12.         public static final int icon=0x7f020000;
  13.     }
  14.     public static final class layout {
  15.         public static final int main=0x7f030000;
  16.     }
  17.     public static final class string {
  18.         public static final int app_name=0x7f040001;
  19.         public static final int hello=0x7f040000;
  20.     }
  21. }

这个R类的每一个成员都指向一个资源表。不要去改动这个文件。

最后看一下AndroidMenifest.xml,它也是创建工程时自动生成的,是一个Android工程的配置文件,用来向Android系统注册该程序,之后再更详细地介绍,现在暂时先熟悉下。生成的xml里定义了一个Application以及一个Activity:


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android=""
  3.       package="tommy.myandroid"
  4.       android:versionCode="1"
  5.       android:versionName="1.0">
  6.     <uses-sdk android:minSdkVersion="10" />

  7.     <application android:icon="@drawable/icon" android:label="@string/app_name">
  8.         <activity android:name=".MyAndroid2_3_3Activity"
  9.                   android:label="@string/app_name">
  10.             <intent-filter>
  11.                 <action android:name="android.intent.action.MAIN" />
  12.                 <category android:name="android.intent.category.LAUNCHER" />
  13.             </intent-filter>
  14.         </activity>

  15.     </application>
  16. </manifest>

阅读(868) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~