多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > 綜合技術(shù) > Android官方技術(shù)文檔翻譯――ApplicationId 與 PackageName

Android官方技術(shù)文檔翻譯――ApplicationId 與 PackageName

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-12-07 10:08:31 閱讀次數(shù):6726次

本文譯自androd官方技術(shù)文檔《ApplicationId versus PackageName》,原文地址:http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename。

本文地址:http://blog.csdn.net/maosidiaoxian/article/details/41719357。轉(zhuǎn)載請(qǐng)注明出處。翻譯如有錯(cuò)訛,敬請(qǐng)指正。


ApplicationId 與 PackageName

所有的 Android 利用程序都有1個(gè)包名。包名是裝備上的這個(gè)利用程序的唯1標(biāo)識(shí),也是在谷歌Play商店上的唯1標(biāo)識(shí)。這意味著,1旦你已發(fā)布的程序使用了這個(gè)包名, 你就永久都沒(méi)法改變它;否則會(huì)致使你的利用程序被當(dāng)作是1個(gè)全新的利用程序,你之前的利用程序的用戶將不會(huì)看到作為更新的安裝包。

在此前Android Gradle 構(gòu)建系統(tǒng)中,您的利用程序的包名由你的manifest文件的根元素里的package屬性決定:

AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.my.app"
    android:versionCode="1"
    android:versionName="1.0" >

但是,這里所定義的包也有第2個(gè)目的:它被用來(lái)命名你的資源類的包(和解析任何相干的Activity的類名)。在上面的示例中,生成的 R 類將會(huì)是com.example.my.app.R,因此如果您其他包里面的代碼需要援用這些資源,就需要導(dǎo)入com.example.my.app.R

使用新的 Android Gradle 構(gòu)建系統(tǒng),你可以輕松構(gòu)建多個(gè)不同版本的利用程序;例如,您可以構(gòu)建1個(gè)“free”版本和“pro”版本的利用程序 (通過(guò)使用flavors),并且這些不同版本的程序在 Google Play 商店上應(yīng)當(dāng)有不同的包,這樣他們可以被單獨(dú)安裝和購(gòu)買,或是同時(shí)安裝兩個(gè),等等。一樣,您還可以同時(shí)創(chuàng)建“debug”、“alpha”和“beta”版本的利用程序 (使用build types),而這些版本的程序一樣可使用唯1的包名。

同時(shí),您要在代碼中導(dǎo)入的 R 類必須在這段時(shí)間內(nèi)保持不變 ;在您正在構(gòu)建您的利用程序的不同版本時(shí)您的.java 源文件不應(yīng)當(dāng)被更改。

因此,我們解耦了包名稱的兩種用法:
  • 終究的方案是,在您生成的.apk 的manifest 中,并且用于在你的裝備和 Google Play 商店來(lái)標(biāo)識(shí)你的利用的包,叫做“application id”。
  • 用于在源代碼中來(lái)援用您的R類的,并且是解析任何相干的Activity/Service 注冊(cè)的包,繼續(xù)被稱為“package”。
你可以在你 gradle 文件中,指定application id,以下所示:

app/build.gradle:
apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1"

    defaultConfig {
        applicationId "com.example.my.app"
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    ...

像之前1樣,你需要在 Manifest 文件中指定用于代碼的包,就如上面的Andr??oidManifest.xml示例1樣。

這里說(shuō)到了最關(guān)鍵的部份:當(dāng)你像上面那樣做時(shí),這兩個(gè)包是相互獨(dú)立的。你能夠完全自由地重構(gòu)您的代碼――更改用于Activity和Service的內(nèi)部包,更新你的Manifest里的包,和重構(gòu)您的導(dǎo)入語(yǔ)句。這都不會(huì)影響到你的程序的終究id,這個(gè)終究的id總是為你的Gradle文件中指定的applicationId的值。

你可以通過(guò)使用以下的 Gradle DSL 方法,為不同的flavors和構(gòu)建類型改變您的利用程序的 applicationId:

app/build.gradle:
    productFlavors {
        pro {
            applicationId = "com.example.my.pkg.pro"
        }
        free {
            applicationId = "com.example.my.pkg.free"
        }
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
    ....

(在 Android Studio 中,您也能夠在項(xiàng)目結(jié)構(gòu)對(duì)話框中圖形化地進(jìn)行這些配置。)

注意: 出于兼容性緣由,如果您沒(méi)有在您的 build.gradle 文件中定義 applicationId,這個(gè)applicationId 將默許為 AndroidManifest.xml 中所指定的相同的值。在這類情況下,這兩個(gè)明顯未解耦,并且如果你試圖重構(gòu)您的代碼也將會(huì)心外地更改您的利用程序的 id !在 Android Studio 中,新建的項(xiàng)目始終會(huì)指定這兩個(gè)值。

注 2: 包名稱必須始終在默許 AndroidManifest.xml 文件中指定。如果您有多個(gè)manifest (例如1個(gè) flavor 的特定的manifest或1個(gè) buildType 的特定的manifest),該包名是可選的,但如果它被指定了,它必須和主manifest中指定的包完全相同。


生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 精品一区亚洲 | 亚洲国产欧美日韩精品一区二区三区 | 久久精品国产欧美 | 中文字幕色视频 | 国产一区二区三区不卡在线观看 | 欧美一区二区在线观看免费网站 | www视频在线观看com | 久操美女 | xx性欧美| 亚洲tv成人天堂在线播放 | 性短视频在线观看免费不卡流畅 | 久久精品国产99久久无毒不卡 | 亚洲视频你懂的 | 精品一区二区三区18 | 宇都宫紫苑番号 | www视频网站 | 亚洲一区二区三区四区在线观看 | 最近最新的中文字幕大全3 最近最新高清免费中文字幕 | 午夜毛片在线观看 | 中日韩欧美在线观看 | 亚洲伊人成综合成人网 | 日韩欧美亚洲一区二区综合 | 最新免费黄色网址 | 亚洲欧洲日本天天堂在线观看 | 国产一区二区三区免费看 | 女男羞羞视频网站免费 | 最近高清中文字幕大全免费1 | 亚洲国产系列 | 欧美精品v国产精品v日韩精品 | 久久天天躁狠狠躁夜夜不卡 | 激情视频网 | wwwxxx日本护士 | 国产免费人人看大香伊 | 边摸边吃奶边做娇喘视频 | 久久天天躁狠狠躁夜夜中文字幕 | 最近最新中文字幕在线手机版 | 欧美人与动性视频在线观 | 国产精品久久久久久久久久一区 | 大量喷潮free | 亚洲国产成人在线视频 | 欧美人与禽xoxo牲伦交 |