1
2
3
4
5
6
PackageManager packageManager = mContext.getPackageManager();
List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
List<String> packageNameList = new ArrayList<String>();
for (PackageInfo packageInfo : packageInfoList) {
packageNameList.add(packageInfo.packageName);
}
我们打印出来的包名信息中,会出现 com.spencer_dev.test.dev 。并没有出现 com.spencer_dev.test 。
但是! 如果通过反编译工具,将 APK 包进行反编译直接查看源代码,在 java 代码所在的 src 目录中的包名,还和我们设置的一样,为 com.spencer_dev.test 。可 AndroidManifest.xml 中的 package 和 BuildConfig 类中的 APPLICATION_ID 已经变成了 com.spencer_dev.test.dev 。
applicationId 和 packageName 它们各自代表什么?
按照上面的结果来说, package 代表了 java 代码中的包名。 applicationId 代表了应用中的唯一标识。和应用签名一起用来区别和其他应用不同。我想这也就是为什么 Google 市场能够允许相同应用不同 applicationId 的原因。
更多Android Studio相关内容可以看看以下的有用链接:
在Ubuntu 15.04下安装Android Studio
Ubuntu 12.04(64位)安装Android Studio 全过程
Android Studio设置主题 和 不支持中文的问题解决方法
Android Studio 下载安装以及不能打开的解决办法