2012-01-06 64 views
8

有沒有關於如何開發具有「加載項」的應用程序的大綱或入門知識?如何開發具有附加組件的應用程序?

例如,如何開發某種爲應用程序添加「主題」的框架?

有2個主題的基本應用程序。用戶應該能夠爲某個主題下載另一個應用程序。

原始應用程序和新下載的應用程序如何一起講話?

您將如何開發原始應用程序以從第二主題專用應用程序獲取主題信息和圖形資產?

我的理解是應用程序是完全獨立的,所以這就是爲什麼我不清楚如何實現這一點。

回答

6

如何原來的應用和新的應用程序下載一起討論?

對於一個主題,誰說,他們要一起談談嗎?

如何開發原始應用程序以從第二主題應用程序獲取主題信息和圖形資源?

第1步:選擇你的包命名約定。例如,如果您的基本應用是com.abc.app,您的主題可能是com.abc.app.theme.*。步驟#2:當用戶選擇主題時,請使用PackageManagergetInstalledApplications()通過檢查主題名稱來查找主題。

第3步:當談到時間的主題時,呼籲PackageManagergetResourcesForApplication()獲得主題應用程序的Resources,這樣你就可以在你的東西得到。我確信有策略(例如,主題主要是傳送帶,將它的東西部署在外部存儲的目錄中,主應用程序從中讀取信息),但這是我要開始的一個策略與,因爲它應該需要最少的用戶干預。

+0

關於:「PackageManager上的getResourcesForApplication()獲取主題應用程序的資源」...您可以對自己以外的應用程序執行此操作嗎?是否有某種安全功能需要實施,以確保只有我的應用能夠訪問這些資源,而其他第三方應用才能訪問?這將是我認爲我需要開始的缺失部分。 – 2012-01-06 20:33:39

+1

@CamilleSévigny:「你可以對自己以外的應用程序這樣做嗎?」 - 是的。 「是否需要實施某種安全功能才能確保只有我的應用可以訪問這些資源,而其他第三方應用才能訪問?」 - 所有應用程序的所有資源都可以被所有應用程序讀取,無論您喜不喜歡。 – CommonsWare 2012-01-06 20:34:22

+0

「無論你喜不喜歡,所有應用程序的所有資源都可以被所有應用程序讀取。」......沒有開玩笑。我不知道。感謝您的迴應。 – 2012-01-06 20:47:10

0

我相信這種情況下最乾淨的設計是在市場上有一個應用程序,並在您自己的服務器上提供主題。然後用戶可以從Market下載應用程序一次,然後應用服務器上可用的主題。但是,如果您希望將它們作爲單獨的市場條目,則可以在清單上設置android:sharedUserId標誌,使其全部在相同的用戶標識下運行,這將允許您共享文件(位圖,等等)之間。請記住,他們都必須使用相同的證書進行簽名。

什麼可能會產生混淆用戶,他們將能夠下載主應用程序之前下載的附加...在這種情況下,你必須顯示錯誤消息,要求他們下載應用程序爲主。

+0

我同意「在您自己的服務器上有可用的主題」方法 - 我假設OP由於某種原因考慮並駁回了這一問題。然而,'sharedUserId'是有風險的,因爲它的任何變化都意味着你的應用程序不能再讀取它自己的文件。 – CommonsWare 2012-01-06 19:08:03

+0

'sharedUserId'是否也適用於製作「完整」版本的應用程序,該應用程序僅充當主應用程序的關鍵字,以啓用功能? – Izkata 2012-01-06 19:27:01

+0

沒有「服務器」大聲笑。我同意從外部源下載會很好,但這不是一個選項。我試圖模擬市場上的其他應用程序,你會看到「主題XXX爲應用程序YYY」。這些不是完整的應用程序,但它們的附加組件。 – 2012-01-06 20:23:55

相關問題