2016-3-2

Android大致可分爲四層結構,五塊區域。

1、Linux內核層

基於Linux2.6內核。

2、系統運行庫層

    庫和運行時庫。

3、應用框架層

提供相應的API。

4、應用層

所有手機應用都屬於這一層。

 

 

Android應用開發特色

1、四大組件

活動(Activity)、服務(Service)、廣播接收器(BroadcastReceiver)、內容提供器(Content Provider)。

2、豐富的系統控件

3、SQLite數據庫

支持標準的SQL語句,還可以通過安卓封裝好的API進行操作

4、地理位置定位

5、強大的多媒體

6、傳感器

 

 

安卓應用佈局分析

1、src

   放置所有java源碼的位置

2、gen

   主要是R.java文件,在項目中添加的每一個資源都會在其中生成一個相應的資源ID。

3、assets

   主要存放一些隨程序打包的文件,在程序運行時可以動態讀取這些文件。若程序使用了WebView加載本地網頁的功能,所有網頁相關的文件也都會存放在這個目錄下。

4、bin

   主要是編譯產生的文件。

5、libs

   放置程序使用的第三方包jar,會被自動添加到程序中。

6、res

   在項目中使用到的所有圖片、佈局、字符串等資源都存放在此。圖片放在drawable目錄下,佈局放在layout目錄下,字符串放在values目錄下。

7、AndroidMainfest.xml

  Android項目的配置文件,程序中定義的所有四大組件都需要在這個文件中註冊。

8、project.properties

   通過一行代碼指定編譯程序時所使用的SDK版本。

 

 

活動註冊

   活動需要在AndroidManifest.xml文件中進行註冊,其中intent-filter裏的兩行代碼很重要,指定了MainActivity爲這個程序的主活動,也就是程序打開時會首先啓動這個活動。

<activity
   
android:name=".MainActivity"
   
android:label="@string/app_name" >
    <intent-filter>
        <action
android:name="android.intent.action.MAIN"/>

        <category
android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

 

 

MainActivity

   項目中的活動需要繼承Activity(系統提供的活動基類)才能擁有活動的特性。onCreateOptionMenu()方法用於創建菜單,onCreate()方法是一個活動被創建時必定要執行的方法。安卓講究邏輯和視圖分離,通用的做法是:在佈局文件中編寫界面,然後在活動中引入進來。(使用setContentView()方法)。

 

 

 

字符串的定義

安卓不提倡在程序中對字符串進行硬編碼,所以一般把字符串定義在res/values/strings.xml中。


Res文件夾的構成

以drawable開頭的文件夾是放圖片資源的,以values開頭的文件夾是放字符串的,layout文件夾放佈局文件,menu文件夾放菜單文件。各個drawable文件夾是放置同一圖片的不同分辨率的版本,根據設備而加載不同的圖片,但一般偷懶的話只放一張在drawable-hdpi中。

 

 

引用資源

   1、在代碼中通過R.string.hello_world引用

   2、在xml文件中通過@string/hello_world引用。

語法中string可以被替換成drawable、layout等引用其他類型資源。

 

 

Logcat的使用

  Tools->Android->Android Device Monitor

 

1、Log.v()

2、Log.d()

3、Log.i()

4、Log.w()

5、Log.e()

 

   可以通過設置tag爲自己的字符串以用來過濾掉與程序無關的日誌。

 

 

 

簡單活動的設計

   爲了實現邏輯和佈局分離,所以需要寫佈局文件,在活動中用setContentView加載,並在AndroidManifest.xml文件中註冊。註冊需要用name指定活動,label顯示爲應用的名稱和標題欄,如果這是主活動則需要加上intent-filter標籤。

<activity android:name=".FirstActivity"android:label="Thisis FirstActivity">
    <intent-filter>
        <action
android:name="android.intent.action.MAIN"/>
        <category
android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

 

 如果不想在活動中顯示標題欄,則可以在onCreate()中加入requestWindowFeature(Window.FEATURE_NO_TITLE),注意這句需要在setContentView前,否則會報錯。

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.first_layout);

 

Toast(使用的顯示消息的方法)

   在活動文件中通過findViewByID()方法獲取佈局文件中的元素,返回的是一個View對象,向下轉型成Button對象。通過調用setOnClickListener()方法註冊監聽器,點擊時就會執行監聽器中的onClick()方法。

   Toast的使用方法爲:通過靜態方法makeText()創建一個Toast對象,再調用show函數顯示。makeText需要三個參數:

1、上下文(由於活動就是一個上下文對象,所以傳入活動本身即可)

2、顯示的文本內容

3、顯示的時間(Toast.LENGTH_SHORT和Toast.LENGTH_LONG兩個內置常量可用)

 

 

 

在活動中使用Menu

   同樣邏輯和設計分離,菜單需要寫菜單的佈局文件,然後在活動中重寫onCreateOptionsMenu()方法。通過getMenuInflate方法獲得MenuInflater對象,再調用它的inflate方法爲當前活動創建菜單。Inflate方法有兩個參數,第一個指定用哪個資源文件創建菜單,第二個指定菜單添加到哪個menu對象中。最後返回true就能顯示菜單,返回false就不顯示菜單。

@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main,menu);
    return true;
}

 

   在活動中重寫onOptionsItemSelected()方法來定義菜單項響應事件。

@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId()){
        case R.id.add_item:
            Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();
            break;
        case R.id.remove_item:
            Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();
            break;
        default:
    }
    return true;
}

 

銷燬活動

   使用finish()函數就可以銷燬當前的活動,效果與點擊手機的返回鍵相同。

發佈了35 篇原創文章 · 獲贊 19 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章