為什麼手機里不能下載兩個一樣的APP?


打個比方

每個人有身份證號,用來標識這個人是世界上唯一存在的一個人。

應用也有一個這樣的身份證,用來標識這個應用是手機系統里唯一存在的一個app

講道理的話,世界上是不會有兩個身份證一模一樣的人的,app在系統里也是這樣。

要怎樣才能在系統里有兩個同樣的app呢?

簡單,弄一個身份證給另一個app唄

Android上的應用雙開,都是這個思路


一個 Application 其實就是一系列程序和資源文件的打包。每個包都會有一個唯一的包名,比如其他答案舉例的 qq 包名,在 ios 平台,不同的包名會對應不同的開發者,開發者要使用自己的證書對應用進行簽名。沒有合法簽名的包是無法通過 appstore 分發的,android 平台有類似的方案,所以究其原因就是在你眼裡一樣的 app (相同操作系統,相同分發渠道的同一 app)擁有一樣的包名所以無法同時存在,一般的應用多開在不修改系統的前提下都是修改包名並使得系統校驗通過即可,比如 ios 上微信多開很多是使用企業開發證書修改了包名。那麼安裝包名一樣的 app 會覆蓋安裝原有 app,通常視為更新操作。


可以啊,為什麼不戶可以?

你想安裝幾個就幾個,只要他們的包名不一樣

應用名: QQ、微信、UC瀏覽器 這種叫應用名

包名:com.tencent.qq,com.tencent.wechat 這種叫包名

簽名:給應用簽名的文件,加密演算法算出來的md5值

只要你的包名不同,一樣的程序,你可以裝無數個


通常情況下一個app對應一個包名,比如QQ的包名com.tecent.mobileqq

這個就是樓上那個大哥說的,一個app對應的身份標識。

安裝apk的時候如果發現相同的包名,就當作是同一個應用,進行更新,所以不能安裝兩次。

還有就是怎麼安裝兩個app或者說是雙開。

雙開有一種實現就是反編譯修改包名再用自己的簽名重新打包,如果app本身做了簽名校驗的話這種雙開出來的應用可能會打不開或者是應用本身提示簽名不同不安全之類的。

還有一種就是提供一個虛擬化的環境,讓app運行在雙開app提供的虛擬環境中。

今天剛好在一個活動上看到了關於雙開的東西就順便答一發233333


這你不能問我

得問手機


我試過,不同版本可以下載可以同時存在


雙開功能你忘了嗎?幹嘛要兩個同樣的APP,同時登陸?無聊,



部分國產Android Rom早已實現

搜索:應用雙開


推薦閱讀:

TAG:生活 | 手機 | Android開發 | 科技 | 搞笑 |