2010-09-01 41 views
0

它將應用程序細分爲「平臺」和「應用程序」層,以便我可以將平臺作爲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,所以當我打開大門時,我會繼續添加任何重要的發現......希望對某人有用。

回答

1

您應該看一下「庫項目」的概念。

Working with Library Projects

[編輯]

@DJC - 我明白了......在這種情況下,我建議看AndEngine項目。該項目的輸出是一個JAR,然後用於AndEngineExamples項目(一個消耗它的示例應用程序)。

AndEngine - 獨立庫,分佈爲JAR

AndEngineExamples - 示例應用程序,它消耗AndEngine JAR

+0

謝謝蒂姆。我不會將我的平臺作爲源代碼發佈 - 我想保留我的IP。也許我誤解了這些引用中的詞......「庫不能作爲二進制文件(例如jar文件)分發,這是因爲庫項目是由主項目編譯的,以便使用正確的資源ID。」這就是爲什麼我將所有資源引用遷移到應用程序層,並在平臺調用中將它們作爲參數傳遞(或意圖附加)。 谷歌API庫包含兩個罐子,這同樣的文檔說可以參考.. – DJC 2010-09-01 18:47:16

+0

@DJC - 根據我的編輯,我意識到AndEngine是一個非常具體的用例,但也許它的一些管道將對你有用。 – 2010-09-01 23:18:25

+0

Ty Tim ...我介紹了一個錯誤應用端,請參閱更新到原始文章。我在我的方式看起來..和興奮:) – DJC 2010-09-01 23:42:09

0

考慮使用包裹,它就像一個瓶子只有其Android特有的。我對他們沒有太多經驗,但我認爲他們在重複使用活動,觀點和事情方面非常強大。

「它(包裹)包裝了一個JAR和其他Android相關文件,您需要有效地使用該JAR。」 -高級Android開發

相關問題