編輯:高級開發
android手機操作系統已經推出就伸手廣大用戶的青睐,比且多家主流手機生產商都采用這一系統應用於他們的智能手機中。在這裡我們就先從android Intent Filter的相關介紹中來對這一系統進行一個詳盡的了解。
匿名性質的運行時綁定使得理解android如何解析一個隱式Intent到一個特定的應用程序組件變得重要。
和你之前看到的一樣,當使用startActivity時,隱式Intent解析到一個單一的Activity。如果存在多個Activity都有能力在特定的數據上執行給定的動作的話,android會從這些中選擇最好的進行啟動。
決定哪個Activity來運行的過程稱為Intent解析。Intent解析的目的是通過下面的過程找到可能匹配得最好的android Intent Filter:
1. android把安裝的包中可獲得的Intent Filter放到一個列表中。
2. 動作和與正在解析的Intent的種類不關聯的Intent Filter會從列表中刪除。
2.1. 動作匹配指android Intent Filter包含特定的動作或沒有指定的動作。一個Intent Filter有一個或多個定義的動作,如果沒有任何一個能與Intent指定的動作匹配的話,這個Intent Filter在算作是動作匹配檢查失敗。
2.2. 種類匹配更為嚴格。Intent Filter必須包含所有在解析的Intent中定義的種類。一個沒有特定種類的Intent Filter只能與沒有種類的Intent匹配。
3. 最後,Intent的數據URI中的部分會與Intent Filter中的data標簽比較。如果Intent Filter定義scheme,host/authority,path或mimetype,這些值都會與Intent的URI比較。任何不匹配都會導致Intent Filter從列表中刪除。
沒有指定data值的android Intent Filter會和所有的Intent數據匹配。
3.1. mimetype是正在匹配的數據的數據類型。當匹配數據類型時,你可以使用通配符來匹配子類型(例如,earthquakes/*)。如果Intent Filter指定一個數據類型,它必須與Intent匹配;沒有指定數據的話全部匹配。
3.2. scheme是URI部分的協議——例如,http:,mailto:,tel:。
3.3. host-name或“data authority”是介於URI中scheme和path之間的部分(例如,www.google.com)。匹配主機名時,Intent Filter的scheme也必須通過匹配。
3.4. 數據path是緊接在“data authority”的後面(例如,/ig)。path只在scheme和host-name部分都匹配的情況下才匹配。
4. 如果這個過程中多於一個組件解析出來的話,它們會以優先度來排序,可以在android Intent Filter的節點裡添加一個可選的標簽。最高等級的組件會返回。
android本地的應用程序組件和第三方應用程序一樣,都是Intent解析過程中的一部分。它們沒有更高的優先度,可以被新的Activity完全的代替,這些新的Activity宣告自己的Intent Filter能響應相同的動作請求。
Google於2007年底正式發布了android SDK, 作為 android系統的重要特性,Dalvik虛擬機也第一次進入了人們的視野。它對內存的高效使用,和在低
目標:利用NDK 生成 SO 庫,使用 SO 庫進行 JNI 調用,在 android sdcard 創建文件並寫入數據。 工具:NDK1.5 R1, android
蘋果的iphone 有語音識別用的是Google 的技術,做為Google 力推的android 自然會將其核心技術往android 系統裡面植入,並結合google
盡管蘋果聯合創始人承認:android將取得最終勝利,不過很多人認為過於開放的環境依然不利於android,無差異的應用體驗正在制約Android超過iPhone。日前