2016-11-06 2 views
-1

목록이있는 Android 앱을 개발 중입니다.이 목록을 여러 사용자간에 동기화하고 싶습니다. 을 서버 측에서 수행 할 수 있습니까?서버가없는 Android 앱의 사용자 간 데이터 동기화

+0

해당 목록을 저장소 및 파일에 저장할 수 있습니다. 다른 장치에서 해당 파일을 동기화하십시오. –

답변

-2

웹 서버와 Android 앱간에 데이터를 동기화하려면 Android 기기에 몇 가지 구성 요소가 필요합니다.

영구 저장소는 :

이 휴대 전화는 실제로 웹 서버에서받은 데이터를 저장하는 방법입니다. 이 작업을 수행하는 한 가지 가능한 방법은 Sqlite 데이터베이스가 지원하는 사용자 지정 ContentProvider를 작성하는 것입니다.

ContentProvider는 저장된 데이터와 상호 작용할 수있는 일관된 인터페이스를 정의합니다. 원할 경우 다른 응용 프로그램이 데이터와 상호 작용할 수도 있습니다. ContentProvider 뒤에는 Sqlite 데이터베이스, 캐시 또는 임의의 저장 메커니즘이있을 수 있습니다.

Sqlite 데이터베이스와 함께 ContentProvider를 사용하는 것이 좋습니다.하지만 원하는 Java 기반 저장소 메커니즘을 사용할 수는 있습니다.

데이터 교환 형식 :

이것은 당신이 당신의 웹 서버와 안드로이드 응용 프로그램 사이에 데이터를 전송하는 데 사용하는 형식입니다. 요즘 널리 사용되는 두 가지 형식은 XML과 JSON입니다. 형식을 선택할 때 어떤 종류의 직렬화 라이브러리를 사용할 수 있는지 생각해야합니다. gson이라고하는 json serialization을위한 환상적인 라이브러리가 있다는 것을 알고 있습니다. http://code.google.com/p/google-gson/, 비슷한 라이브러리가 XML 용으로 존재한다고 확신합니다.

동기화 서비스

당신은 당신의 서버에서 새로운 데이터를 얻을 수 및 서버의 내용을 반영하기 위해 모바일 컨텐츠를 새로 고칠 수 있습니다 비동기 작업의 일종을 할 것입니다

. 콘텐츠를 로컬로 변경할 때마다 서버에 알리고 이러한 변경 사항을 반영하고자 할 것입니다. Android는이 패턴을 쉽게 해결할 수있는 방법으로 SyncAdapter 패턴을 제공합니다. 사용자 계정을 등록해야합니다. 그러면 Android에서 자동으로 많은 마법을 수행하고 자동으로 동기화 할 수 있습니다. 좋은 자습서는 다음과 같습니다. http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/

레코드가 동일한 지 식별하는 방법으로 일반적으로 Android 기기와 서버에 모두 저장되는 고유 한 ID로 항목을 만듭니다. 이를 사용하여 동일한 참조를 참조하고 있는지 확인할 수 있습니다. 또한 "updated_at"와 같은 열 속성을 저장하여 항상 최신 데이터를 가져 오거나 실수로 새로 작성한 데이터를 덮어 쓰지 않도록 할 수 있습니다.