2014-11-07 2 views
0

Привет всем Я совершенно новым в Android разработки, сAndroid Sax Parser HttpClient против Url каковы различия

Я хочу знать, если есть какая-то разница между передачей потока анализатора таким образом

SAXParserFactory saxPF = SAXParserFactory.newInstance(); 
    SAXParser saxP = saxPF.newSAXParser(); 
    XMLReader xmlR = saxP.getXMLReader(); 
    URL url = new URL("http://www.xmlfiles.com/examples/cd_catalog.xml"); // URL 
    XMLHandler myXMLHandler = new XMLHandler(); 
    xmlR.setContentHandler(myXMLHandler); 
    xmlR.parse(new InputSource(url.openStream())); 

Или таким образом

HttpClient httpclient = new DefaultHttpClient(); 
    HttpGet httpget = new HttpGet("http://www.xmlfiles.com/examples/cd_catalog.xml"); 
    HttpResponse response = httpclient.execute(httpget); 
    HttpEntity entity = response.getEntity(); 
    SAXParserFactory saxPF = SAXParserFactory.newInstance(); 
    SAXParser saxP = saxPF.newSAXParser(); 
    XMLReader xmlR = saxP.getXMLReader(); 
    XMLHandler myXMLHandler = new XMLHandler(); 
    xmlR.setContentHandler(myXMLHandler); 
    xmlR.parse(new InputSource(entity.getContent())); 

Там в любое преимущество во втором? Какой из двух использует меньше памяти?

ответ

0

В соответствии с этой ссылкой (http://android-developers.blogspot.com/2011/09/androids-http-clients.html) команда разработчиков Android предпочитает использовать параметры Java SE http/https во время выполнения операций http/https вместо использования библиотеки Apache HttpClient. Причина этого в том, что библиотека Apache HttpClient отличается многофункциональностью и, следовательно, более тяжелой, чем пакеты java.net. Но более поздние версии Java SE содержат функции http/https, которые все еще легки и эффективны.

Помимо этого лично я считаю, что разработчики Android предпочли бы отказаться от библиотеки Apache, потому что Apache продолжает выпускать дополнительные дополнения и сохраняет устаревшие функции, которые могут оказаться дополнительными накладными для команды разработчиков.

Чтобы ответить на ваш вопрос, первым вариантом будет вариант, который команда Android предпочла бы использовать.