一、概述
首先我們來看一張圖

包名簽名應(yīng)用ID區(qū)別1.jpeg
包名:如com.sun.gradledemo就是代碼存儲的位置、空間。java文件夾下放的是java代碼,res文件夾下放的是資源文件,包名就是分門別類的放置代碼的一個(gè)存儲空間。
應(yīng)用ID:applicationId是Android應(yīng)用的唯一標(biāo)識,Google Play和其他的應(yīng)用商店就是根據(jù)這個(gè)應(yīng)用ID來區(qū)分是不是一個(gè)新的應(yīng)用程序。
簽名:Android要求所有已安裝的應(yīng)用程序都使用數(shù)字證書做數(shù)字簽名,數(shù)字證書的私鑰由開發(fā)者持有,用戶就是通過這個(gè)簽名來進(jìn)行App的升級操作。
二、區(qū)別與作用
1.包名:可以隨便修改,不影響應(yīng)用程序的使用
2.應(yīng)用ID和簽名:
a.應(yīng)用ID相同,簽名相同:
是同一個(gè)應(yīng)用,可以進(jìn)行覆蓋安裝,可以進(jìn)行應(yīng)用的升級
b.應(yīng)用ID相同,簽名不同:
是同一個(gè)應(yīng)用,但是在安裝新簽名apk時(shí),會安裝失敗,只有刪除舊簽名的app,否則無法安裝。報(bào)錯(cuò)如圖:

包名簽名應(yīng)用ID區(qū)別2.jpeg
c.應(yīng)用ID不同,簽名相同:
是兩個(gè)不同的應(yīng)用,可同時(shí)安裝
d.應(yīng)用ID不同,簽名不同:
是兩個(gè)不同的應(yīng)用,可同時(shí)安裝(同c情況一樣)