使用gradle多渠道打包

以友盟的多渠道打包為例,如果我們須要打包出例如以下渠道:UMENG, WANDOUJIA, YINGYONGBAO。

第一種方法。是須要創建文件的。

我們在寫完我們的代碼之后,在app/src以下。分別創建和main同級目錄的目錄umeng, wandoujia, yingyongbao,這三個目錄里面都各僅僅有一個AndroidManifest.xml文件,文件僅僅須要例如以下:

[plain]?view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. <manifest?xmlns:android="http://schemas.android.com/apk/res/android"??
  2. ????package="your.package.name">??
  3. ????<application>??
  4. ??
  5. ??????????<meta-data?android:name="UMENG_CHANNEL"?android:value="UMENG"/>??
  6. ??
  7. ????</application>??
  8. </manifest>??
注意,上面的value的值要和你的渠道名所相應。比方wandoujia里面要相應為你豌豆莢上的渠道名(如WANDOUJAI)。

然后在你的build.gradle的android{}節點里面,加入productFlavors節點,代碼例如以下:

[plain]?view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. android?{??
  2. ????//?這里是你的其它配置??
  3. ??
  4. ????productFlavors{??
  5. ????????umeng{??}??
  6. ????????wandoujai?{??}??
  7. ????????yingyongbao{??}??
  8. ????}??
  9. ????//?你的其它配置??
  10. }??
注意這里的flavors的名字要和你的目錄的名字相應。這樣配置之后,構建的就是多渠道的APK了。


另外一種方法,不用創建那些文件,它使用的是Gradle Android插件里的還有一個功能,manifestPlaceholders。

在這樣的方法中。你僅僅須要在AndroidManifest.xml中。對友盟的渠道進行這樣配置:

[plain]?view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. <meta-data??
  2. ????android:name="UMENG_CHANNEL"??
  3. ????android:value="${CHANNEL_NAME}"?/>??

然后相同使用productFlavors。只是這時它的配置是這種:

[plain]?view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. android?{??
  2. ????//?你的其它配置代碼??
  3. ??
  4. ????productFlavors?{??
  5. ????????yingyongbao?{??
  6. ????????????manifestPlaceholders?=?[?CHANNEL_NAME:"YINGYONGBAO"]??
  7. ????????}??
  8. ????????umeng?{??
  9. ????????????manifestPlaceholders?=?[?CHANNEL_NAME:"UMENG"?]??
  10. ????????}??
  11. ????????wandoujia?{??
  12. ????????????manifestPlaceholders?=?[?CHANNEL_NAME:"WANDOUJIA"?]??
  13. ????????}??
  14. ??
  15. ????}??
  16. ????//?你的其它配置代碼??
  17. }??

在上面其中。我們也能夠指定一個默認的渠道名。假設須要的話。指定默認的值是在defaultConfig節點其中加入例如以下內容:

[plain]?view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. manifestPlaceholders?=?[?CHANNEL_NAME:"Unspecified"]??
這里的Unspecified換成你實際上的默認的渠道名。

使用manifestPlaceholders的這樣的配置,相同適用于manifest的其它配置。比方你須要在不同渠道公布的apk里面。指定不同的啟動Activity。比方在豌豆莢里面公布的。啟動的Activity顯示的是豌豆莢首發的界面,應用寶里面啟動的是應用寶首發的界面(哈哈,有點壞)。你就能夠對你的activity的值使用${activity_name}的方式,然后在productFlavors里面配置這個${activity_name}的值。

轉載于:https://www.cnblogs.com/jhcelue/p/7392329.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252051.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252051.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252051.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SMMS 2016 啟用深色主題

1、用文本類編輯器 打開C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio目錄下的 ssms.pkgundef 2、去除// Remove Dark theme行以下的注釋 3、重新打開SMMS&#xff0c;如果還沒有出現“深色”主題&#xff0c;請執行第4點 4、打開powershell【…

四大步驟,徹底關閉Win10自動更新

盡管Win11已經發布了一段時間&#xff0c;但目前互聯網上大部分電腦用戶所使用的的操作系統仍是Win10&#xff0c;對于Win10&#xff0c;筆者相信大部分人應該都不陌生&#xff0c;作為目前市面上占比最高的電腦系統&#xff0c;Win10的許多功能和操作邏輯都十分優秀&#xff0…

LeetCode算法題-Repeated String Match(Java實現)

這是悅樂書的第289次更新&#xff0c;第307篇原創 01 看題和準備 今天介紹的是LeetCode算法題中Easy級別的第156題&#xff08;順位題號是686&#xff09;。給定兩個字符串A和B&#xff0c;找到A必須重復的最小次數&#xff0c;使得B是它的子字符串。 如果沒有這樣的解決方案&a…

php

●轉載于:https://www.cnblogs.com/volcanorao/p/8678104.html

Vs快捷鍵設置(可搭配Vim使用)

設置方式: 通過在Vs菜單欄的工具->選項->環境->鍵盤。 常用快捷鍵: 推薦鍵位編輯.轉到定義Alt G切換標題代碼文件Alt Q查看.向前導航Alt D查看.向后導航Alt A調試.調用堆棧Alt 7調試.監視1Alt 8調試.內存1Alt 9查看.查找符號結果Alt 1查看.錯誤列表Alt …

虛擬機windows7安裝啟動MYSQL5.7

一.環境 環境&#xff1a;虛擬機VMVare 系統&#xff1a;windows7旗艦版 MYSQL版本&#xff1a;mysql5.7.25 二.具體步驟 1.首先下載安裝mysql5.7.25&#xff0c;這里用的是安裝版的mysql&#xff0c;網上大多數都是推薦去官網下載&#xff0c;這里推薦的是清華大學開源鏡像站…

