最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android applicationId和包名的區(qū)別總結(jié)

 更新時間:2019年06月14日 08:36:53   作者:Try Enough  
這篇文章主要給大家介紹了關(guān)于Android applicationId和包名的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

應(yīng)用ID與包名區(qū)別

每個Android應(yīng)用都有一個唯一的應(yīng)用ID.在Android設(shè)備和市場上,這個ID是你應(yīng)用的唯一標(biāo)識.若想在市場上更新應(yīng)用,新應(yīng)用的ID必須和原來apk的應(yīng)用ID一致.所以一旦發(fā)布了應(yīng)用,就不能再改變應(yīng)用ID.

在Eclipse中沒有applicationId這個概念,在Eclipse中applicationId即等同于包名。但是到了Android Studio中,這兩個概念做個區(qū)分。包名的定義在清單文件中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.example.myapplicationtest" >

應(yīng)用ID是在moudle層的build.gradle中定義,applicationId值即為應(yīng)用ID,如下所示:

android {
defaultConfig {
  applicationId "com.example.myapplicationtest"
  minSdkVersion 15
  targetSdkVersion 24
  versionCode 1
  versionName "1.0"
}
...
}

但是,在Android Studio中創(chuàng)建一個新項目時,applicationId默認(rèn)是和項目的包名一致的。所以常常有開發(fā)者會將兩者混淆,以為它們是一個概念。實際上,應(yīng)用ID和包名是相互獨立的。改變包名不會影響應(yīng)用ID,反之亦然。

通常Android的應(yīng)用ID與包名是綁定的,所以在Android API中,一些方法和參數(shù)從名稱上看似乎它們返回的是包名,事實上它們返回的是應(yīng)用ID值.例如,Context.getPackageName()方法返回的是應(yīng)用ID,而不是包名。不信我們來看:

圖中,包名是:com.example.myapplicationtest 應(yīng)用ID:com.example.myapplicationtest.id

在MainActivity中調(diào)用如下代碼:

String applicationId = this.getPackageName();Log.i("TESTKIM","applicationId:" + applicationId);

打印日志文件,如下:

  • 應(yīng)用ID的命名并不是隨意的,它至少需要需遵循以下限制:
  • 應(yīng)用ID至少包含兩部分(也就是說至少有一個點,如com.example);
  • 每部分必須以字母開頭;
  • 所有字符必須是字母數(shù)字或者下劃線[a-zA-Z0-9_]

注意:

如果你使用了webview,請使用包名作為應(yīng)用ID的前綴,否則,有可能會報錯.

應(yīng)用ID用處

應(yīng)用ID除了唯一標(biāo)識了應(yīng)用,那么它在開發(fā)過程中可以有哪些用處呢?

試想一下,當(dāng)我們開發(fā)應(yīng)用的時候,要在一臺測試機上同時裝上開發(fā)版和發(fā)布版,如何才能做到呢?其實很簡單,只要讓開發(fā)版的應(yīng)用ID與發(fā)布版不一致即可。所以,只需要在buildTypes中修改開發(fā)版的應(yīng)用ID就行。如下:

android {
...
buildTypes {
  debug {
    applicationIdSuffix ".debug"  //等同于“com.example.myapplicationtest.debug”
  }
}
}

上面代碼中,將debug版的應(yīng)用ID在原來應(yīng)用ID后追加“.debug”。applicationIdSuffix代表了默認(rèn)的應(yīng)用ID,即為defaultConfig中applicationId的值。所以,debug版的應(yīng)用ID為:”com.example.myapplicationtest.debug”.

另外,有時我們發(fā)布到市場的應(yīng)用希望有不同的版本,比如:免費版和收費版。這就需要我們來構(gòu)建不同的應(yīng)用變體。那么我們可以在productFlavors中進(jìn)行相應(yīng)的配置,來生成不同的應(yīng)用。如:

android {
defaultConfig {
  applicationId "com.example.myapplicationtest"
}
productFlavors {
  free {
    applicationIdSuffix ".free"
  }
  paid {
    applicationIdSuffix ".paid"
  }
}
}

在上面的代碼中,我們用”free”表示免費版,用”paid”表示付費版。在productFlavors中,通過配置不同應(yīng)用ID,最終生成不同的應(yīng)用。最終這兩種應(yīng)用apk可同時存在于市場中。

修改包名

