为什么不是1M-4K,这样加上保护页不是刚好1M了吗?我认为多减去4K是为了保险起见,这样即使加上保护页也才1M-4K,这样低于1M又离1M差距不大,碎片不多,效率高。
binder机制深入探究之前有写过一篇笔记《Android温故而知新 - AIDL》从应用层分析了aidl的数据是怎么传递的,还有一篇《Android跨进程抛异常的原理》分析了异常是怎样做到跨进程的...
为什么不是1M-4K,这样加上保护页不是刚好1M了吗?我认为多减去4K是为了保险起见,这样即使加上保护页也才1M-4K,这样低于1M又离1M差距不大,碎片不多,效率高。
binder机制深入探究之前有写过一篇笔记《Android温故而知新 - AIDL》从应用层分析了aidl的数据是怎么传递的,还有一篇《Android跨进程抛异常的原理》分析了异常是怎样做到跨进程的...
ubuntu 安装 Beyond Compare 安装 卸载 破解 永久使用 1、官网下载 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 面试黑洞——当我按下 ...
我用的androidx.constraintlayout.widget.Barrier, 配置app:barrierAllowsGoneWidgets="true",当Barrier所引用的控件设置为gone时,Barrier不会讲这个gone的控件考虑在内,很奇怪
Android ConstraintLayout 1.1.2 版本的新特性公众号:字节数组[https://upload-images.jianshu.io/upload_images/2552605-aacaa2893c0add99.png],热...
作者验证过自己的源码吗?错误很多
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的标准函数,有两大函数,即takeIf和takeUnless,乍一看,有什么特别之处呢?这几乎就是if? 或者极端点,把每一个if语句改成类似下面(不...
楼主分析解决问题很赞👍
Typora + PicGo-Core + SM.MS图床最近突然发现Typora更新了, 新增了原生对 PicGo-Core 的调用, 可以自动上传markdown内的图片, 于是赶紧尝鲜一波. 使用过程中遇到了一点坑, 但还是摸...
最近突然发现Typora更新了, 新增了原生对 PicGo-Core 的调用, 可以自动上传markdown内的图片, 于是赶紧尝鲜一波. 使用过程中遇到了一点坑, 但还是摸...
加上内联之后,ordinaryFunction()中的println("hahha233333")这个也不会执行了
Kotlin 内联函数 inlineKotlin 中新增了「内联函数」,内联函数起初是在 C++ 里面的。 那在 Kotlin 中加入内联函数,是有什么作用呢? 以下内容分为以下几部分: 什么是 inline ...
java调用不了,只能kotlin代码之间互相调用
推荐使用 Kotlin 关键字 Reifiedreified:使抽象的东西更加具体或真实,非常推荐 Android 开发使用这个关键字。本文介绍 3 点特别的使用方式如下: 1. 不再需要传参数 clazz 大部分的文章...
虽然kotlin写起来爽,但是可读性比java差
Kotlin(let,with,run,apply,also)函数Kotlin的普及有一段时间了,但对let,with,run,apply,also的函数概念还是不清晰,大部分只是使用let,其他函数使用频率很低。 函数定义 使用场景 网上...
`此外,在绑定表达式中会根据需要生成一个名为context的特殊变量,context的值是根 View 的getContext()方法返回的Context对象, context变量会被具有该名称的显式变量声明所覆盖`
这个是布局文件对应的类看到的吗?我怎么在布局对应的Impl文件中没有找到context呢
Android DataBinding 从入门到进阶DataBinding 是谷歌官方发布的一个框架,顾名思义即为数据绑定,是 MVVM 模式在 Android 上的一种实现,用于降低布局和逻辑的耦合性,使代码逻辑更加清晰。M...
如何第一次上传本地代码,上传的同时也在github上创建仓库,而不是去github页面操作
(超详细)使用git命令行将本地仓库代码上传到github或gitlab远程仓库本地创建了一个 xcode 工程项目,现通过 命令行 将该项目上传到 github 或者 gitlab 远程仓库,具体操作流程如下: 第1步:建立本地 git 仓库,cd 到...
从github下载的代码运行,需要修改以下几点:
1.app模块添加build.gradle配置文件;
2.在app模块的主活动动态申请 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约定的接口,插件负责实现,宿主调用
再说几个疑问:
(1)为什么需要这个拷贝操作呢?直接去解析外部的apk不行吗
(2)Class<?> plugClass = getClassLoader().loadClass(className); 为什么不用Class.forName(className)呢?
Android插件化(一)插件化(一) 组件化和插件化的区别: 组件化是将一个app分成多个模块,每个模块都是一个组件(module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件,但是...
按照这个,我输入git diff还是用的老的比较工具;git difftool后才打开BeyondCopare,几个文件,每次弹出一个文件比较,关掉又弹出一个
git配置Beyond Compare之前有很多人都发过配置BC的教程,而且有人也说得很详细。这里我只是说一下我自己配置的时候的具体步骤和遇到的问题吧~ 先说一下,本文章只适用于windows电脑,至于mac,请...
反射应该是 JVM读取相应类的 字节码文件,而不是.java,文章这点要是能解释一下就更好了
换一句话说,就是api是对外的,就应该公开;而implementation是内部的实现,不应该公开出来。