我已經爲一些朋友和客戶構建了一個半推送服務(檢查來自集中http服務器的通知),因此他們可以輕鬆地將推送式通知添加到他們的應用程序中,而不會有太多麻煩。使用JAR打包drawable資源?
我已經得到了足夠遠打包JAR,包括它在我的一些其他項目,但現在我打磚牆關於資源包裝 -
- 在我PushNotify項目,我有一個資源:R.drawable.goldstar
- 我通過引用
resources.getIdentifier('goldstar', 'drawable', 'com.com.pushnotify')
- 當我打包PushNotify作爲自己的APK繪製兩次申請,一旦通過引用
R.drawable.goldstar
,有一次,金五星正確顯示在這兩個地方。 - 我在Eclipse中右鍵單擊Export Project作爲JAR文件,從包含的文件中取消選中「ApplicationManifest.xml」,然後單擊「Finish」。
- 我可以在添加更多可繪製資源時驗證此JAR文件的大小是否增加。
- 當我在構建路徑中打包DependantApp.apk,包括PushNotify.jar時,金星正確出現在兩個地方。
- 如果我卸載PushNotify.apk,黃金星星將從DependantApp.apk中消失,就好像它們沒有與JAR打包在一起;返回0值爲
getIdentifier('goldstar', 'drawable', 'com.com.pushnotify')
。
我該如何分配帶有可繪製資源的JAR,並讓它們出現在從屬應用程序中?包括我的JAR在內的應用程序永遠不需要訪問我分發的圖標,只有我自己的代碼可以。
儘管進行了大量的NaY話說,在搜索結果中我發現,我敢肯定這是某種可能,因爲)我的JAR文件的增長,當我添加新的圖像,和b)我已經包括JAR文件(Airpush這樣做,UrbanAirship也一樣)。
在此先感謝!
我已經使用了我正在討論的JAR文件。請閱讀我的最後一段。 – linked 2012-02-01 00:39:42
@linked:你目前不在支持。作爲可重用組件的一部分分發資源的唯一支持手段是Android庫項目。那些不能直接打包成JAR。 「目前,還不支持包含jar文件的庫項目,而不是源代碼。」 (http://tools.android.com/recent/buildchangesinrevision14)雖然該文件表明R15應該增加對此的支持,但它沒有,也沒有R16。 – CommonsWare 2012-02-01 01:12:50
@linked:儘管存在粗糙的解決方法,但目前沒有涉及實際存在於JAR中的資源。我並不清楚JAR中的資源是否是Tools工作組計劃的一部分,儘管我當時有這種印象。 Java已經擁有自己的「資源」構造的時間比Android更長,並且它支持JAR中的東西,但是您不會通過'R.'常量訪問它們 - 儘管名稱相同,但Android中的「資源」與「舊資源」中的Java風格。 – CommonsWare 2012-02-01 01:15:21