為什么不是1M-4K,這樣加上保護(hù)頁(yè)不是剛好1M了嗎?我認(rèn)為多減去4K是為了保險(xiǎn)起見,這樣即使加上保護(hù)頁(yè)也才1M-4K,這樣低于1M又離1M差距不大,碎片不多,效率高。
binder機(jī)制深入探究之前有寫過(guò)一篇筆記《Android溫故而知新 - AIDL》從應(yīng)用層分析了aidl的數(shù)據(jù)是怎么傳遞的,還有一篇《Android跨進(jìn)程拋異常的原理》分析了異常是怎樣做到跨進(jìn)程的...
為什么不是1M-4K,這樣加上保護(hù)頁(yè)不是剛好1M了嗎?我認(rèn)為多減去4K是為了保險(xiǎn)起見,這樣即使加上保護(hù)頁(yè)也才1M-4K,這樣低于1M又離1M差距不大,碎片不多,效率高。
binder機(jī)制深入探究之前有寫過(guò)一篇筆記《Android溫故而知新 - AIDL》從應(yīng)用層分析了aidl的數(shù)據(jù)是怎么傳遞的,還有一篇《Android跨進(jìn)程拋異常的原理》分析了異常是怎樣做到跨進(jìn)程的...
ubuntu 安裝 Beyond Compare 安裝 卸載 破解 永久使用 1、官網(wǎng)下載 http://www.scootersoftware.com/download....
matrix.preTranslate(-width/2, -height/2);// M' = T1*(R*I)
這里有問題,應(yīng)該是M' = (R*I)*T1,不然M' = T2*(T1*(R*I)) = T2*T1*R,和第一種生成的M'=T2*R*T1是不同的,矩陣乘法并不滿足交換律。
Android Matrix的pre、post理解在圖像仿射變換中,我們可以用Matrix來(lái)進(jìn)行圖像的平移、縮放、旋轉(zhuǎn)、錯(cuò)切,對(duì)應(yīng)Android代碼中就是以下接口的復(fù)合操作: 原理部分很多文章都有介紹,這里先簡(jiǎn)要的說(shuō)明下。如...
task任務(wù)棧到底是不是ActivityStack?
Android lanchMode -- 不要再簡(jiǎn)潔明了了參考 任務(wù)棧和Activity啟動(dòng)模式[https://www.cnblogs.com/muouren/p/11706314.html]Android 面試黑洞——當(dāng)我按下 ...
作者驗(yàn)證過(guò)自己的源碼嗎?錯(cuò)誤很多
1. takeIf是類的方法,必須"對(duì)象.takeIf(方法)"這樣使用
```
takeIf {status}?apply {doThis()}
```
是錯(cuò)誤的
2.takeIf會(huì)默認(rèn)有個(gè)it變量指向前面的對(duì)象
```
someObject?.takeIf {status}?doThis()
```
也是錯(cuò)誤的
正確應(yīng)該是
```
someObject ?.takeIf { it.status } ?.apply { doThis()}
```
備注:
takeIf { it.status } 是
```
takeIf(fun(it: SameObject): Boolean {
return it.status
})
```
的變體
使用Kotlin takeIf(或takeUnless)原文鏈接 在Kotlin的標(biāo)準(zhǔn)函數(shù),有兩大函數(shù),即takeIf和takeUnless,乍一看,有什么特別之處呢?這幾乎就是if? 或者極端點(diǎn),把每一個(gè)if語(yǔ)句改成類似下面(不...
樓主分析解決問題很贊??
Typora + PicGo-Core + SM.MS圖床最近突然發(fā)現(xiàn)Typora更新了, 新增了原生對(duì) PicGo-Core 的調(diào)用, 可以自動(dòng)上傳markdown內(nèi)的圖片, 于是趕緊嘗鮮一波. 使用過(guò)程中遇到了一點(diǎn)坑, 但還是摸...
最近突然發(fā)現(xiàn)Typora更新了, 新增了原生對(duì) PicGo-Core 的調(diào)用, 可以自動(dòng)上傳markdown內(nèi)的圖片, 于是趕緊嘗鮮一波. 使用過(guò)程中遇到了一點(diǎn)坑, 但還是摸...
加上內(nèi)聯(lián)之后,ordinaryFunction()中的println("hahha233333")這個(gè)也不會(huì)執(zhí)行了
Kotlin 內(nèi)聯(lián)函數(shù) inlineKotlin 中新增了「內(nèi)聯(lián)函數(shù)」,內(nèi)聯(lián)函數(shù)起初是在 C++ 里面的。 那在 Kotlin 中加入內(nèi)聯(lián)函數(shù),是有什么作用呢? 以下內(nèi)容分為以下幾部分: 什么是 inline ...
java調(diào)用不了,只能kotlin代碼之間互相調(diào)用
推薦使用 Kotlin 關(guān)鍵字 Reifiedreified:使抽象的東西更加具體或真實(shí),非常推薦 Android 開發(fā)使用這個(gè)關(guān)鍵字。本文介紹 3 點(diǎn)特別的使用方式如下: 1. 不再需要傳參數(shù) clazz 大部分的文章...
雖然kotlin寫起來(lái)爽,但是可讀性比java差
Kotlin(let,with,run,apply,also)函數(shù)Kotlin的普及有一段時(shí)間了,但對(duì)let,with,run,apply,also的函數(shù)概念還是不清晰,大部分只是使用let,其他函數(shù)使用頻率很低。 函數(shù)定義 使用場(chǎng)景 網(wǎng)上...
如何第一次上傳本地代碼,上傳的同時(shí)也在github上創(chuàng)建倉(cāng)庫(kù),而不是去github頁(yè)面操作
(超詳細(xì))使用git命令行將本地倉(cāng)庫(kù)代碼上傳到github或gitlab遠(yuǎn)程倉(cāng)庫(kù)本地創(chuàng)建了一個(gè) xcode 工程項(xiàng)目,現(xiàn)通過(guò) 命令行 將該項(xiàng)目上傳到 github 或者 gitlab 遠(yuǎn)程倉(cāng)庫(kù),具體操作流程如下: 第1步:建立本地 git 倉(cāng)庫(kù),cd 到...
從github下載的代碼運(yùn)行,需要修改以下幾點(diǎn):
1.app模塊添加build.gradle配置文件;
2.在app模塊的主活動(dòng)動(dòng)態(tài)申請(qǐng) WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE權(quán)限;
3.打包pluginapp模塊,將apk命名為“plugin.apk”;
4.使用adb命令將“plugin.apk”push到模擬器活真機(jī)的“/storage/emulated/0”路徑下。
yyx1998 評(píng)論自Android插件化(二)
先說(shuō)我的理解:
loadPlugin()就是一個(gè)拷貝apk的操作,loadPathToPlugin是一個(gè)解析插件化apk,獲取apk信息(DexClassLoader,Resources,PackageInfo);
MainActivity.java:宿主Activity
ProxyActivity.java: 插件中的activity
HookManager.java : 解析插件Apk
ProxyActivityInterface:插件apk與宿主apk約定的接口,插件負(fù)責(zé)實(shí)現(xiàn),宿主調(diào)用
再說(shuō)幾個(gè)疑問:
(1)為什么需要這個(gè)拷貝操作呢?直接去解析外部的apk不行嗎
(2)Class<?> plugClass = getClassLoader().loadClass(className); 為什么不用Class.forName(className)呢?
Android插件化(一)插件化(一) 組件化和插件化的區(qū)別: 組件化是將一個(gè)app分成多個(gè)模塊,每個(gè)模塊都是一個(gè)組件(module),開發(fā)的過(guò)程中我們可以讓這些組件相互依賴或者單獨(dú)調(diào)試部分組件,但是...
按照這個(gè),我輸入git diff還是用的老的比較工具;git difftool后才打開BeyondCopare,幾個(gè)文件,每次彈出一個(gè)文件比較,關(guān)掉又彈出一個(gè)
git配置Beyond Compare之前有很多人都發(fā)過(guò)配置BC的教程,而且有人也說(shuō)得很詳細(xì)。這里我只是說(shuō)一下我自己配置的時(shí)候的具體步驟和遇到的問題吧~ 先說(shuō)一下,本文章只適用于windows電腦,至于mac,請(qǐng)...
反射應(yīng)該是 JVM讀取相應(yīng)類的 字節(jié)碼文件,而不是.java,文章這點(diǎn)要是能解釋一下就更好了
9dffc40c5c16 評(píng)論自Java高級(jí)特性——反射
換一句話說(shuō),就是api是對(duì)外的,就應(yīng)該公開;而implementation是內(nèi)部的實(shí)現(xiàn),不應(yīng)該公開出來(lái)。
4300b1f3d98c 評(píng)論自api與implementation的區(qū)別