日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Gradle manifestPlaceholders 占位符详解

發布時間:2025/3/15 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Gradle manifestPlaceholders 占位符详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android Gradle manifestPlaceholders 占位符詳解

在實際項目中,AndroidManifest里十幾個地方的值是需要動態的改變(生成apk文件的時候).如果每次去改也可以,但是累啊,在我之前他們打包是用手動替換,但我覺得這是是在沒辦法的辦法,但是有了manifestPlaceholders占位符后就簡單的多了,只需要改一個地方就行了.

1. 概括

下面介紹下manifestPlaceholders占位符的使用,其實很好理解,你可以認為它可以在 build.gradle文件中定義字符串并將值映射到 AndroidManifest清單文件的指定位置.

下面說下使用方法:

2. AndroidManifest 文件定義占位符

部分代碼如下:

<applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>// 這是在Activity 標簽下<meta-data android:name="nameActivity" android:value="${test_value_activity}"/></activity>// 這是在Activity 標簽下<meta-data android:name="nameApplication" android:value="headword${test_value}append_word"/></application>

總結如下:

${你定義名稱}

當然${}的前后面直接添加字符串.

例如:

android:value="${test_value_activity}"android:value="headword${test_value}append_word"

3. build.gradle 給占位符賦值

部分代碼如下:

defaultConfig {applicationId "com.didikee.wififriend"minSdkVersion 15targetSdkVersion 24versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"manifestPlaceholders = [test_value: "這是測試值",test_value_activity:"Activity 中的測試值"]}

總結如下:

manifestPlaceholders = [symbol1: "value1", symbol2:"value2"]

多個值時用,分隔開.

4. 在Java代碼獲取占位符的值

在獲取值的時候是區分占位符在 Activity標簽,Application標簽,service標簽,receiver標簽下,所以有兩種獲取方式:

在Activity標簽下:

ActivityInfo activityInfo = null;try {activityInfo = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}if (activityInfo == null)return;String value = activityInfo.metaData.getString("nameActivity");

在 Application標簽下:

ApplicationInfo applicationInfo = null;try {applicationInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}if (applicationInfo == null)return;String value = applicationInfo.metaData.getString("nameApplication");

同理,在service標簽,receiver標簽下分別為:

String value= MainActivity.this.getPackageManager().getServiceInfo(ComponentName,PackageManager.GET_META_DATA).metaData.getString("symbol");String value= MainActivity.this.getPackageManager().getReceiverInfo(ComponentName,PackageManager.GET_META_DATA).metaData.getString("symbol");

轉載于:https://www.cnblogs.com/didikee/p/6757072.html

總結

以上是生活随笔為你收集整理的Android Gradle manifestPlaceholders 占位符详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。