改变包名和应用ID对最终APK有何不同?
我知道在保留源代码方面是不同的,但假设我有一个包名为a.b.c.d的应用程序。那么将包名更改为q.w.e.r并构建APK文件会有什么区别?
- 如果我将a.b.c.d重命名为q.w.e.r,然后构建APK文件
与
- 在gradle中将应用程序ID更改为q.w.e.r
改变包名和应用ID对最终APK有何不同?
我知道在保留源代码方面是不同的,但假设我有一个包名为a.b.c.d的应用程序。那么将包名更改为q.w.e.r并构建APK文件会有什么区别?
与
应用ID主要用于:
更改应用程序ID进行测试
更改应用程序ID以构建变体
在这种情况下,每个构建变体都应定义为单独的产品风格。对于产品风格(productFlavors {})块中的每个风格,您可以重新定义applicationId属性,或者使用applicationIdSuffix将一个段追加到默认应用程序ID中,如下所示:
每个Android应用程序都有一个唯一的应用程序ID,看起来像Java包名称,例如com.example.myapp。此ID在设备上和Google Play商店中唯一标识您的应用程序。如果您想上传应用程序的新版本,则应用程序ID(及其签名它的证书)必须与原始APK相同 - 如果更改应用程序ID,则Google Play商店会将APK视为完全不同的应用程序。因此,一旦发布应用程序,就不应更改应用程序ID。
而包名是:
尽管您的项目包名称默认与应用程序ID匹配,但您可以更改它。但是,如果要更改软件包名称,请注意,软件包名称(由项目目录结构定义)应始终与AndroidManifest.xml文件中的软件包属性匹配,如下所示:
Android构建工具将软件包属性用于两个方面:
1- 将该名称应用为应用程序生成的R.java类的命名空间。
例如:使用上面的清单,R类将是com.example.myapp.R。
2- 它用于解析在清单文件中声明的任何相对类名。
例如:使用以上清单,声明为<activity android:name=".MainActivity">的Activity将解析为com.example.myapp.MainActivity。
查看更多内容请参阅来源
一旦您在Play商店上上传应用程序,就无法更改该项目的应用程序ID,如果您想要更改,则Google Play商店将视为不同的应用程序。
在包名称的情况下,您可以根据需要进行更改。