[首届 Google 暑期大学生博客分享大赛——2010 Android 篇]

总想花点时间在总结一点,可是......最近在优酷上看到了一个Android教学系列视频,还不错,特此推荐给大家:http://mars-droid.com/wordpress/。虽然哪位大哥讲的已经很好了,但终究还是人家的,只有自己总结了,才会成为自己的。

相信,学习某种语言时的经典语句"Hello,world!"。所以初学Android当然也逃不了俗套。首先,在Android平台下,大体的Project文件结构是:

MyHello.java里面存放的是一个Activity类,它继承了Activity,并覆盖了其中的onCreate()方法,其实Activtity作为一个主体“活动”,它里面还有其他的一些方法,这个可以到以后我再总结一下。总之,onCreate()是在程序运行时运行,其中调用了setContentView()方法来引用视图界面。

MyHello.java
                             1           package           cn.yahoo.hello;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5
6 public class MyHello extends Activity {
7 /** Called when the activity is first created. */
8 @Override
9 public void onCreate(Bundle savedInstanceState) {
10 super .onCreate(savedInstanceState);
11 setContentView(R.layout.main);
12 }
13 }

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
8 package cn.yahoo.hello;
9
10 public final class R {
11 public static final class attr {
12 }
13 public static final class drawable {
14 public static final int icon = 0x7f020000 ;
15 }
16 public static final class layout {
17 public static final int main = 0x7f030000 ;
18 }
19 public static final class string {
20 public static final int app_name = 0x7f040001 ;
21 public static final int hello = 0x7f040000 ;
22 }
23 }
24

R.java文件中其实是根据类别(attr中声明内部属性,drawable声明图像文件资源,layout声明整体的布局文件等等,string声明了一些供使用的字符串,当然还有以后必然会用到的id可声明视图中的一些供使用或监听的控件),自动相应地生成各个文件或字符的地址,以提供给src主文件中的Activity使用,通过引用其地址,就可以去控制、使用该控件,这样很方便,使得视图部分与控制部分得到了分离,使得开发更加清晰、便捷。

mian.xml
                             1           <?          xml version          =          "          1.0          "           encoding          =          "          utf-8          "          ?>          
2 < LinearLayout xmlns: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文件位于layout中,能够用来进行程序视图的布置,所以程序的界面完全有该文件来布置了。其中LinearLayout是一种线性的布局方法,而TextView则是一个用于显示的控件。相信大家学过JavaGUI的不会陌生。此外,该文件拥有的一个地址(R.java中可以找到)被上面的MyHello.java中的sentContentView引用,从而实现了程序视图的载入和呈现。

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

该strings.xml文件用于定义一些字符串的具体的常量值,例如我们mai.xml的TextView中的Text内容就引用了个string文件中的hello所代表的常量值“Hello World,Myhello!”。这样可以降低程序的耦合性,尤其是可以便于大家在开发程序是推出多种语言版本(只需要在该文件中对一些常量值进行修改,很方便哈!)同时也避免了字符串的重复定义和赋值,某种程度上提高了程序运行的效率。

AndroidManifest.xml
                             1           <?          xml version          =          "          1.0          "           encoding          =          "          utf-8          "          ?>          
2 < manifest xmlns:android = " http://schemas.android.com/apk/res/android "
3 package = " cn.yahoo.hello "
4 android:versionCode = " 1 "
5 android:versionName = " 1.0 " >
6 < application android:icon = " @drawable/icon " android:label = " @string/app_name " >
7 < activity android:name = " .MyHello "
8 android:label = " @string/app_name " >
9 < intent - filter >
10 < action android:name = " android.intent.action.MAIN " />
11 < category android:name = " android.intent.category.LAUNCHER " />
12 </ intent - filter >
13 </ activity >
14
15 </ application >
16 < uses - sdk android:minSdkVersion = " 4 " />
17 </ manifest >

当然最重要的文件出现了。每个Android工程里面都会有AndroidManifest.xml的配置文件,顾名思义,所有的供使用的组件(Activity,Service,ContentProvider,Broadcast Receiver,uses-permission等等)都会在这个文件中进行说明。其中第一个Activity中的<intent-filter>是找到该Activity的过滤器,其中的Action表明该Activity将会在程序载入时被第一个执行(从catergory定义中可以看出),即程序的入口。minSkdversion则是说明的改程序所应用的Android中SDK的最低版本。

其实,我在学习中才领悟到:只有开始时系统地了解到了Android开发的整体文件结构,才能够更清晰地找到切入点,进行合理地学习和编写。开始时我并没有注意到,所以写代码是显得很凌乱,没有章法,不知道什么时候该怎么样,总之很慌张......太慌张了!

经验之谈:在编写Android的应用程序时,不管简单还是复杂,都应该先考虑清楚:需要用到哪些字符串常量,从而在string中进行定义;界面如何布局,需要用到哪些控件,哪些控件需要在程序中进行监听以判断用户的操作(我建议,不管怎样,事先都将每个控件的id设置一下,这样R.java中可以自动的生成id的具体地址使用后面使用,避免以后开发开发时再回过头添加id所带来的不必要的麻烦。毕竟有些时候Eclipse所发生的错误都是你无法预知的。);每次在错误代码处进行修改之后可以立即ctrl+s进行保存刷新,这样可以查看一下是否还有错误(因为有些人可能会默认Eclipse在修改代码后会自己自动刷新,所以看到修改后错误提示还在就没了耐心,结果越改越乱)。恩,其实算不上经验吧,就是自己在学习过程中的一些感受吧,希望对大家能有所帮助,共同进步!

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android的4种文件类型Java,class,dex,apk
  4. Android生成APK文件
  5. Android中的13种Drawable小结
  6. android打包apk流程
  7. 今天给大家分享一下Android中的资源与国际化的问题
  8. Android界面设计简单讲解
  9. Android——用户登陆及用户名和密码的保存

随机推荐

  1. Java 中的构造函数引用和方法引用
  2. 深入typeclass_Haskell笔记4
  3. 【Java】留下没有基础眼泪的面试题
  4. 类型_Haskell笔记3
  5. 使用 IntelliJ 调试 Java Streams
  6. 六一儿童节,送你一个F字符串
  7. 每周 10 道 Java 面试题:集合类
  8. 学习linux的第5天
  9. 如何使用maven 轻松重构项目
  10. iPhone要降价?巨头战争很激烈