240 發(fā)簡(jiǎn)信
IP屬地:上海
  • 但是比如一個(gè)github的庫(kù),gradle下載下來(lái)的SHA1目錄里面的aar包解壓是class.jar等編譯后的內(nèi)容洼专,而手動(dòng)從github下載的只能是zip包,這樣怎么替換啊

    Android 手動(dòng)下載Gradle的cache依賴包

    前言 有些時(shí)候厉萝,遇到gradle構(gòu)建下載依賴包的時(shí)候出現(xiàn)了錯(cuò)誤,或者timeout。于是乎就想要自己手動(dòng)去maven冀泻、jcenter常侣、jitpack、aliyun等倉(cāng)庫(kù)去下載...

  • Gradle源碼解讀(三)

    概述前面我們分析到DefaultGradleLauncher的doClassicBuildStages方法:private void doClassicBuildStages...

  • Gradle源碼解讀(二)

    概述之前分析了從執(zhí)行 gradlew assemble 命令開(kāi)始弹渔,gradle是如何一步步執(zhí)行起來(lái)的胳施,上文說(shuō)到最后會(huì)執(zhí)行this.executer.execute方法,這一篇...

  • Gradle源碼解讀(一)

    概述點(diǎn)擊Android Studio的運(yùn)行按鈕肢专,你會(huì)在Run面板的第一行看到如下信息:18:56:07: Executing 'assembleRelease'......a...

  • 120
    HarmonyOS之共享包

    概述鴻蒙中有兩種共享包舞肆,HAR(Harmony Archive)[https://developer.harmonyos.com/cn/docs/documentation/...

  • HarmonyOS之狀態(tài)管理

    概述在像Android一樣的系統(tǒng)里,我們可以自然地用UI事件來(lái)驅(qū)動(dòng)數(shù)據(jù)變更博杖,比如按鈕點(diǎn)擊后改變一個(gè)數(shù)據(jù)椿胯,但是如果想要反過(guò)來(lái)讓數(shù)據(jù)改變時(shí)自動(dòng)地驅(qū)動(dòng)UI變化則需要手動(dòng)設(shè)置obse...

  • Linux基礎(chǔ)

    inodesinodes就是索引節(jié)點(diǎn)(Index Node)的意思,在Linux中剃根,所有的file的相關(guān)信息(不包括filename和它實(shí)際本身的數(shù)據(jù))都被存儲(chǔ)在一個(gè)表結(jié)構(gòu)中...

  • Apk安裝的源碼分析(三)

    概述前面兩篇博文分析了apk安裝的流程哩盲,我們換個(gè)角度,從apk啟動(dòng)來(lái)看安裝的信息是如何使用的狈醉,這個(gè)過(guò)程也可能會(huì)發(fā)現(xiàn)安裝流程中忽視掉的邏輯廉油,從而使頭尾相連,把整個(gè)安裝原理搞明白...

  • Apk安裝的源碼分析(二)

    書(shū)接上回上文我們分析到苗傅,安裝過(guò)程好像是把一個(gè)apk文件寫(xiě)入到了某個(gè)地方抒线,通過(guò)PackageInstaller.Session的openWrite方法獲取到一個(gè)OutputSt...

  • Apk安裝的源碼分析(一)

    源頭我們要研究一個(gè)應(yīng)用的安裝過(guò)程,首先要找到這個(gè)過(guò)程的起點(diǎn)是什么渣慕。我們回憶一下應(yīng)用安裝的場(chǎng)景:應(yīng)用市場(chǎng)直接下載安裝的嘶炭,這個(gè)場(chǎng)景下我們看不到apk后綴的文件,應(yīng)用市場(chǎng)是個(gè)軟件逊桦,...

  • 動(dòng)態(tài)代理Proxy

    什么是動(dòng)態(tài)代理動(dòng)態(tài)代理是相對(duì)于靜態(tài)代理來(lái)說(shuō)的眨猎,所謂靜態(tài)代理就是一個(gè)類(lèi),通常稱之為代理類(lèi)卫袒,代理類(lèi)內(nèi)部持有一個(gè)真正的對(duì)象宵呛,并且這個(gè)代理類(lèi)繼承自這個(gè)真正的對(duì)象類(lèi)或者實(shí)現(xiàn)它們共同的接...

  • 120
    啟用Gradle遠(yuǎn)程調(diào)試

    在Gradle學(xué)習(xí)10——自定義Gradle插件 這篇文章中介紹了編寫(xiě)插件的幾種方式。編寫(xiě)gradle對(duì)象插件的實(shí)現(xiàn)方式有3種: 直接寫(xiě)在build.gradle中夕凝,這種方式...

  • 關(guān)于Dex分包

    Dex分包的由來(lái)分包的概念想必我們都不陌生了,因?yàn)橐粋€(gè)dex文件中的方法數(shù)使用一個(gè)short類(lèi)型的字段來(lái)記錄方法數(shù)户秤,所以最多只能存儲(chǔ)2^16=65536個(gè)方法數(shù)(16是2個(gè)字...

  • ??解決問(wèn)題了码秉,誰(shuí)能想到j(luò)ar不需要修改字節(jié)碼時(shí)也需要復(fù)制一下呢...

    gradle升級(jí)帶來(lái)的java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/R$drawable錯(cuò)誤

    背景 最近將我們項(xiàng)目的android gradle plugin(以下簡(jiǎn)稱agp)以及gradle版本進(jìn)行了升級(jí),之前因?yàn)橐蕾嚰瘓F(tuán)內(nèi)部的打包插件鸡号,agp版本還停留在很老的3....

  • gradle升級(jí)帶來(lái)的java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/R$drawable錯(cuò)誤

    背景 最近將我們項(xiàng)目的android gradle plugin(以下簡(jiǎn)稱agp)以及gradle版本進(jìn)行了升級(jí)转砖,之前因?yàn)橐蕾嚰瘓F(tuán)內(nèi)部的打包插件,agp版本還停留在很老的3....

  • Android熱修復(fù)之Dex動(dòng)態(tài)加載

    什么是Android的熱修復(fù)熱修復(fù)是一種在應(yīng)用程序運(yùn)行時(shí)對(duì)已發(fā)布版本進(jìn)行動(dòng)態(tài)修復(fù)bug或更新功能的技術(shù)。當(dāng)APP發(fā)布上線之后府蔗,如果出現(xiàn)了嚴(yán)重的bug晋控,通常需要重新發(fā)版來(lái)修復(fù),...

  • Java強(qiáng)引用姓赤、軟引用赡译、弱引用、虛引用

    強(qiáng)引用強(qiáng)引用和其他引用不同的是它不需要外部對(duì)象去包含實(shí)際的對(duì)象不铆,比如軟引用會(huì)使用SoftReference包含蝌焚。當(dāng)強(qiáng)引用對(duì)象設(shè)置為null時(shí),即它沒(méi)有指向任何的對(duì)象了誓斥,或者超...

  • 120
    插件化只洒、組件化、熱修復(fù)

    一劳坑、Android插件化毕谴、組件化、熱修復(fù)的區(qū)別 插件化插件化是一種將應(yīng)用程序按照模塊或組件進(jìn)行拆分距芬,并以插件的方式動(dòng)態(tài)加載和運(yùn)行的技術(shù)析珊。其主要原理包括以下幾個(gè)步驟: 模塊劃分...

  • 120
    交叉編譯native庫(kù)

    概述當(dāng)你需要把自定義的c、c++代碼打包成靜態(tài)或者動(dòng)態(tài)庫(kù)以供java端進(jìn)行JNI調(diào)用時(shí)(比如你要定義自己的音視頻庫(kù)時(shí))蔑穴,你就需要學(xué)會(huì)使用相關(guān)編譯工具來(lái)生成庫(kù)文件忠寻。對(duì)于在PC下...

個(gè)人介紹
道阻且長(zhǎng)
行則將至
亚洲A日韩AV无卡,小受高潮白浆痉挛av免费观看,成人AV无码久久久久不卡网站,国产AV日韩精品