編輯:Android開發實例
進程
在Android 中,進程是應用程序的完整實現,而不是用戶通常了解的那樣。他們主要用途很簡單:
• 提高穩定性和安全性,將不信任或者不穩定的代碼移動到其他進程。
• 可將多個.apk 包運行在同一個進程裡減少系統開銷。
• 幫助系統管理資源,將重要的代碼放在一個單獨的進程裡,這樣就可以單獨銷毀應用程序的其他部分。
像前面描述的一樣,進程的屬性被用來控制那些有特殊應用組件運行的進程。注意這個屬性不能違反系統安全: 如果兩個.apk 包不能共享同一個用戶ID,卻試圖運行在通一個進程裡,這種情況是不被允許的,事實上系統將會創建兩個不同的進程。請查看安全相關文檔以獲取更多關於安全限制方面的信息。
線程
每個進程包含一個或多個線程。多數情況下,Android 避免在進程裡創建多余的線程,除非它創建它自己的線程,我們應保持應用程序的單線程性。一個重要的結論就是所有呼叫實例, 廣播接收器, 以及服務的實例都是由這個進程裡運行的主線程創建的。注意新的線程不是為活動,廣播接收器,服務或者內容提供器實例創建:這些應用程序的組件在進程裡被實例化(除非另有說明,都在同一個進程處理),實際上是進程的主線程。這說明當系統調用時這些組件(包括服務)不需要進程遠距離或者封鎖操作(就像網絡呼叫或者計算循環),因為這將阻止進程中的所有其他組件。你可以使用標准的線程類或者Android 的HandlerThread 類去對其它線程執行遠程操作。這裡有一些關於創建線程規則的例外:
• 呼叫IBinder 或者IBinder 實現的接口,如果該呼叫來自其他進程,你可以通過線程發送的IBinder 或者本地進程中的線程池呼叫它們,從進程的主線程呼叫是不可以的。特殊情況下,,呼叫一個服務的IBinder可以這樣處理。(雖然在服務裡呼叫方法在主線程裡已經完成。)這意味著IBinder 接口的實現必須要有一種線程安全的方法,這樣任意線程才能同時訪問它。
• 呼叫由正在被調用的線程或者主線程以及IBinder 派發的內容提供器的主方法。被指定的方法在內容提供器的類裡有記錄。這意味著實現這些方法必須要有一種線程安全的模式,這樣任意其它線程同時可以訪問它。
• 呼叫視圖以及由視圖裡正在運行的線程組成的子類。通常情況下,這會被作為進程的主線程,如果你創建一個線程並顯示一個窗口,那麼繼承的窗口視圖將從那個線程裡啟動。
底層原理如上,項目小實例開始:
網上看了一些例子,有高手們是直接新建一個類,然後繼承Thread之生重寫run方法,這個項目我將采用第二種寫法,就是繼承直接用Activity去繼承implements Runnable如:public class testAnalogClock extends Activity implements Runnable ,之後我們只要重寫Runnable的實現方法就可以做到同樣的效果。因為網上有很多相似功能,具體代碼將不做過多解釋,我會在項目上一一做注釋,源碼如下: package cn.terry;
如果你有什麽疑問或者建議可以 QQ:285735942 或 Email:[email protected] 源碼下載:/Files/TerryBlog/testAnalogClock.rar
本文實例講述了Android中ViewFlipper的使用及設置動畫效果。分享給大家供大家參考,具體如下: 說到左右滑動,其實實現左右滑動的方式很多,有ViewP
Android 側滑菜單的實現,參考網上的代碼,實現側滑菜單。最重要的是這個動畫類UgcAnimations,如何使用動畫類來側滑的封裝FlipperLayout
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我