2010-01-05 36 views
7

我想製作一個應用程序(其中包括)可以解析通過網絡加載的Feed。鑑於標準的Android +核心Java庫不提供饋送解析器服務,而且我也不想自己編寫一個饋送解析器服務,您能否提名可在低規格Android設備上工作的Java饋送解析器。什麼是Android上使用最廣泛的Feed解析庫

我剛剛開始學習Android,完成了Hello World示例,我想要轉到我的第一個應用程序。我想製作一些解析一些ATOM或RSS源並在GridView中顯示一些內容的東西。

UI的東西似乎在Android中有很好的記錄,而且Sun有很多關於如何檢索URL的例子,但是我不知道如何進行分析。

以前,當我在Pythion中完成這類事情時,我使用了一個通用的feed解析器,它可以解析任何東西(比如RSS,ATOM)。有很多很好的Python實現,但是我沒有發現任何這樣的東西作爲標準Android庫的一部分。

在工作中,我已經完成(輕)企業Java應用程序的維護。一般的做法似乎是採取你喜歡的任何類(例如Jakarta Commons feed-parser)並簡單地將它們捆綁到CLASSPATH中。桌面應用程序並不關心依賴程度有多大,但是我確信在編譯APK程序包以用於受限制的設備時這是一個大問題。當然,我必須非常挑剔我依賴哪種罐子,對吧?我可以繼續使用和桌面應用程序相同的類嗎?

注:

  • 我的背景是在Python(只有光的Java經驗)
  • 理想我想使用一些流行的(不是neccecarily最好的),所以我可以得到它的支持。
  • 更好的是,我想使用內置的庫函數,所以我不必添加任何第三方Jar來膨脹我的應用程序。
  • 目前針對Android 1.5的(因爲這是我的設備運行的)

回答

2

Rome似乎是最流行的java RSS庫之一。我想它也可以在Android上使用。

+1

我讀過,羅馬需要JavaBeans這不是在Android平臺上的組件。這可能不是一種選擇。 – 2010-01-05 23:45:12

+1

我記得看到一個基於羅馬的android RSS項目。儘管如此,它並不活躍。所以給羅馬一個嘗試,不要花很長時間才能認識到它是否有效。無論如何,在這個問題上搜索Stackoverflow更多 - 有很多結果。 – Bozho 2010-01-05 23:47:32

+0

Android的DalvikVM不支持ClassLoader,在ROME API中使用女巫。 – lemotdit 2010-07-20 17:50:58

3

由於RSS/ATOM原料基本上可以使用SAXParser XML文檔,這是標準的Java庫的一部分,包括了Android。

+2

是的,我可以做到這一點 - 但我寧願不重新發明輪子。 當然,很多(比我更優秀的開發者)已經創建了完美的feed分析器。如果我正在開發桌面,我絕對不會使用SAX編寫源代碼解析器代碼,但考慮到我的時間限制,它可能會是垃圾。我可以爲Android做類似的事嗎? – 2010-01-05 17:36:06

+0

要麼使用第三方庫或重新發明車輪。既然你說過你不想將第三方jar與你的應用捆綁在一起,那麼使用SAX就是最好的選擇。如果你想使用其他的RSS庫,那麼我會用Bozho的建議來使用羅馬。 – 2010-01-05 21:54:06

+0

澄清,我想盡量減少額外的依賴,因爲它們會導致膨脹,但是最好是添加一點脂肪,使它比花費我大部分時間來實現基本/乏味的東西,如提要解析器更好。看到我的評論如下羅馬 – 2010-01-05 23:46:18

0

設置SAX解析器的實現相當容易,但最難的部分是能夠解析太陽下的任何和每個feed。

您需要滿足RSS 1,RSS 2,Atom等所有格式。即使這樣,您也必須應對格式不正確的Feed。

我以前遇到過類似的問題,所以決定在服務器上執行我的feed解析並獲取解析的內容。這使我可以運行更復雜的庫和解析器,我可以修改它們而不必爲我的應用程序推送更新。

我有以下服務在AppEngine上運行,它允許在您的最後更簡單的XML/JSON解析。響應有一個固定和簡單的結構。您可以使用此解析

http://evecal.appspot.com/feedParser

您可以發送POST和GET具有下列參數的請求。

feedLink:RSS饋送響應的URL:JSON或XML作爲響應格式

實例:

對於POST請求

捲曲--data-進行urlencode「feedLink = HTTP: //feeds.bbci.co.uk/news/world/rss.xml」 --data-進行urlencode 「響應= JSON」 http://evecal.appspot.com/feedParser

對於GET請求

evecal。 appspot.com/feedParser?feedLink=http://feeds.nytimes.com/nyt/rss/HomePage & response = xml

我的android應用程序「NewsSpeak」也使用它。

0

檢查輕量級Android庫以閱讀https://github.com/ahorn/android-rss中的RSS 2.0源的部分內容。我不知道Android是否是最流行的庫,但對我來說看起來很好。我還沒有嘗試過。

+0

只是一個建議,但我懷疑,將這個鏈接放在上下文中的一個小敘述毫無疑問將不勝感激。例如,它只是你使用的東西?你知道絕大多數人使用和/或是最普遍的解決方案嗎?隨你。 – Rob 2012-08-08 02:33:16

+1

對不起,我不知道它是否是最受歡迎的,我還沒有嘗試過。因此只有鏈接。但到目前爲止,它看起來是最好的,我一定會嘗試。 – Chloe 2012-08-08 02:37:20

0

也有這個新的RSS圖書館中,我寫道: https://github.com/Pkmmte/PkRSS

這是非常輕便,高效,快捷,可定製的,並且非常易於使用。例如,下面的代碼在後臺線程中加載並解析RSS提要:

PkRSS.with(this).load(url).async(); 

簡單,對吧? 在GitHub頁面中有更多詳細信息。

相關問題