Assets apk打包腳本

美小易打包腳本

點(diǎn)擊android studio Run按鈕后發(fā)生了什么? 知乎答案

  1. 檢查項(xiàng)目和讀取基本配置(這一步主要在IDE的代碼中JetBrains/android)
  2. Gradle Build(主要用的com.android.build.gradle中的邏輯)
  3. Apk Install & LaunchActivity(主要用的adb)

主要理解一下build tool執(zhí)行的過(guò)程 以下分析基于com.android.tools.build:gradle:3.3.0

  • 可以這樣調(diào)式 新建一個(gè)目錄buildSrc下新建一個(gè)build.gradle文件

    //用于查看打包腳本
    apply plugin: 'java'
    apply plugin: 'groovy'
    repositories {
        google()
        jcenter()
       mavenLocal()
    
    }
    
    dependencies {
         compile gradleApi()
        compile localGroovy()
        compile 'com.android.tools.build:gradle:3.3.0'
    }
    

    執(zhí)行assemble 找到TaskManager chooseSource 找到相關(guān)sources.jar

    https://mvnrepository.com/artifact/com.android.tools.build/gradle/3.3.0

    https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.3.0/gradle-3.3.0-source.jar

    設(shè)置remote 呈础,com.android.build.gradle.BasePlugin上的apply方法中打上斷點(diǎn)机隙。
    執(zhí)行task命令后加上 -Dorg.gradle.debug=true --no-daemon 點(diǎn)擊調(diào)式的按鈕.

  • Task的依賴關(guān)系可以查看ApplicationTaskManager中的createTasksForVariantScope方法


參考文章


美小易打包流程

  1. 客戶端,業(yè)務(wù)中心切換到相應(yīng)分支
  2. 配置業(yè)務(wù)中心shell.properties文件中客戶端項(xiàng)目地址
  3. 業(yè)務(wù)中心打包逝钥,將apk拷貝到客戶端的assets目錄臊旭。
  4. 打包客戶端分支。

以上流程修改完業(yè)務(wù)中心代碼都要操作一遍感覺(jué)比較復(fù)雜撒顿。所以寫一個(gè)腳本優(yōu)化他。最好點(diǎn)擊運(yùn)行按鈕直接就能看到最后的效果荚板。這邊主要是一個(gè)尋找何時(shí)打包業(yè)務(wù)中心的點(diǎn)凤壁。通過(guò)查看ApplicationTaskManager createAnchorTasks中task配置邏輯找到在打包assets之前會(huì)執(zhí)行g(shù)enerate {flavor}{buidType}Assets的一個(gè)Anchor Task 所以讓這個(gè)task依賴我們的task就好。這樣就完成了完業(yè)務(wù)中心后客戶端打包跪另。

修改build.gradle

static def buildServer(){
    //是否重新打業(yè)務(wù)中心開(kāi)關(guān)
    return false
}
//業(yè)務(wù)中心項(xiàng)目地址 配置在local.properties中 這樣就不用每次修改小伙伴提交的拧抖。
static def getServerDir(){
    if(!buildServer()){
        return null
    }
    Properties properties= new Properties()
    File file = new File('./airClient/local.properties')
    if(!file.exists()){
        return null
    }
    properties.load(file.newDataInputStream())
    return properties.getProperty('serverDir')
}


//去執(zhí)行serverBuild.sh  
task serverBuild(type: Exec){
    doFirst {
        println "start server build"
    }
    def gitBranchName = ['sh', '-c', 'git symbolic-ref --short -q HEAD'].execute().text.trim()
    workingDir "$projectDir"
    //serverDir 找到業(yè)務(wù)中心目錄   gitBranchName 將業(yè)務(wù)中心代碼分至與當(dāng)前一致  projectDir區(qū)分美易點(diǎn)美小易
    commandLine 'sh', '-c', "./serverBuild.sh  $serverDir $gitBranchName $projectDir"
}



 applicationVariants.all { variant ->
        variant.outputs.all {
            //用于本地直接運(yùn)行debug業(yè)務(wù)中心代碼 在generateProDebugAssets前添加 業(yè)務(wù)中心打包添加到asset目錄
            //serverDir!=null 確保jenkins 不會(huì)執(zhí)行到這
            if (serverDir!=null&&variant.buildType.name == ("debug")) {
                tasks.findByPath(":airClient:generateXiaosanDebugAssets").dependsOn tasks.findByPath(":airClient:serverBuild")
            }
        }
    }


