在Intent类here的android源代码中,我注意到有两个私有字段,即private String mPackage
和private ComponentName mComponent
。但是,ComponentName
已有自己的字段private String mPackage
here。为什么我们在Intent类中有这种冗余?或者两个具有相同名称mPackage
的字段实际上是不同的?
答案 0 :(得分:0)
这两个包名在技术上是不同的。
在Eclipse或Android Studio中创建新的Android项目时,新的项目向导会让它像只有一个包名,但实际上,它会获取您提供的包名称并生成两个相同的包名称。它,一个应用程序的包名称和一个类的包。
换句话说,在新项目向导中输入包名com.example.myapplication
,结果类将位于/com/example/myapplication/com/example/myapplication/MainActivity.class
(知道这将使您更容易将其称为来自不同应用程序的明确意图)
当然,没有什么说你不能改变类包名,或添加新的类包名,同时保持原始应用程序包名称与原始包名称相同,那么,你可能最终得到一个位置比如这个:
/com/example/myapplication/com/newcompanyname/newconcept/MainActivity.class