2013-07-16 45 views
19

我打算實施一個應用程序,我已經到了一個地步,我不知道什麼是最好的方法。如何在不同設備之間同步數據

場景:

我有,我想提出一個待辦事項列表,我將3項應用程序。我爲此使用我的手機。 然後我帶上我的平板電腦並想繼續添加其他任務。然後過了一段時間,我拿着我妻子的電話,想要添加2個新任務。

基本上我想有一個非常簡單的方式來存儲任務在線,並能夠與應用程序同步。

我看到兩種可能的方式:

  • 有一個數據庫+ Web服務調用的Web服務器。這有一個主機支付的缺點,學習一些額外的MySQL + Web服務技術。

  • 以某種方式存儲雲上的數據,並通過登錄允許應用程序訪問存儲該文件的帳戶。我在這裏想到Google Drive/Dropbox之類的東西。但我不知道如何才能夠只同步更新的值,而不是整個文件。因爲我在想,如果我將所有任務存儲到一個文件中,那麼每次更新文件時,都需要將其完全上傳,這不是最好的方法。

我願意接受任何建議。你會推薦什麼方法?

+0

谷歌雲端儲存聽起來像是完美的解決方案,但它尚未發佈... HTTP://developer.android.com/google/gcs/index.html –

回答

6

我想看看Google App EngineAmazon Web Services。他們每個月都會免費分配使用費用,如果你過了一段時間,你就開始付款了,有可能你會在一段時間內免費通過免費套餐。

AWS比GAE目前比較成熟一點,似乎有點更容易實現的是GAE是,當我研究他們

+3

謝謝您的選項。另外DropBox Datastore api似乎是一個非常好的免費替代方案... – Alin

2

看一看用於同步適配器新的培訓類: http://developer.android.com/training/sync-adapters/index.html爲將數據從設備發送到服務器的基本知識。

在Android設備上,我建議您將任務存儲在內容提供者中。這有助於您追蹤自上次同步以來的更新。然後,您可以在同步過程中查詢提供程序,僅發送已更新的數據,並將數據存儲在服務器上。

您應該在設備上存儲上次更新時間,以便您可以判斷服務器是否包含尚未在設備上的數據。請記住,如果您希望所有設備同步,則還必須下載任務。

0

你可以看看我們的Rethync框架(帶源代碼的免費軟件)。使用它可以簡化檢測修改的任務並僅同步更新的數據。接下來,Rethync提供了客戶端和服務器端API,因此您可以創建自己的服務(並將其託管在網絡端),或者您可以爲您選擇的雲服務編寫自己的傳輸(我們將在未來提供一些傳輸,現在正在開發中)。

+0

看起來像這樣從來沒有超過預發佈。這是否仍在積極開發?任何更新?路線圖? – IInspectable

+0

@IInspectable它穩定且功能完善,幷包含文檔。如果有問題報告,我們會相應更新實施。至於未來的發展 - 目前狀態下的引擎是獨立的,即任何新功能都不符合當前同步引擎的概念。另一方面,像TLS這樣的東西已經存在了(通過使用支持TLS的傳輸)。 –

15

還有Google Drive的「應用程序數據」文件夾。

https://developers.google.com/drive/android/appfolder

這與使用用戶的存儲空間的優點。

+1

我認爲你必須有兩個設備爲此,這很可能不是真正的「以我妻子的電話」在同一個帳戶。 – TWiStErRob

+0

@TWiStErRob這不就是說需要使用同一帳戶登錄設備嗎? – CamHart

+2

@CamHart你是對的。我認爲TWiStErRob的觀點是,OP不太可能在他們的妻子的電話上有他們的賬戶。因此,雖然它可能是跨設備同步數據的簡單方法,但並不一定能滿足問題的所有要求。 – Mike

相關問題