999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析Android之數據共享

2011-12-31 00:00:00王亮亮葉苗
科技資訊 2011年28期

摘 要:Android是基于Linux開放性內核的操作系統,是Google公司在2007年11月5日公布的手機操作系統。Android作為Google移動互聯網戰略的重要組成部分,將進一步推進“隨時隨地為每個人提供信息”這一企業目標的實現。Google的目標是讓移動通信不依賴于設備,甚至是平臺。出于這個目的,Android將完善而不是替代Google長期以來推行的移動發展戰略:通過與全球各地的手機制造商和移動運營商成為合作伙伴,開發既實用又有吸引力的移動服務,并推廣這些產品。

關鍵詞:保存方式 數據共享 文件

中圖分類號:TP2\t\t\t文獻標識碼:A\t\t\t文章編號:1672-3791(2011)10(a)-0010-01

1 Android數據共享

數據是應用的核心,但是在Android中,每一個應用都運行在各自的進程中,當一個應用需要訪問其他應用的數據時,也就是數據需要在不同的虛擬機之間傳遞,這樣的情況操作起來可能有些困難—— 在正常情況下,不能讀取其他應用的數據。

那么Android是如何實現應用程序之間數據共享的?一個應用程序可以通過一套標準及統一的接口將自己的數據暴露出去,而外界可以通過這一套標準及統一的接口和這個程序里的數據打交道。

2 通過Intent實現數據共享

Android為了屏蔽進程的概念,利用不同的組件(Activity、Service)來表示進程之間的通信。組件間通信的核心機制是Intent,通過Intent可以開啟一個Activity或Service,而不論這個Activity或Service是屬于當前應用還是其它應用的。

Intent包含兩部分。

(1)動作(action)—— 要執行的動作,即要轉移的組件。

(2)內容(category、data)——要傳遞的數據,即要共享的數據。

Intent類型。

(1)顯式—— 直接指定消息目的地,只適合同一進程內的不同組件之間通信。

new Intent(this,Target.class)

2)隱式—— 需要在AndroidMainifest.xml中注冊,一般用于跨進程通信。

new Intent(String action)

有了Intent這種基于消息的進程內或進程間通信模型,我們就可以通過Intent去開啟一個Service,也可以通過Intent跳轉到另一個Activity,不論上面的Service或Activity是在當前進程還是其它進程內的,即不論Service或Activity是當前應用還是其它應用的,通過消息機制都可以進行通信,實現數據共享。但是通過消息機制實現的進程間通信,有一個弊端就是,如果我們的Activity與Service之間的交往不是簡單的Activity開啟Service操作,而是要隨時發一些控制請求,那么必須就要保證Activity在Service的運行過程中隨時可以連接到Service。

3 通過SharedPreferes實現

SharedPreferes是一種輕量級的數據保存方式。通過SharedPreferes可以將NVP(Name/Value Pair,名值對)保存在Android的文件系統中,而且SharedPreferes完全屏蔽的對文件系統的操作過程,開發人員僅是通過調用SharedPreferes對NVP進行保存和讀取的。另外,SharedPreferes多用于保存軟件配置參數,它主要是現實小數據的存儲與恢復顯示狀態。其背后是用xml文件存放數據,文件存放在/data/data//shared_prefs目錄下。

SharedPreferes支持三種訪問模式。

(1)私有(MODE_PRIVATE):僅有創建程序有權對其進行讀取或寫入。

(2)全局讀(MODE_WORLD_READABLE):不僅創建程序可以對其進行讀取或寫入,其他應用程序也有讀取操作的權限,但沒有寫入的權限。

(3)全局寫(MODE_WORLD_WRITEABLE):創建程序和其他程序都可以對其進行寫入操作,但其他程序沒有讀取的權限。

SharedPreferes的使用方法。

(1)保存數據。

①通過上下文對象獲得一個Shared Preferences對象。

②利用得到SharedPreferences對象獲得一個Edit對象,使用Edit對象實現對簡單數據的保存,注意要記得Edit的commit方法。

(2)獲取數據。

①通過上下文對象獲得一個Shared Preferences對象。

②使用SharedPreferences對象的get方法獲取數據。

4 Content Provider

