<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } H2 { margin-bottom: 0.08in } H2.western { font-family: "Liberation Sans", sans-serif; font-size: 14pt; font-style: italic } H2.cjk { font-family: "WenQuanYi Zen Hei"; font-size: 14pt; font-style: italic } H2.ctl { font-family: "Lohit Devanagari"; font-size: 14pt; font-style: italic } H3 { margin-bottom: 0.08in } H3.western { font-family: "Liberation Sans", sans-serif } H3.cjk { font-family: "WenQuanYi Zen Hei" } H3.ctl { font-family: "Lohit Devanagari" } -->
一、一些概念
活動:一個活動就是一個用戶界面屏幕,需要在工程中註冊後纔可以使用。
意圖:描述動作的機制,如拍照、撥電話、訪問網頁;可調用意圖來執行這些操作,可註冊用於處理特定意圖的活動。
服務:類似Unix Daemon。
內容提供者:應用程序間共享全局數據的一種方法。
資源:位圖或字串等,放置在項目的res目錄;aapt根據其所處目錄不同進行不同處理,並自動更新名爲R的類。
主題:可用於更改界面元素的外觀,如對話框主題。
進程是各活動可隨意使用的容器,活動的生命週期與進程的生命週期無關。每個活動都保存自己的狀態以用於恢復(狀態包括什麼?活動上的界面元素,如選擇框是否勾選?)。 Android系統安全性:每個應用程序都被分配一個Linux用戶ID,被限制訪問其他應用程序的數據;並且需要申請所要求的關鍵操作的權限。
Andoid系統內置的應用程序沒有特權,並且可以被用戶自己的程序替代。
二、界面開發
使用xml文件進行界面元素定義,Activity函數setContentView()加載xml文件在R 類中的對應來生成自己的界面。
1,界面元素
每個界面最外層是Layout,類型包括FrameLayout、LinearLayout、RelativeLayout等,Layout可嵌套。Button、TextView等元素放置在Layout中。
字符串資源定義在strings.xml文件中,其他xml文件使用”@string/name”的形式引用字串。
2,豎排界面與橫排界面
目錄res/layout-land/中放置橫排界面的xml文件,文件名要與res/layout/保持一樣。
3,界面元素與事件處理
可以爲Button等控件定義id,方式是xml文件中設置其屬性android:id=”@+id/xxx_id”。通過id得到控件的方法:調用Activity方法findViewById(R.id.xxx_id)。
事件處理:首先實現相應Interface,如OnClickListener;然後調用控件的方法設置其事件處理接口,如setOnClickListener();
例如,對於Button,OnClickListener的函數onClick的參數指示了被click的view,通過view的getId()可獲得其id,與R.id.xxx_id比較就可以知道誰被click了。
4,對話框
多種方法實現對話框:使用AlertDialog、自定義Activity、繼承Dialog類。startActivity()可用於啓動Activity。
應用主題,工程中註冊對話框時指定“android:theme”屬性即可。
5,菜單
Android支持兩種菜單:menu按鍵及長按屏幕的上下文菜單。
menu菜單,在文件res/menu/menu.xml中定義。Override Activity的相應函數以處理菜單。
三、程序調試
1,打開調試
需要在工程配置文件中打開可調試選項。
2,日誌
Log類的靜態方法輸出日誌,如Log.e();使用adb或eclipse捕獲日誌。