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