故障轉移架構的本質:數據中心的基礎設施過剩

數據中心構成了全球互聯基礎設施的核心&#xff0c;我們稱之為“云”。從根本上講&#xff0c;云計算指的是基礎設施從桌面計算&#xff08;文件和應用程序存儲在計算機的本地硬盤上&#xff09;到在線計算&#xff08;文件和應用程序存儲在可通過互聯網遠程訪問的數據中心中&a…

CentOS啟動Tomcat巨慢

在本地開發環境&#xff0c;應用正常啟動。 在CentOS測試環境&#xff0c;應用啟動速度也是正常的。 但是在阿里云的生產環境&#xff0c;tomcat啟動超級慢&#xff0c;并且在最終打印出來以下內容&#xff1a; org.apache.catalina.util.SessionIdGenerator createSecureRando…

Oracle 存儲過程

什么是存儲過程&#xff1f;存儲過程是一種命名的PL/SQL程序塊&#xff0c;它是由一些T-SQL語句組成的代碼塊&#xff0c;這些T-SQL語句代碼像一個方法一樣實現一些功能&#xff08;對單表或多表的增刪改查&#xff09;&#xff0c;可以有參數、輸入輸出參數&#xff0c;通常沒…

查看Oracle 版本信息

select * from v$version;轉載于:https://www.cnblogs.com/hanje/p/10614555.html

ubuntu上安裝docker

在Ubuntu16.04上安裝Docker Docker是一個開源的容器引擎&#xff0c;它有助于更快地交付產品。Docker可將應用程序和基礎設施層隔離&#xff0c;并且將基礎設施當作程序一樣進行管理。使用Docker&#xff0c;可以更快地打包&#xff0c;測試以及部署應用程序&#xff0c;并可以…

字符串問題之 在有序但含有空的數組中查找字符串

盡可能使用二分查找 假設在 left right 之間查找 關鍵是mid處理過程 導致 left 跟 right 的改變 控制去哪里尋找 分如下情況&#xff1a; 若 mid處 不為空&#xff0c;并且 此處就是 str 那么記下 mid &#xff0c;同時把right-1 &#xff08;往左尋找&#xff09; 若…

Python_48re模塊的sub方法

sub是替換的功能 sub(模型&#xff0c;替換為的字符&#xff0c;目標原字符串&#xff0c;替換次數) import re yuanchuan1qaz2wsx3edc4rfv5tgb new_strre.sub(\d,INTNUM,yuanchuan,2) #若果沒有2表示默認替換所有的 print (new_str) #輸出結果為&#xff1a;INTNUMqazINTNUMw…

個人筆記-vuex

個人筆記-vuex 最近想要沉淀下自己的知識體系&#xff0c;以前光看不記&#xff0c;當時記得&#xff0c;過段時間記憶就模糊了&#xff0c;好腦子不如爛筆頭&#xff0c;古人誠不欺我&#xff0c;所以現在決定給用自己的語言方式來給自己記個筆記。 vuex vuex 有什么好講的呢&…

常用模塊之hashlib,configparser,logging模塊

常用模塊二 hashlib模塊 hashlib提供了常見的摘要算法&#xff0c;如md5和sha1等等。 那么什么是摘要算法呢?摘要算法又稱為哈希算法、散列算法。它通過一個函數&#xff0c;把任意長度的數據轉換為一個長度固定的數據串&#xff08;通常用16進制的字符串表示&#xff09;。 注…

iPhone屏幕各種尺寸分辨率(更新至XS)

iPhone屏幕各種尺寸分辨率&#xff08;更新至XS&#xff09; DeviceLogic PointLogic PixelSizeScaleiPhone 2G480 320480 3203.51xiPhone 3480 320480 3203.51xiPhone 3GS480 320480 3203.51xiPhone 4480 320960 6403.52xiPhone 4S480 320960 6403.52xiPhone 5568 …

浙江嘉興徒步游

最近參加了一個徒步團&#xff0c;趁著周末時光&#xff0c;來了一場徒步旅游&#xff0c;不一樣的體驗圖片發自簡書App一開始進山探秘外蒲島的路程&#xff0c;荒草叢生圖片發自簡書App樹木郁郁蔥蔥&#xff0c;藍天白云&#xff0c;一切都很沒好圖片發自簡書App漫山遍野都開滿…

ASP.NET Web API 2 過濾器

前言 我們知道 ASP.NET Web API 過濾器&#xff0c;也是屬于消息處理機制中的一部分。正因如此&#xff0c;我們經常使用它來完成對請求的授權驗證、參數驗證&#xff0c;以及請求的 Log 記錄&#xff0c;程序異常捕獲等。 1. 常用的四大過濾器 ASP.NET Web API 2 中的所有…

java的ThreadLocal類的使用方法

java的ThreadLocal類的使用方法&#xff0c;ThreadLocal是一個支持泛型的類&#xff0c;用在多線程中用于防止并發沖突問題。比如以下的一個樣例&#xff0c;就是用于線程添加1&#xff0c;可是相互不沖突 package com.test.threadlocal;import java.util.concurrent.ExecutorS…

為選擇合適的ERP供應商,是否該發布需求建議書(RFP)?

全球有成百上千家企業資源規劃 (ERP) 解決方案供應商。在開展挑選 ERP 供應商的項目時&#xff0c;不可能與所有這些供應商都進行接觸。不斷縮小這一領域供應商的范圍&#xff0c;直到最終敲定最適合的入圍名單&#xff08;通常被稱為“最終候選人名單”&#xff09;是項目成功…