老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

AndroidapplicationId和包名的區別有哪些

這篇文章主要介紹Android applicationId和包名的區別有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創新互聯建站是專業的天心網站建設公司,天心接單;提供成都網站設計、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行天心網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

應用ID與包名區別

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

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

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

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

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

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

圖中,包名是:com.example.myapplicationtest 應用ID:com.example.myapplicationtest.id

在MainActivity中調用如下代碼:

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

打印日志文件,如下:

  • 應用ID的命名并不是隨意的,它至少需要需遵循以下限制:

  • 應用ID至少包含兩部分(也就是說至少有一個點,如com.example);

  • 每部分必須以字母開頭;

  • 所有字符必須是字母數字或者下劃線[a-zA-Z0-9_]

注意:

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

應用ID用處

應用ID除了唯一標識了應用,那么它在開發過程中可以有哪些用處呢?

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

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

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

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

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

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

修改包名

默認情況下,包名與應用ID是相同的。當然,開發者也可以對包名進行修改.如果開發者想要修改包名的話,注意項目目錄結構必須與AndroidManifest.xml中package屬性的包名一致.

package值有兩個作用:

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

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

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

以上是“Android applicationId和包名的區別有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!


網站題目:AndroidapplicationId和包名的區別有哪些
文章起源:http://www.xueling.net.cn/article/iggijg.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 成人做爰高潮片免费看视频 | 绯色av蜜臀vs少妇 | 亚洲精品久久久久久久久久飞鱼 | 99精品国产在热久久无毒不卡 | 欧美大逼视频 | 午夜久久久精品一区二区三区 | 人人干人人模 | 青娱乐91免费视频 | 4399午夜理伦免费播放大全 | 2022天天操 | 国内外免费激情视频 | 国外国内精品国产成人国产三级 | 校花高潮抽搐冒白浆 | 高清视频一区二区 | 国产精品vip | 国产精品久久久久久久久污网站 | 亚洲国产精品高清在线观看 | 日本色偷偷 | 亚色中文 | 少妇bbb搡bbb搡bbb | 日日嗨av一区二区三区四区 | 日日夜夜狠狠干 | 黄色一级大片免费 | 久久二区视频 | 少妇一级淫片免费放正片 | 免费观看爱爱视频 | 亚洲欧美精品午睡沙发 | 日韩黄色网页 | 国产97色在线国产 | 全职猎人1999在线动漫免费观看 | 曰本在线| 91大片淫黄大片在线天堂 | 九九热免费精品 | 久久国产亚洲精品 | 国产高清中文手机在线观看 | 九色精品国产蝌蚪 | 披荆斩棘的哥哥第三季在线观看免费 | 中文字幕理伦午夜福利片 | 粉嫩一区二区三区国产精品 | 日一区二区三区 | blacked欧美黑粗硬大 |