Android package屬性、package name和Application ID三者的聯系及區別
設置Application ID
每個Android應用程序都有唯一一個類似Java包名的Application ID,比如com.example.myapp。在Android設備和Google應用商店上,Application ID是您應用的唯一標識。如果您想上傳應用程序的新版本,那么Application ID必須和原來相同。如果您改變了新版本應用程序的Application ID,那么Goolge應用商店會認為這是個完全不同的應用程序。所以,從您第一次上傳應用程序開始,絕對不要更改Application ID。
Application ID定義在模塊build.gradle的applicationId屬性中,如下所示:
android { defaultConfig { applicationId "com.example.myapp" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" } ...}當您在Android Studio中創建新項目的時候,您可以設置applicationId屬性,這時,Application ID和package name是精確匹配的。除此之外,兩者是完全獨立的。當然,您可以更改package name,但是這不會影響到Application ID。反之亦然(再次提醒:在您上傳應用程序之后,不要修改Application ID,不要修改Application ID,不要修改Application ID)。然而,您應該意識到,修改package name 還有另一個后果。這部分詳見修改包名(下文有講)。
盡管Application ID看起來和傳統的Java包名很類似,但是Application ID的命名規則有更多的限制:
注意:在以前,Application ID 直接綁定package name。所以,有些Android APIs在方法名或者參數名中使用“package name”,但是實際上指的是Application ID。舉個栗子, Context.getPackageName()方法返回Application ID。所以沒必要在您應用程序代碼之外分享真正的package name。
警告:如果你使用WebView,考慮使用您的package name作為您Application ID的前綴,否則,您可能遇見
issue 211768。
修改構建版本的Application ID
當為您的應用程序構建APK時,構建工具使用build.gradle文件中的defaultConfig塊中定義的Application ID標識APK(如下所示)。但是,如果你想創建不同版本的應用程序并且在Google應用商店中顯示不同的信息,例如“免費版”和“專業版”。您需要構建擁有不相同Application ID的不同版本。
在這種情況下,每個構建版本應該定義不同的product flavor,且每個flavor都在productFlavors{}塊內部。對于每個flavor,您可以重新定義applicationId屬性,或者給默認的applicationId 主站蜘蛛池模板: 阿克| 枞阳县| 吕梁市| 酒泉市| 岳普湖县| 重庆市| 凤山市| 雷山县| 凌海市| 广南县| 丰宁| 高邑县| 大悟县| 龙海市| 昌江| 濉溪县| 兴隆县| 灌南县| 同心县| 万盛区| 满城县| 德安县| 桃源县| 玉树县| 临泉县| 稷山县| 兴业县| 南皮县| 惠东县| 克拉玛依市| 邵阳县| 台北市| 罗山县| 革吉县| 上高县| 河曲县| 泗洪县| 荣成市| 定南县| 东山县| 彰武县|