在工作开发过程中,发现了一个问题:
Context中的getPackageName()方法,也就是我们常说的包名,其实获取的并不是包名。
做个实验:
新建一个项目,填好包名,创建完成后会发现:
包名、Manifest、appId的名称都是一样的
在Activity中获取包名:
public class PackgeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_packge);
findViewById(R.id.button3).setOnClickListener(v -> {
Log.i("TAG", "包名: " + getPackageName());
});
}
}
获取得也没什么问题
然后在gradle中修改一下appId:
运行后发现:
在 包名、Manifest 没有改动的情况下,修改了appId后,getPackageName()方法返回的值也修改了
所以,获取包名其实并不是真的获取包名,而是applicationId