編輯:初級開發
講義摘錄之8:如何從DDMS發出簡(短)訊給應用程式?
1. 如何切換到DDMS?
途徑-1:
從Eclipse/android應用程式編輯畫面:
按下右上角的:
就出現:
再選取就開啟了。
途徑-2:
按下 組合鍵,就開啟了。
DDMS開啟的畫面:
2. 如何返回Eclipse/android程式編輯畫面:
途徑-1:
再按下剛才的小窗戶:
再選取Java就行了。
途徑-2:
按下 組合鍵,就返了。
3. 現在請回到Eclipse/android程式編輯畫面,編輯一個應用程式:
編寫 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. 現在執行這個程式,出現你所熟悉的畫面:
5. 切換到DDMS。
6. 選取com.misoo.pksms,看到綠色小蟲亮了,如下:
7. 選擇,輸入任意電話號碼,也輸入短訊內容。
8. 按下,就送出簡訊給com.misoo.pksms程式了,於是此程式畫面出現簡訊了:
返回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 類別繼承的副作用
繼承和委託皆能達到物件再用之目的,各有所長各有所短,相輔相成才是完美的。如下述類別:
在New Collegiate字典上對「正方形」的定義是:
「正方形是一種4邊等長的長方形」
所以使用繼承如下:
然而,上述的實作繼承卻有些缺點,宜避免之。例如,Square從Rectangle繼承了setLength()和setWidth()函數,但這兩個函數對於Square而言是無意義且有害的。因之,上述的繼承關係是不良的。至於如何改善上述的繼承關係呢?可改用委託:
當Square之物件接到外界傳來的area()訊息時,就委託Rectangle之物件代為處理。雖然委託會令程式複雜些,但勉強使用繼承,後遺症將更大。因為副作用可能會延續到Rectangle的各子孫類別!
1.2 android的繼承與委託之例
茲以android裡的MediaPlayer類別為例。
1.2.1 操作情境:
1. 此程式開始執行後,出現畫面如下:
2. 按下,就開始播放MP3音樂。
3. 若按下,就結束播放音樂。
4. 若按下,程式就結束了。
上課講義之 1: 高煥堂講解 Intent-based ProgrammingAndroid的4種嫡系組件(即Activity、Service、IntentReceiv
andriod提供了 Handler 和 Looper 來滿足線程間的通信。例如一個子線程從網絡上下載了一副圖片,當它下載完成後會發送消息給主線程,這個消息是通過綁定在
Google近期開始打擊盜版Android軟件,為開發者提供了 License Verification Library (LVL) 方式來防止Android軟件被盜版
File 讀寫[功能]因為文件讀寫很平常 使用打算把這個功能寫出輔助類的形式 以便以後方便使用 就是:FileIOHelper[代碼]1. 定義指定的File 以及其上