默認(rèn)情況下,包名與應(yīng)用ID是相同的。當(dāng)然,開發(fā)者也可以對包名進(jìn)行修改.如果開發(fā)者想要修改包名的話,注意項目目錄結(jié)構(gòu)必須與AndroidManifest.xml中package屬性的包名一致.

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.example.myapplicationtest"  android:versionCode="1"  android:versionName="1.0" >

package值有兩個作用:

它為R.java文件提供了命名空間,例如R class的包名為com.example.myappcationtest.R

決定manifest中聲明的class的相對名稱。如:manifest中聲明的 的真實路徑為:com.example.myapplicationtest.ManiActivity

如果開發(fā)者想修改包名,必須確保manifest中package值也做了同步修改.

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Android中ScrollView實現(xiàn)滑動距離監(jiān)聽器的方法

    Android中ScrollView實現(xiàn)滑動距離監(jiān)聽器的方法

    ScrollView相信對每位Android開發(fā)者們來說都不陌生,所以這篇文章給大家主要介紹了Android中ScrollView實現(xiàn)滑動距離監(jiān)聽器的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • Android數(shù)據(jù)雙向綁定原理實現(xiàn)和應(yīng)用場景

    Android數(shù)據(jù)雙向綁定原理實現(xiàn)和應(yīng)用場景

    本文介紹了Android數(shù)據(jù)雙向綁定的原理和實現(xiàn)方式,包括基于觀察者模式和數(shù)據(jù)綁定框架的實現(xiàn)方法,以及應(yīng)用場景和優(yōu)缺點的分析,幫助開發(fā)者了解和應(yīng)用數(shù)據(jù)雙向綁定技術(shù),提升應(yīng)用的交互性和響應(yīng)速度
    2023-04-04
  • android實現(xiàn)icon動態(tài)旋轉(zhuǎn)效果

    android實現(xiàn)icon動態(tài)旋轉(zhuǎn)效果

    這篇文章主要為大家詳細(xì)介紹了android實現(xiàn)icon動態(tài)旋轉(zhuǎn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • DrawerLayout結(jié)合Tollbar實現(xiàn)菜單側(cè)滑效果

    DrawerLayout結(jié)合Tollbar實現(xiàn)菜單側(cè)滑效果

    這篇文章主要為大家詳細(xì)介紹了DrawerLayout結(jié)合Tollbar實現(xiàn)菜單側(cè)滑效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • android實現(xiàn)計步功能初探

    android實現(xiàn)計步功能初探

    這篇文章主要介紹了android實現(xiàn)計步功能初探,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Android字符串轉(zhuǎn)Ascii碼實例代碼

    Android字符串轉(zhuǎn)Ascii碼實例代碼

    這篇文章主要介紹了Android字符串轉(zhuǎn)Ascii碼的方法,大家參考使用
    2013-11-11
  • Android自定義View弧線進(jìn)度控件

    Android自定義View弧線進(jìn)度控件

    這篇文章主要為大家詳細(xì)介紹了Android自定義View弧線進(jìn)度控件,點擊開始按鈕時,逐漸的出現(xiàn)進(jìn)度,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android如何實現(xiàn)鎖屏狀態(tài)下彈窗

    Android如何實現(xiàn)鎖屏狀態(tài)下彈窗

    在鎖屏狀態(tài)下彈窗的效果我們平時并不少見,如QQ、微信和鬧鐘等,但是Android開發(fā)者要怎么實現(xiàn)這一功能呢?下面一起來看看。
    2016-08-08
  • Android自定義控件之水平圓點加載進(jìn)度條

    Android自定義控件之水平圓點加載進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件之水平圓點加載進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Android控件之Gallery用法實例分析

    Android控件之Gallery用法實例分析

    這篇文章主要介紹了Android控件之Gallery用法,以完整實例形式較為詳細(xì)的分析了Gallery控件實現(xiàn)圖像顯示的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09

最新評論

红安县| 奈曼旗| 察哈| 洮南市| 横峰县| 荥阳市| 礼泉县| 黑龙江省| 阿合奇县| 宁津县| 巫溪县| 寻乌县| 泸溪县| 赤水市| 班玛县| 阳山县| 道孚县| 麻江县| 闵行区| 杭锦旗| 昌宁县| 德阳市| 迁安市| 盐池县| 富顺县| 桃园县| 灌阳县| 延寿县| 宣城市| 镇安县| 贞丰县| 交口县| 宝兴县| 宝山区| 商城县| 黑山县| 会理县| 石首市| 耿马| 阿鲁科尔沁旗| 铜山县|