#進(jìn)入業(yè)務(wù)中心目錄
cd "$1"
#業(yè)務(wù)中心切換到客戶端相同目錄
git checkout "$2"
#業(yè)務(wù)中心子module切換
git submodule foreach git checkout "$2"
#把客戶端目錄寫到業(yè)務(wù)中心shell.properties下
echo path="$3" > ./serverShell/shell.properties
#業(yè)務(wù)中心打包 打完包后老流程 會(huì)將apk拷貝到我么寫入/serverShell/shell.properties中的路徑。
./gradlew  :serverShell:assembleDebug

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末免绿,一起剝皮案震驚了整個(gè)濱河市唧席,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖淌哟,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迹卢,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡徒仓,警方通過(guò)查閱死者的電腦和手機(jī)腐碱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)掉弛,“玉大人症见,你說(shuō)我怎么就攤上這事⊙甓觯” “怎么了谋作?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)乎芳。 經(jīng)常有香客問(wèn)我遵蚜,道長(zhǎng),這世上最難降的妖魔是什么秒咐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任谬晕,我火速辦了婚禮,結(jié)果婚禮上携取,老公的妹妹穿的比我還像新娘攒钳。我一直安慰自己,他們只是感情好雷滋,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布不撑。 她就那樣靜靜地躺著,像睡著了一般晤斩。 火紅的嫁衣襯著肌膚如雪焕檬。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天澳泵,我揣著相機(jī)與錄音实愚,去河邊找鬼。 笑死兔辅,一個(gè)胖子當(dāng)著我的面吹牛腊敲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播维苔,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼碰辅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了介时?” 一聲冷哼從身側(cè)響起没宾,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凌彬,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后循衰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體铲敛,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年羹蚣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了原探。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乱凿。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顽素,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出徒蟆,到底是詐尸還是另有隱情胁出,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布段审,位于F島的核電站全蝶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏寺枉。R本人自食惡果不足惜抑淫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姥闪。 院中可真熱鬧始苇,春花似錦、人聲如沸筐喳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)避归。三九已至荣月,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間梳毙,已是汗流浹背哺窄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留账锹,地道東北人萌业。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像牌废,于是被迫代替她去往敵國(guó)和親咽白。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 版權(quán)聲明:本文為博主原創(chuàng)文章鸟缕,未經(jīng)博主允許不得轉(zhuǎn)載晶框。 https://blog.csdn.net/zhaoyanj...
    勤奮的pangdunhu閱讀 2,042評(píng)論 0 1
  • 說(shuō)明 本文主要介紹和Gradle關(guān)系密切排抬、相對(duì)不容易理解的配置,偏重概念介紹授段。部分內(nèi)容是Android特有的(例如...
    jzj1993閱讀 15,646評(píng)論 1 62
  • 在 Android Studio 構(gòu)建的項(xiàng)目中蹲蒲,基于 Gradle 進(jìn)行項(xiàng)目的構(gòu)建,同時(shí)使用 Android DS...
    Ant_way閱讀 7,368評(píng)論 0 16
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,701評(píng)論 0 3
  • 2018-12-26 哈爾濱第380期利他二組簡(jiǎn)書(shū)作者 姓名:周翔 揚(yáng)州市方圓建筑工程有限公司 【日精進(jìn)打卡第23...
    香蕉香蕉_2917閱讀 138評(píng)論 0 0