-
[Network] Android Volley 라이브러리Programming/Android 2013. 11. 21. 13:37336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
오늘은 Google I/O 2013 에서 발표되었던 Volley 라는 Network&ImageLoading Framework 에 대해서 블로깅 해보려고 합니다.
이번 프로젝트에서 저는 Network 통신을 위해서 사용한 라이브러리 인데, 매우 만족하고 이에 대해 블로깅하고 정보를 공유하고자 합니다.
Volley의 주요 기능은 다음과 같습니다.
● 요청작업큐(RequestQueue) + Thread pool을 이용한 동시 요청 지원.
● 요청별 우선 순위 : 목록조회와 이미지 다운로드를 할때 목록조회가 우선순위가 높게 설정. 다음 페이지의 목록조회를 요청하면 이전페이지의 이미지로딩이 끝나지 않아도 기다리지 않고 수행.
(A요청이 B요청보다 먼저 응답을 받아야 할 경 우와 같이)
● Transparent cache : 요청하는 쪽에서 Cache 적용여부를 의식하지 않아도 됨
● 이미지 로딩툴, NetworkImageVIew라는 View 제공
● 요청 취소 : 특정 요청, 해당 Context의 요청 모두 취소할 수 있고, 취소할 규칙도 지정 가능
● 진저브레드 이전의 HttpURLConnection의 버그 문제 해결 :
2013년 5월 The platform에 기고한 Android의 HTTP 클라이언트 라이브러리 기사에서 다룬 여러 오픈소스가 그랬던
것처럼 진저브레드 이상에서만 java.net.HttpURLConnection을 쓰는 로직이 들어가 있습니다.
● retry, backoff policy 지원, 확장 기능
● SPDY 지원 : 발표 당시에는 Volley의 tranport stack으로 OkHttp( http://square.github.io/okhttp/ ) 를 넣는 작업이
누군가가 진행하고 있다고 했는데, 기사를 작성한 이후에 따끈따끈하게 공개 되었습니다.
● JSON, XML, Image, protobuffer 등 다양한 Response형식을 처리하도록 확장 가능
위와 같이 아주 유용하고 필요한 기능들이 기본적으로 내장되어있으며, 오픈소스라서 사용자에 맞게 커스터마이징도 가능한 점도 굳굳!
그리고 StringRequest, JSONObjectRequest, JSONArrayRequest 등 형식에 맞는 Request도 별도의 작업 없이 가능합니다.
또한 많은 분들이 ImageLoading 즉 웹으로부터 이미지를 다운로드 받아서 보여주기 위한 라이브러리로도 많이사용하시는데요!
그 목적으로 사용하시기에도 아주 좋은 기능들이 가득 포함되어있습니다.
이미지 로딩 부분에서의 장단점을 다루기에는 너무 많은 양이기 때문에 좋은 블로그 글을 소개시켜드리겠습니다.
[Android의 이미지 로딩 라이브러리 -> http://helloworld.naver.com/helloworld/429368 ]
아무튼! 저는 Network 통신을 위한 기본적인 방법들을 소개해드릴겁니다.
Volley 사용하기
Volley를 기본적으로 다운로드하고 프로젝트에 import 했다고 가정한 상태에서 예제 소스를 통해서 설명드리겠습니다.
위와 같은 요청이 가장 기본적인 Volley의 NetworkRequest 방법입니다.
http://rootnix.in 에 Get Request 를 보내고 Response 를 받아오는 거죠.
StringRequest(int method, String url, Listener<String> listener, ErrorListener errorListener)
위와 같이 String 만으로 받는것뿐 아니라, 요청에 파라미터를 넣고 응답받는 형식도 다른 형식으로 받을 수 도 있습니다.
위와 같이 JsonObject를 파라미터로 주고 Response 또한 JsonObject 로 받을 수 있어서 Restful Api 를 사용하기에 아주 좋습니다.
JsonObjectRequest(int method, String url, JSONObject jsonRequest, Response.Listener<JSONObject> listener, Response.ErrorListener errorListener)
Volley를 얼마나 잘 활용하느냐에 따라서 네트워크 통신 모듈을 작성하시는데 있어서 편리함과 유용함을 한번에 느끼실 수 있으실 겁니다 :D
더 자세한 활용법은 연락주시면 더 도와드리도록 하겠습니다.
Volley 다운로드 - git
git clone https://android.googlesource.com/platform/frameworks/volley
( https://android.googlesource.com/platform/frameworks/volley )
'Programming > Android' 카테고리의 다른 글
Android 앱 개발시 Java 7 사용하기 - 펌 (0) 2014.01.13 스피커폰으로 전화걸기 (2) 2013.08.19 MediaScanning - 미디어스캐닝 (623) 2013.08.19 Eclipse egit 설치하기 (481) 2013.03.26 제2강 HelloWorld를 안드로이드 단말기에서 실행하기 (1019) 2011.04.21 댓글