它將應用程序細分爲「平臺」和「應用程序」層,以便我可以將平臺作爲jar分發給合作伙伴使用 - 同時保護我的IP。在Android中創建和使用「通用平臺」jar - 有用嗎?
我現在有兩個Eclipse項目。建築沒有能力將任何資源編譯到jar中,所以我將所有資源引用移動到應用程序項目中(平臺項目gen /目錄爲空)。我整理平臺,然後手動使用JDK向罐子吧,進口的水罐裏的應用項目,標誌着在應用項目出口的罐子,併成功地編譯和安裝一個測試應用程序:
public class NotifyService extends Service {
...
@Override
public void onStart(Intent intent, int startId) {
myNotify(intent.getIntExtra(EXTRA_ICON),...));
}
private void myNotify(int iconResource, String s1, String s2, String s3) {
Context c = getApplicationContext();
if (H.VERBOSE) Log.d(TAG, "myNotify()"); //$NON-NLS-1$
Notification n = new Notification(iconResource, s1, currentTime);
Intent nextStep = new Intent(Intent.ACTION_VIEW,Uri));
PendingIntent pending = PendingIntent.getActivity(c, 0, nextStep, 0);
n.setLatestEventInfo(c, s2, s3, pending);
mgr.notify(1, n);
}...
的測試活動按預期啓動,並從此服務獲取LogCat()消息。但是沒有通知顯示,也沒有記錄錯誤 - 它只是沉默。 ...
無論如何,我希望合作伙伴應用程序可以利用我的平臺連接到服務,內容提供商,網絡,作品。任何人提供一些指導?
更新!
哈...典型...當我將所有資源移出平臺並進入我的應用程序時,我沒有從應用程序層正確傳遞這些資源。因此,我給出的代碼示例沒有錯誤。使用意圖而不是鏈接從當前「期望的參數」傳遞的「參數傳遞」的解耦 - 而編譯器不會抱怨。有了更正的應用程序,這個工程。
雖然我認爲創建一個二進制發佈平臺並不少見,但我沒有找到太多的doc,所以當我打開大門時,我會繼續添加任何重要的發現......希望對某人有用。
謝謝蒂姆。我不會將我的平臺作爲源代碼發佈 - 我想保留我的IP。也許我誤解了這些引用中的詞......「庫不能作爲二進制文件(例如jar文件)分發,這是因爲庫項目是由主項目編譯的,以便使用正確的資源ID。」這就是爲什麼我將所有資源引用遷移到應用程序層,並在平臺調用中將它們作爲參數傳遞(或意圖附加)。 谷歌API庫包含兩個罐子,這同樣的文檔說可以參考.. – DJC 2010-09-01 18:47:16
@DJC - 根據我的編輯,我意識到AndEngine是一個非常具體的用例,但也許它的一些管道將對你有用。 – 2010-09-01 23:18:25
Ty Tim ...我介紹了一個錯誤應用端,請參閱更新到原始文章。我在我的方式看起來..和興奮:) – DJC 2010-09-01 23:42:09