2011-01-23 71 views
0

比方說,我寫了一個應用程序,顯示餐廳菜單,並讓用戶從中訂購物品。我將它稱爲RestaurantMenuApp。我希望將這個主要應用程序標記在我的公司名下。它將允許用戶查看多個不同的餐館並在其中任何一家下訂單。採購是通過使用我公司的商家帳戶對我的Web服務進行API調用完成的。同一個iphone或android應用程序的多個版本是否可以使用共享代碼或庫?

現在,讓我們說我也想賣這個應用程序的定製版本,以個別餐廳。定製版本僅以該餐廳爲主題,僅顯示菜單,地點,宣傳片等等。這將使餐廳看起來像他們建立自己的自定義應用程序。採購仍然通過對我的網絡服務的API調用完成,但每個品牌版本都可以使用自己的商家帳戶。

我想知道是否每個應用程序(主RestaurantMenuApp和每個單獨定製的餐廳應用程序)必須包含整個應用程序的整個副本。是否有可能讓每個應用程序都安裝一個共享庫以供所有應用程序使用?如果任何應用程序已經安裝了此共享庫,其他應用程序不需要安裝它?

我是新來的移動應用程序開發和搜索的答案,但只能找到解決方案,如何構建精簡版與完整版本的同一個應用程序。目前還不清楚這些應用程序是否可以共享代碼以使每次安裝更小。

回答

0

對於iPhone而言,應用程序間通信幾乎不受限制。蘋果公司以這種方式設計了iOS,這有利於安全性和用戶體驗。

在Android上,應用程序間通信具有更大的靈活性。有幾種方法可以實現你想要的。

首先,您可以使用服務。 Android上的服務流程與Windows上的服務流程非常相似。他們一直在後臺運行。有一個代碼示例。

http://marakana.com/forums/android/examples/60.html

或者你可以使用意圖。意圖接收器向Android操作系統註冊以指定他們將處理的操作和數據格式。例如,像下面這樣的意圖過濾器告訴Android OS,接收將能夠查看,編輯和選擇任何mime類型的vnd.android.cursor.dir/vnd.google.note。所以你可以創建一個組件作爲intent接收器來處理特殊的數據格式。在另一個Android應用程序中,您會推出您的數據,意圖接收器將從那裏接管。

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <action android:name="android.intent.action.EDIT" /> 
    <action android:name="android.intent.action.PICK" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /> 
</intent-filter> 

有關意向過濾器的更多信息,可以參考此文檔。

http://developer.android.com/guide/topics/intents/intents-filters.html

1

對於iPhone/iOS App Store應用程序,操作系統強制安全沙箱禁止應用程序共享任何代碼。

+0

謝謝,這就是我所害怕的。這意味着用戶會爲每個定製的應用程序佔用設備空間。太糟糕了。 – Tauren 2011-01-23 11:20:35

+0

@Joe - 如果你這麼說,對我來說似乎很浪費。我猜iOS開發人員只是習慣了這一點,不要再三思而後行了。我來自Web應用程序開發,所以我一直在考慮優化下載大小,縮小JavaScript等等。我想我需要一個不同的思維模式。 – Tauren 2011-01-24 09:39:57

相關問題