2011-06-21 131 views
4

我們在AndroidManifest.xml中聲明的軟件包名稱是應用程序的唯一標識。爲避免命名衝突,我們通常在此軟件包名稱中使用域名,例如「com.google。*」。如果是這種情況,則無法避免其他人惡意使用我的域名在其包名中。假設我使用的是「com.google.myapp」,即使我沒有爲Google構建應用程序,也是完全有效的軟件包名稱。假設我的應用程序包名稱爲「com.mycompany.myapp」,我無法阻止其他人在該應用程序中使用相同的包名稱。Android清單軟件包名稱

這是我應該擔心的問題嗎?這似乎是Android的本質,無法阻止。

+0

我已經爲您的問題添加了'java'標記,因爲這不是特別的Android問題。它實際上是Java軟件包命名的方式。 – Squonk

回答

4

不,沒有辦法阻止其他人使用相同的軟件包名稱。

但是,軟件包名稱與用於對軟件包進行簽名的證書相結合:如果有人試圖在現有軟件包上安裝惡意命名的軟件包,則需要使用完全相同的證書。如果他們不使用完全相同的證書,則操作系統將拒絕安裝,惡意軟件包將無法訪問原始軟件包的數據。實際上,這涉及安全問題。

+0

我認爲這是我的擔心,比方說,我在清單中使用名稱「com.mycompany.myapp」,並將我的應用上傳到市場。如果已經有另一個具有相同名稱的應用,市場會否拒絕我的上傳?如果是這樣,我將被迫僅僅因爲其他人使用我的名字而改變我的包名。似乎沒有辦法阻止這一點。那麼,將「com.mycompany.myapp」更改爲「com.mycompany.mobile.myapp」並不是什麼大不了的事情,但讓其他人在我的域名中使用我的域名有點尷尬。 – Kelobyte

+0

非常真實:我從來沒有嘗試過,但我假設市場會拒絕你的應用程序,如果你試圖複製包的名稱。 – Femi