編輯:高級開發
下文是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代碼
- < LinearLayout XMLns:android="http://schemas.android.com/apk/res/android"
- android:orIEntation="vertical" android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- < TextVIEw android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:text="@string/input_msg" />
- < EditText android:id="@+id/name" android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:text="" />
- < Button android:id="@+id/ok" android:layout_width="fill_parent"
- android:layout_height="wrap_content" android:text="@string/ok" />
- < /LinearLayout>
看看一個Activity是怎樣和這個XML聯系起來的。通過自動生成的R.Java中的定義。注意定義的XML文件名改變R會自動刷新。
Java代碼
- setContentVIEw(R.layout.input);
再看看一個Activity如何通過XML中的id找到該VIEw.
Java代碼
- b_ok = (Button) findVIEwById(R.id.ok);
再看看Activity怎麼通過Intent啟動另一個Echo Activity,並且給那個Activity傳遞信息。
Java代碼
- Intent intent = new Intent();
- intent.setClass(HelloOPhone.this, Echo.class);
- Bundle bundle = new Bundle();
- bundle.putString("name", name);
- intent.putExtras(bundle);
- startActivity(intent);
再看看Echo如何接收傳遞來的信息。
Java代碼
- Bundle bunde = this.getIntent().getExtras();
- String name = bunde.getString("name");
最後簡單的看看androidManifest.XML如何描述該app。
其中指明了命名空間,程序的圖像等等。
同時指出該app由2個Activity組成,並設置了HelloOPhone為入口Activity。
XML代碼
- < manifest XMLns:android="http://schemas.android.com/apk/res/android"
- package="allen.oms" android:versionCode="1" android:versionName="1.0.0">
- < application android:icon="@drawable/icon" android:label="@string/app_name">
- < activity android:name=".HelloOPhone" android:label="@string/app_name">
- < intent-filter>
- < action android:name="android.intent.action.MAIN" />
- < category android:name="android.intent.category.LAUNCHER" />
- < /intent-filter>
- < /activity>
- < activity android:name=".Echo" android:label="@string/app_name" />
- < /application>
- < /manifest>
OPhone/Androind入門教程到此結束,希望對大家有所幫助。
大家都知道,android 2.3 SDK發布的時候,在SDK中增加了第三方add-ons,其中就包括了針對平板電腦的Galaxy Tab Addon。當我們啟動一個新
目前,谷歌最新發布的基於Web的android Market坦白來說是如此平庸,對此毫無改善。但是不要擔心:考慮到廣大Android迷的痛苦,Top10.com再次潛入
Next,接受其中的協議,最後會自動安裝。 四、下載 android SDK 下載Android SDK 選擇 android-sdk_r10-Windows.zi
事件是一種有用來收集用戶與應用程序互動數據的互動組件,如按鍵或觸摸屏等放置事件,因為每個事件從Android框架維護事件隊列先入先出(FIFO)基礎上的隊列。可以在程序中