Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android札記【2】——系統的認識心中的Android

Android札記【2】——系統的認識心中的Android

編輯: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在修改代碼後會自己自動刷新,所以看到修改後錯誤提示還在就沒了耐心,結果越改越亂)。恩,其實算不上經驗吧,就是自己在學習過程中的一些感受吧,希望對大家能有所幫助,共同進步!

 轉自:http://www.cnblogs.com/huyipeng/archive/2010/07/20/1781790.html

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved