包名和签名

今天用到下面这一句,

context.getPackageManager().getPackageInfo(packname,PackageManager.GET_ACTIVITIES);

通过包名得到对应程序注册的activity信息,

但有些疑问,通过包名可以唯一的定位到应用吗?

答案是可以的。

原来android里包名是唯一的,安装程序时候,会先检查你的包名,如果有相同的,就会检查签名,签名相同,就可以知道这个是相同的程序,可以安装覆盖,如果包名相同,但签名不同,会提示安装不成功;所以安装的程序里,包名是唯一的,通过包名就可以定位到相应的程序了。上面的方法可用。