Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 初級開發 >> Android開發教程之高煥堂-上課講義(2)

Android開發教程之高煥堂-上課講義(2)

編輯:初級開發

講義摘錄之8:如何從DDMS發出簡(短)訊給應用程式?

1. 如何切換到DDMS?

途徑-1:

從Eclipse/android應用程式編輯畫面:

clip_image025

按下右上角的:

clip_image026

就出現:

clip_image027

再選取就開啟了。

途徑-2:

按下 組合鍵,就開啟了。

DDMS開啟的畫面:

clip_image028

2. 如何返回Eclipse/android程式編輯畫面:

途徑-1:

再按下剛才的小窗戶:

clip_image029

再選取Java就行了。

途徑-2:

按下 組合鍵,就返了。

3. 現在請回到Eclipse/android程式編輯畫面,編輯一個應用程式:

clip_image030

編寫 ac01.Java程式碼:

package com.misoo.pksms;

import android.app.Activity;

import android.os.Bundle;

public class ac01 extends Activity {

private static ac01 appRef = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

appRef = this;

setContentVIEw(R.layout.main);

}

public static ac01 getApp(){

return appRef;

}

public void call_back(String str){

setTitle(str);

}

}

編寫 mySMSReceiver.Java程式碼:

package com.misoo.pkzz;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

public class mySMSReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context arg0, Intent arg1) {

// TODO Auto-generated method stub

ac01 app = ac01.getApp();

app.call_back("hi, how are you?");

}

}

4.   現在執行這個程式,出現你所熟悉的畫面:

clip_image031

5.   切換到DDMS。

6.   選取com.misoo.pksms,看到綠色小蟲亮了,如下:

clip_image032

7.   選擇,輸入任意電話號碼,也輸入短訊內容。

clip_image033

8.   按下,就送出簡訊給com.misoo.pksms程式了,於是此程式畫面出現簡訊了:

clip_image034

返回Eclipse/android程式編輯畫面。

~~~~ by top articles ~~~

講義摘錄之10:佈局(Layout)在android軟體開發上的重要角色
如果以SaaS(Software as a Service)的觀念來看Layout,會更清楚它的角色。如果以舞台劇的一『幕』來比喻Layout,會更傳神。一幕就是一個劇情的片段,此片段有其獨特的演出意涵,也是有頭有尾的完整片段。從SaaS的觀念來說,一個Layout是一個有其獨特目標的服務(Service)片段,或稱為小服務。這些小服務可以組合成為更完整更大的服務(或劇本)。

依據SaaS的概念,Service是有幕後的軟體類別或模組所提供、支撐或實現的。那麼,Layout背後的軟體模組是甚麼呢?答案是:Activity類別。有關於這些Layout的事件的處理程序都寫在Activity類別裡。不同的Activity類別可由不同的開發者負責開發。所以Activity可視為開發的分工單位。不同的開發者發揮其獨特的專業能力而開發出獨特的Activity類別,提供一些獨特的服務(即Layout)。

Activity類別像樹枝,Layout像樹葉,而Android應用程式的用戶就像在樹葉上跑來跑去的金龜蟲。那麼,android應用程式的角色就是將一系列來自不同Activity的Layout串聯起來。也就是那隻金龜蟲的行動軌跡了。

那麼,Android應用程式又如何串聯這些Layout呢? 在Android平台裡,有個Intent類別。Android應用程式藉由Intent物件來與Android應用框架(Application Framework)核心進行溝通,請求Android框架核心來物色合適的Activity來提供其Layout,來進行服務。至於一個Activity到底提供甚麼目的的服務呢? 則寫在androidManifest.XML的Activity裡的Filter裡,基於Filter的條件而找到適當的服務,及其背後的Activity類別。該Activity再透過Layout而展現其服務。

一般而言,一個應用程式常包含多個獨立的服務流程,通稱為Use Case。而每一個Use Case都是由許多Layout提供的服務所組成。而Layout又是由Activity類別的多個函數來聯合服務。因此,傳統的UML和OOAD裡大家所熟悉的用例(Use Case)圖和類別(Class)圖,只要加上一個Layout的角色就能全部派上用場了。

當我們將Layout視為服務時,SOA(Service-OrIEnted Architecture)和SaaS(Software as a Service)的兩項新的軟體開發技術,也能派上用場了。因之,Layout扮演一個極為重要的角色,連結了最新的軟體開發技術與Android最新的軟體開發平台,將為Android軟體開發團隊帶來可靠的開發技術和工具,也將為android應用軟體帶來極高的品質和可靠度。

講義摘錄之11:android的類別繼承與委託之範例
1.1 類別繼承的副作用

繼承和委託皆能達到物件再用之目的,各有所長各有所短,相輔相成才是完美的。如下述類別:

clip_image035

在New Collegiate字典上對「正方形」的定義是:

「正方形是一種4邊等長的長方形」


所以使用繼承如下:

clip_image036

然而,上述的實作繼承卻有些缺點,宜避免之。例如,Square從Rectangle繼承了setLength()和setWidth()函數,但這兩個函數對於Square而言是無意義且有害的。因之,上述的繼承關係是不良的。至於如何改善上述的繼承關係呢?可改用委託:

clip_image037

當Square之物件接到外界傳來的area()訊息時,就委託Rectangle之物件代為處理。雖然委託會令程式複雜些,但勉強使用繼承,後遺症將更大。因為副作用可能會延續到Rectangle的各子孫類別!

1.2 android的繼承與委託之例
茲以android裡的MediaPlayer類別為例。

1.2.1 操作情境:
1. 此程式開始執行後,出現畫面如下:

clip_image038

2. 按下,就開始播放MP3音樂。

3. 若按下,就結束播放音樂。

4. 若按下,程式就結束了。

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