快速上手:Ophone及Android入門教程

來源:互聯網
上載者:User

下文是JavaEye的zhang_xzhi_xjtu總結的OPhone/Androind入門教程,小編感覺不錯,在此推薦給大家學習。由於OPhone本質上和Android幾乎沒什麼兩樣,所以雖然本教程中所用的是OPhone,但實質上無異於一個Android入門教程。

本教程主要參考

http://code.google.com/p/androidbmi/wiki/DiveIntoAndroid

這個教程是一個比較好的教程,但是天下沒有人人滿意的東西。

主要而言,對某些讀者,該教程有兩個小小的不足,1是繁體字,2是作者照顧了很多剛入門的程式員,寫的太細緻了,比如還要抽空講一講java,xml的一些文法。

本文的特點就是,1普通話,2面向有java,xml經驗的程式員。主要是從一個小例子闡述一下OPhone/Android的一些重要概念。

本文的目標是除去搭建環境外的一個5分鐘快速入門。並提供一個簡單的程式碼可以用來修改驗證一些OPhone/Android入門時的想法,並對OPhone/Android的重要概念有一個大致的瞭解。

本文提供的code的測試搭建環境為OPhone。

1  背景

Android是什嗎?

Android 是Google開發的基於Linux平台的開源手機作業系統。

OPhone是什嗎?

OPhone是中國移動OMS系統下定製的手機。OPhone上的程式和Android是相容的。

Emulator是什嗎?

方便程式員開發其他裝置上的程式,而對其他裝置做的一個軟體模擬器。開發的程式可以在模擬器上部署,執行,調試。

2 安裝開發環境

Android: http://code.google.com/p/androidbmi/wiki/InstallAndroid

JDK5+

Eclipse3.3+

ADT

Android SDK(包含Emulator)

OPhone: http://www.ophonesdn.com/documentation/ophone/gettingstarted/installing_sdk.html

JDK5+

Eclipse3.4.2

ADT

WDT

OPhoneSDK(包含Emulator)

注意安裝的最後步驟在Eclipse中設定Android SDK Location。

3 建立簡單的OPhone程式

在Eclipse中建立一個Android project。

裡面有如下選項需要填寫:

Project Name:項目名稱。

Package name:命名空間。

Activity name:先理解為程式的入口類,以後解釋。

Application name:程式名稱。

記得加入android.jar和oms.jar。

4 OPhone目錄結構及意義

建立好的OPhone項目有如下基本結構。

src:java code。

res:OPhone的資源。

res\drawable:圖片。

res\layout:布局描述。

res\values:字串定義。

AndroidManifest.xml:描述該OPhone程式。

5 OPhone關鍵概念。

部署相關:

雖然我們是用java開發的,但是結果並不是常見的jar,而是dex,或者apk。

過程是這樣的,我們編寫java,編譯成class,最佳化處理成dex相對來說mobile還是一個受限環境),和資源一起打包成apk檔案。部署後由Dalvik VM執行。

一個Ophone的應用是多個Activity的集合。可以在AndroidManifest.xml中指定該Ophone App的入口Activity.

一個Activity是一個和使用者的基本互動流,有其自身的生命週期。Activity之間可以通過Intent傳遞資訊。

關於Activity的生命週期可以參考

http://code.google.com/p/androidbmi/wiki/LifeCycle

一個Activity的實現採用的是MVC,其中code部分負責MC,res\layout中的xml負責View。

App中使用的字串都可以放在res\values下xml中統一維護,方便系統的維護,管理。

項目自動產生一個R.java來管理資源相關的引用。開發人員不需要手動修改該檔案。

6 小例子。

這個例子的功能是使用者輸入名字,程式對該使用者說hello。

 

7 關鍵代碼解釋

HelloOPhone定義了入口Activity。

Echo定義了打招呼的Activity。

看看HelloOPhone的View部分是怎麼定義的,xml的自描述性真好,都不用解釋。

Xml代碼

 
  1. < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  2.     android:orientation="vertical" android:layout_width="fill_parent"    
  3.     android:layout_height="fill_parent">    
  4.     
  5.     < TextView android:layout_width="fill_parent"    
  6.         android:layout_height="wrap_content" android:text="@string/input_msg" />    
  7.     
  8.     < EditText android:id="@+id/name" android:layout_width="fill_parent"    
  9.         android:layout_height="wrap_content" android:text="" />    
  10.     
  11.     < Button android:id="@+id/ok" android:layout_width="fill_parent"    
  12.         android:layout_height="wrap_content" android:text="@string/ok" />    
  13.     
  14. < /LinearLayout>    

看看一個Activity是怎樣和這個xml聯絡起來的。通過自動產生的R.java中的定義。注意定義的xml檔案名稱改變R會自動重新整理。

Java代碼

 
  1. setContentView(R.layout.input);   

再看看一個Activity如何通過xml中的id找到該View.

Java代碼

 
  1. b_ok = (Button) findViewById(R.id.ok);   

再看看Activity怎麼通過Intent啟動另一個Echo Activity,並且給那個Activity傳遞資訊。

Java代碼

 
  1. Intent intent = new Intent();    
  2. intent.setClass(HelloOPhone.this, Echo.class);    
  3.     
  4. Bundle bundle = new Bundle();    
  5. bundle.putString("name", name);    
  6. intent.putExtras(bundle);    
  7.     
  8. startActivity(intent);    

再看看Echo如何接收傳遞來的資訊。

Java代碼

 
  1. Bundle bunde = this.getIntent().getExtras();    
  2. String name = bunde.getString("name");    

最後簡單的看看AndroidManifest.xml如何描述該app。

其中指明了命名空間,程式的映像等等。

同時指出該app由2個Activity組成,並設定了HelloOPhone為入口Activity。

Xml代碼

 
  1. < manifest xmlns:android="http://schemas.android.com/apk/res/android"    
  2.     package="allen.oms" android:versionCode="1" android:versionName="1.0.0">    
  3.     < application android:icon="@drawable/icon" android:label="@string/app_name">    
  4.     
  5.         < activity android:name=".HelloOPhone" android:label="@string/app_name">    
  6.             < intent-filter>    
  7.                 < action android:name="android.intent.action.MAIN" />    
  8.                 < category android:name="android.intent.category.LAUNCHER" />    
  9.             < /intent-filter>    
  10.         < /activity>    
  11.     
  12.         < activity android:name=".Echo" android:label="@string/app_name" />    
  13.     
  14.     < /application>    
  15. < /manifest>     

OPhone/Androind入門教程到此結束,希望對大家有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.