2013-06-27 5 views
2

내 Android 앱의 경우 네트워크 트래픽을 가능한 한 낮게 유지하려고합니다. 나는 HttpResponseCache을 알고 있지만 API> = 13에서만 작동하므로 나를위한 옵션이 아닙니다.캐싱 Json/Rest 네트워크 응답

LruCache을 사용하는 것으로 생각하면 REST URL을 키로 사용합니다 (주어진 theres no POST 데이터). 서버 (JSON)에서 응답을 받으면 나는 즉시 Gson으로 POJO를 만듭니다.

  • 값으로 무엇이 더 좋습니까? JSON 문자열을 누른 다음 Gson으로 다시 deserialize하거나 POJO을 저장 하시겠습니까? deserializing이 약간의 CPU 시간을 필요로한다는 것을 알고 있지만 아마도 캐시에 POJO을 저장하는 것이 단점입니까?

  • 나는 '제품'이라고하는 POJO의 내용을 표시한다고합니다 (서버에서받은 내용은 JSON입니다). 오리엔테이션 변경에서 제품을 계속 유지하는 것을 잊어 버릴 수 있습니까? savedInstanceState 또는 그 밖의 방법을 통해) 다시 검색하기위한 네트워크 호출은 캐시에 남아 있기 때문에 항상 '무료'상태가 될 수 있습니다.

  • 다른 유형의 객체에 대해 별도의 캐시를 사용하거나 하나의 큰 캐시를 사용하는 것이 더 좋습니까?

  • 모든 (MiB 또는 항목의 단지 수) 캐시위한 좋은 크기를 결정하는 방법에 대한 조언

답변

2

좋은 출발점이 편안하고 패턴에/O 2010 이야기 버질 Dobjanschi의 Google I입니다 안드로이드를위한 : http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html

간단히 말해, 그는 요청을 최소화하기 위해 HTTP 요청 및 캐싱 데이터의 상태를 추적하기 위해 SQLite를 사용하는 것을지지합니다. 샘플 구현 here을 찾았지만, 그 이야기에서 개략적으로 설명 된 패턴에 대해 더 많은 리소스를 검색하고 싶을 수 있습니다.

원래이 대답 이후, 캐싱 HTTP 요청을 처리 할 안드로이드 용 좋은 오픈 소스 라이브러리가 여러 개 생겨났습니다. OkHttpVolley은 두 가지 옵션으로 제공됩니다.