在實際的應用中,每個應用都可以創建自己的數據,但是這個數據對其他應用來說是不可見的,當某個應用需要將自己的數據共享給其他應用使用時,我們就需要使用到內容提供者ContentProvider,使用ContentProvider去訪問某個應用程序的數據,讓我們不必關心某個應用程序的數據存儲方式。如果一個程序想讓其他程序操作自己的數據就必須定義自己的ContentProvider然后再清單文件中進行注冊,其他應用程序就可以根據ContentProvider定義的Uri對某一應用程序的數據進行操作。

android中的電話本等數據就是通過ContentProvider實現數據共享的,系統中有很多已經存在的共享Uri。我們可以使用ContentResolver通過Uri來操作不同表的數據;如Contacts.People.CONTENT_URI。

定義和使用自己的ContentProvider需要以下三步。

第一步,定義自己的ContentProvider,必須繼承ContentProvider,根據業務的需要實現相應的方法。要注意的是,我們自己定義的ContentProvider要提供對數據操作的入口(Content Provider可以對數據庫進行操作當然,也可以對文件類型的數據進行操作)。

第二步,在項目Manifest.xml文件中配置我們自定義的ContentProvider。

第三步,在其他應用中使用ContentResolver對ContentProvider進行訪問(實際上ContentRe solver對象簽名方法在內部最終是根據傳入的Uri拿到對應的ContentProvider對象,實現對數據的操作)。

總之,通過以上幾種方式,Android的應用程序間可以實現數據共享。另外,Android在數據共享的安全方面有一個統一、完備和輕便的安全策略模型,即權限設置。我們可以定義自己permission,然后在需要的組件處設置該permission,那么用戶要想該使用組件的數據時,就必須要配置該permission,否則訪問就會失敗。

主站蜘蛛池模板: 97在线观看视频免费| 成人中文在线| 亚洲一级无毛片无码在线免费视频 | 欧美不卡视频在线| 亚洲国产日韩在线成人蜜芽| 国产精品lululu在线观看| 欧美成人影院亚洲综合图| 日韩欧美网址| 有专无码视频| 国产男女XX00免费观看| 日韩精品无码不卡无码| 亚洲中文字幕无码爆乳| 午夜视频免费试看| 成人久久精品一区二区三区| 久久国产高清视频| 免费A级毛片无码无遮挡| 中日韩欧亚无码视频| 亚洲综合第一页| 中文国产成人久久精品小说| 91香蕉视频下载网站| 欧美另类视频一区二区三区| 亚洲免费福利视频| 色噜噜狠狠色综合网图区| 欧美日韩中文字幕在线| 天天综合网亚洲网站| 欧美日韩亚洲综合在线观看| 日本人真淫视频一区二区三区 | 欲色天天综合网| 欧美成人免费午夜全| 丝袜无码一区二区三区| 国产成人精品视频一区二区电影| 国产成人综合亚洲网址| 婷婷综合缴情亚洲五月伊| 无码区日韩专区免费系列| 色婷婷狠狠干| 国产第八页| 日韩欧美国产中文| 久久久久青草线综合超碰| 美女高潮全身流白浆福利区| 亚洲美女久久| 丁香五月亚洲综合在线 | 国产精品亚洲一区二区三区在线观看| 亚洲欧洲日产国码无码av喷潮| 中文精品久久久久国产网址| 国产欧美日韩在线一区| 国产剧情无码视频在线观看| 国产毛片基地| 欧美在线三级| 婷五月综合| 欧美激情视频二区| 色爽网免费视频| 亚洲伦理一区二区| 亚洲精品在线影院| 欧美区一区| 亚洲欧美成人在线视频| 日本中文字幕久久网站| 99性视频| 男人的天堂久久精品激情| 亚洲综合片| 国产精品浪潮Av| 日韩一区二区在线电影| 日韩精品无码免费专网站| 极品国产在线| 国产一级裸网站| 国产乱子伦视频三区| 亚洲免费人成影院| 国产一区二区网站| 国产日韩精品欧美一区喷| 久久久精品无码一二三区| 久久这里只精品国产99热8| 国产成人一区在线播放| 亚洲欧美在线看片AI| 欧美一级特黄aaaaaa在线看片| 国产精品吹潮在线观看中文| 国产在线视频二区| 欧美综合一区二区三区| 2022精品国偷自产免费观看| 波多野结衣在线一区二区| 国产成人免费| 午夜视频www| 天天综合天天综合| 青青草国产一区二区三区|