国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android package屬性、package name和Application ID三者的聯系及區別

2019-12-12 04:11:56
字體:
來源:轉載
供稿:網友

Android package屬性、package name和Application ID三者的聯系及區別

  1. package屬性:在AndroidManifest.xml文件中。
  2. package name:應用程序的包名。
  3. Application ID:模塊defaultConfig塊下的applicationId屬性。

設置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

主站蜘蛛池模板: 阿克| 枞阳县| 吕梁市| 酒泉市| 岳普湖县| 重庆市| 凤山市| 雷山县| 凌海市| 广南县| 丰宁| 高邑县| 大悟县| 龙海市| 昌江| 濉溪县| 兴隆县| 灌南县| 同心县| 万盛区| 满城县| 德安县| 桃源县| 玉树县| 临泉县| 稷山县| 兴业县| 南皮县| 惠东县| 克拉玛依市| 邵阳县| 台北市| 罗山县| 革吉县| 上高县| 河曲县| 泗洪县| 荣成市| 定南县| 东山县| 彰武县|