Android開發學習筆記

來源:互聯網
上載者:User

一、基礎

 

1. Android是個多使用者系統

2. 預設情況下, Android為每個應用程式指派一個獨立的使用者名稱, 只有Android系統知道這個使用者名稱, 應用系統本身並不知道, Android為這個使用者指派應用所需的許可權。

3. 每個應用運行在獨立的VM中,所以不同的應用之間是無法無法訪問的。

4.預設情況下, 每個應用程式運行在獨立的Linux進程中, 當應用中的任何組件被執行時,Android將啟動這個進程。

 

應用之間的互動:

1. 兩個應用程式可以被指定共用同一個使用者名稱, 這樣兩個程式就可以訪問彼此的檔案。

2.所有的應用程式可以在安裝時候申請連絡人, 簡訊息,記憶卡等的存取權限。

 

應用組件:

1. Activity : 一個Activity對應一個顯示頁面,一個應用程式中的Activity可以被其它應用程式調用。

2. Service : Service是一個後台啟動並執行組件, 它沒有UI, 其它組件可以啟動它。

3. ContentProvider : 提供一種資料互動的方式

4. BroadcastReceiver : 用於響應一個系統級的通知,沒有UI,但是可以產生一個狀態列通知。

 

各種組件之間的互動:

1. 可以通過傳遞Intent到startActivity或是startActivityForResult來啟動Activity

2. 可以通過傳遞Intent到startService來啟動Service,或者通過傳遞Intent到bindService來綁定到一個Service

3. 可以通過傳遞Intent到sendBroadcast, sendOrderedBroadcast或sendStickyBroadcast來初始化一個Broadcast

4. 可以能過調用query方法來訪問ContentResolver

 

AndroidMenifest.xml

Android在啟動一個應用的組件前, 必須通過AndroidMenifest.xml檔案來載入組件, AndroidMenifest.xml檔案必須放在應用程式的根目錄。

*定義應用中所有的組件

1. 聲明應用的使用者名稱所需要申請的許可權

2. 定義所需的API的最低層級

3. 定義所需的硬體及軟體

4. 應用所需的Android之外的其它API

 

## 聲明包含組件

<?xml version="1.0" encoding="utf-8"?><br /><manifest ... ><br /> <application android:icon="@drawable/app_icon.png" ... ><br /> <activity android:name="com.example.project.ExampleActivity"<br /> android:label="@string/example_label" ... ><br /> </activity><br /> ...<br /> </application><br /></manifest>

<activity>, <service>和<provider>必須在Menifest中聲明, 否則, 這些組件將不能被訪問。

<receiver>可以在Menifest中聲明, 也可以動態在代碼中通過registerReceiver定義。

 

通過在一個組件中聲明<intent-filter>,可以指定該組件所響應的Intent.

 

Activity的狀態:

1. Resume - 前台Activity並且擁有使用者焦點的狀態, 或叫running 

2. Paused - 其它Activity位於前台並擁有使用者焦點, 但是該應用未被完全覆蓋, 該應用的所有屬性都將儲存在記憶體中, 但是當記憶體極度缺少時系統會終止該應用。

3. Stopped - 後台啟動並執行Activity, 狀態被維護在記憶體中, 但是系統可能會釋放其記憶體。

 

Activity回呼函數:

1. onCreate - 當Activity被建立時執行

2. onStart - 當Activity即將可見時執行

3. onResume - 當Activity已經變為可見後

4. onPause - 另一個Activity變為目前狀態

5. onStop - Activity不可見時, 狀態已為Stopped

6. onDestory - Activity即將被銷毀

在重寫以上方法時需要先調用super的對應方法。

 

Activity完整生命週期: onCreate -> onDestory

Activity可見生命週期: onStart -> onStop

Activity前台生命週期: onResumt -> onPause

 

Activity A啟動Activity B時的生命週期:

1. A的onPause被調用

2. B的onCreate, onStart, onResume順序被調用

3. 如果A已經不顯示, 則A的onStop被調用。

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.