Android Studio打包全攻略----Gradle-Build Variants構建定製版App
上一篇文章 Android Studio打包全攻略—從入門到精通限於篇幅Build Variants的作用分析得還不夠,這篇文章主要探討如何構建特別定製版App。
你肯定看到過這樣的App,類似於:打豆豆小米特別定製版、XXX魅族首發版。
這些App絕大部分介面樣式、功能實現和普通版本都差不多,不過只是多了一些墜飾,比如
- 修改了App名稱,打豆豆變成了打豆豆小米定製版
- 修改了App的圖示,加上了渠道商或者廠商的一些標識到啟動圖示上
- 修改啟動頁面
- 免廣告
本文就主要圍繞著這幾個問題,就如何優雅的生成定製App來討論
為什麼要通過Build Variants構建
為什麼要使用這種方式來打包?
要是換做以前,拿到一個這種需求,我很可能的反應是去穩定版本上checkout
這樣當然可以解決當前問題。但是這樣做有幾個弊端
-
程式碼維護麻煩
checkout
出來一份程式碼,相當於以後需要維護兩個App,兩份程式碼。兩個版本咱們可能還不覺得有啥,但是這才一個版本定製,要是以後我們的打豆豆App,不止是要定製小米還要定製360、定製魅族、定製三星。還要區分使用者群體,推出有廣告版本,無廣告版本。推出穩定版和功能升級的Pro版本—超級打豆豆。如果每個版本都拿一個分支來做,需要維護多少個分支?要是版本升級一次,是不是每個分支都要升級?哪得需要多大的工作量。 -
測試負擔加重
同樣,並不是基於一套程式碼實現的App,測試的時候不可避免的產生很多重複測試。 - 配合產品運營效率低下
因為,這種方式造成開發緩慢、維護麻煩、測試費時造成產品跟不上節拍,效率低下。
正題—怎麼建立
生成定製版App名稱
- 首先,如果換作從前,不考慮Gradle我們修改App名稱是怎麼做的?
找到AndroidManifest.xml
檔案,application
標籤裡面的android:label
標籤儲存的是App名稱
看到是通過@string/app_name
也就是values資料夾下面的strings.xml
檔案裡面修改
看到這裡,結合上一篇學到的知識,我們大概已經知道該怎麼做了。
a.productFlavors
裡面新建一個渠道號xiaomi {}
b.然後在src目錄、也就是main目錄的同級目錄裡面新建一個叫xiaomi
到這裡App名稱就改好了
生成定製版圖示
有了修改App名稱的經驗,修改圖示也就輕車熟路了,只是儲存圖示的資料夾,會有hdpi、xhdpi、xxhdpi
等等好幾個目錄,需要一起拷貝過去,然後分別替換裡面的圖示為我們的圖示
修改啟動頁
和修改圖示一樣
這個圖片有點抽象 不要多想,畢竟是藝術
生成廣告版和免廣告版
使用:
大功告成,我們來試試效果,為了讓我們的定製App和原來的App同時安裝上手機,我們修改applicationId
xiaomi { applicationId 'com.xiaomi.makeapp' }
- 1
- 1
對比著原版,看看效果
productFlavors(渠道),buildTypes(Debug&Release),原版優先順序
現在我們已經清楚了,如productFlavors(渠道)裡面的檔案會覆蓋原來App的檔案。
如果我現在新建一個叫debug的資料夾,對應
buildTypes {
debug {
minifyEnabled false
debuggable true
}
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
,如果對Debug裡面也新增一些啟動圖示、App名稱啥的看看會是什麼效果
,還是執行Build Variant的xiaomiDebug
變成了Debug裡面的設定的資訊
根據
productFlavors > main(預設)
buildTypes > productFlavors
- 1
- 2
- 1
- 2
我們可以得出規律,為了方便閱讀就表達為優先順序是:
Release&Debug > 渠道版本定製 > 預設設定
- 1
- 1
也就是說,高的會覆蓋低的設定
AB Test
什麼是AB Test
有這樣的場景:產品經理遇到困惑,對於一個頁面有兩個方案方案A和方案B,都覺得不錯,不知道應該選哪一個。
解決辦法:方案A和方案B都放到線上,統計使用者再每個方案的駐留時長,有效點選,訂單轉換等等有效資料,然後來計算兩個方案的效率,最後取效率高的。
當然,也可以不使用Build Variants
,把兩個方案都寫到一個頁面,然後訪問伺服器,伺服器返指定採用那個方案的方式來實現。
相關推薦
Android Studio打包全攻略----Gradle-Build Variants構建定製版App
上一篇文章 Android Studio打包全攻略—從入門到精通限於篇幅Build Variants的作用分析得還不夠,這篇文章主要探討如何構建特別定製版App。 你肯定看到過這樣的App,類似於:打豆豆小米特別定製版、XXX魅族首發版。 這些App絕大部分介面樣式、功能實現和普通版本都差不多,不過只是
AndroidStudio打包全攻略---Gradle-Build Variants構建定製版App
上一篇文章 Android Studio打包全攻略—從入門到精通限於篇幅Build Variants的作用分析得還不夠,這篇文章主要探討如何構建特別定製版App。 你肯定看到過這樣的App,類似於:打豆豆小米特別定製版、XXX魅族首發版。 這些App絕大部分
【轉】Android Studio打包全攻略---從入門到精通
UC store 類型 安裝文件 public alt url tool 描述 原文地址:http://blog.csdn.net/zivensonice/article/details/51672846 初出茅廬 手動打包 怎麽手動打包 項目寫完了,現在需要把應用上傳
Android Studio打包全攻略---從入門到精通
初出茅廬 手動打包 怎麼手動打包 專案寫完了,現在需要把應用上傳到市場,問題出現—怎麼把程式碼變成.apk(Android的可安裝檔案)。 1. 建立簽名檔案 2. 填寫好籤名引數 3. 生成APK 注意:簽名的密碼和密匙的密
android studio 不能生成apk:Gradle build finished with 1 error(s) in 5 sec Unexpected error Local path do
大概原因是sdk版本過高無法自動生成apk(ps:無法生成還弄那麼高版本也是醉了); 解決辦法是:先將android studio 關閉,找一個低版本的sdk,將sdk中的tools檔案複製; 將android stu
VirtualBox + Android-x86 配置全攻略
為什麼要執行Android-x86呢,因為Google提供的Android模擬器實在是太卡了,想必用過它的都深有體會,而虛擬機器下的Android-x86執行起來飛快,就如同真機操作一樣。下面介紹一下Windows下VirtualBox + Android-x86配置的一
Android Studio依賴包aar使用全攻略!
如有不妥的地方歡迎Gradle大神批評指正。 今天包含以下幾點: - aar 檔案簡介 - 生成方法 - 向工程中新增依賴的方法(即讓Android Studio認出aar的方法) - 呼叫方法 aar 檔案簡介 首先,講講aar: 相信
基於Android Studio的記憶體洩漏檢測與解決全攻略
自從Google在2013年釋出了Android Studio後,Android Studio憑藉著自己良好的記憶體優化,酷炫的UI主題,強大的自動補全提示以及Gradle的編譯支援正逐步取代Eclipse,成為主流的Android開發IDE。Android Studio在
android屏幕適配的全攻略
屏幕分辨率 縮放 img 關系 我們 http 分辨 tro pix 一. 核心概念與單位詳解 1. 什麽是屏幕尺寸、屏幕分辨率、屏幕像素密度? 屏幕分辨率越大,手機越清晰 2. 什麽是dp、dip、dpi、sp、px?之間的關系是什麽? dip:Density
Android Studio打包以及Gradle配置構建
otto sign rac color conf wmf git var png 本文轉載 郭霖公眾號 https://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650241610&idx=1&sn
Android-螢幕適配全攻略(絕對詳細)(二)
Android-螢幕適配全攻略(絕對詳細)(二) 關鍵字:非密度制約畫素(dp、sp) 螢幕適配最佳實踐 前言:這篇文章接著 上一篇 繼續講,上篇講到了螢幕適配的核心概念與單位和一種解決方案:解決方案-支援各種螢幕尺寸。本篇繼續講剩餘的其他兩種解
Android-螢幕適配全攻略(絕對詳細)
(一) 關鍵字:螢幕適配 px dp dpi sp large限定符 .9.png 2012年到2014年支援Android裝置的種類從3997增長到18796。同時各大廠商定製的螢幕尺寸也非常多。這將非常
VSCode外掛開發全攻略(十)打包、釋出、升級
釋出方式 外掛開發完了,如何釋出出去分享給他人呢?主要有3種方法: 方法一:直接把資料夾發給別人,讓別人找到vscode的外掛存放目錄並放進去,然後重啟vscode,一般不推薦; 方法二:打包成vsix外掛,然後傳送給別人安裝,如果你的外掛涉及機密不方便釋出到應用市場,可以嘗試採用這種方式; 方法三:註冊
Gradle指令碼基礎全攻略
1 背景 在開始Gradle之前請務必保證自己已經初步瞭解了Groovy指令碼,特別是閉包規則,如果還不瞭解Groovy則可以先看《Groovy指令碼基礎全攻略》這一篇部落格速成一下Groovy基礎,然後再看此文即可。關於Gradle速成乾貨基礎詳情也
安卓開發經驗——Android Studio的project中兩個build.gradle配置的區別
一般建立一個android專案後回出現兩個gradle: build.gradle(Project):用來配置整個工程的 build.gradle(app):一個是用來配置app的 對compile和classpath區別的解釋: I’m g
Android螢幕適配全攻略(最權威的官方適配指導)
Android的螢幕適配一直以來都在折磨著我們這些開發者,本篇文章以Google的官方文件為基礎,全面而深入的講解了Android螢幕適配的原因、重要概念、解決方案及最佳實踐,我相信如果你能認真的學習本文,對於Android的螢幕適配,你將有所收穫! Android螢幕適配出現的原因
jenkins+Xcode+蒲公英實現ipa自動打包釋出全攻略
一.環境說明 搭建機器:一臺Mac Book Pro 開發工具:XCode V7.3.1 開發環境:OS X EI Capitan 版本 10.11.5 jenkins版:V1.647 (特別注意:我用的是V1.647,如果使用其他版本可能導致一些未知的BUG) 比如我之前用了最新的2.10版本,就導致了一
Android Studio 使用技巧:修改預設build.gradle
在專案中發現一些好用的外掛和庫,就想預設在每個工程裡使用,就想到了找找如何直接修改預設工程的build.gradle檔案,經過多方面查詢資料,可以使用下面的方法來改。 比如說有一個好用的butterKnife這個庫,需要新增buildscript的dependencie
Android螢幕適配全攻略2-我想跟美工談談
[TOC] 前言 俗話說完事開頭難 對一個Android開發而言,專案正式開發的第一步就是拿到圖(高清圖和具體切圖)。第一步至關重要,UI圖做得好、標準高,後面的開發更傾向於按照高的標準去要求自己,開了個好頭。UI本身就做得很爛,很多不合理的設計互動,
Android Studio打包問題:gradle打包Android程式,如何打包時不包含依賴包
在一個Android專案的build.gradle中,dependencies閉包中有以下幾種形式的宣告: compile 'com.android.support:appcompat-v7:22.2.1' 編譯的內容為單個檔案 compile f