Android
文章平均质量分 78
sandyz987
这个作者很懒,什么都没留下…
展开
-
Kotlin 对委托模式的理解(by关键字的用法)
在Kotlin中,委托模式和代理模式还是有些许不同之处的,代理模式是类似于Retrofit这种库中Retrofit.create的Proxy.newProxyInstance这种写法,分为动态代理和静态代理。而Kotlin还提供了一种简便的代理方法,叫做“委托模式”。Kotlin中 by关键字 主要有两个用法:一个是委托类,一个是委托属性。原创 2024-03-15 19:51:54 · 510 阅读 · 0 评论 -
[没那么难懂] Kotlin inline noinline crossinline详细并通俗版讲解,一篇就够
1. 普通函数的lambda表达式参数:会生成函数对象,不适合在循环里调用,有开销。**可以间接调用,不能非局部返回**(直接return)。2. inline函数:内联该函数(在对应位置展开),以及它的lambda参数。**不可以间接调用,允许非局部返回**。3. noinline修饰符:标记lambda参数,让被标记的参数不被内联。**可以间接调用,不能非局部返回**(跟(1.)一样)。4. crossinline修饰符:内联该参数,但由于return作用域原创 2024-03-11 12:24:10 · 999 阅读 · 0 评论 -
[没那么难懂] Kotlin协程的通俗理解
协程是个抽象的概念,通俗而言,其实就是想让“**你写的代码**”,可以轻松地**跨线程**(指定某行在哪个线程执行,执行完又恢复到当前行来,用原来的线程继续执行),不然你写的代码如果想跨线程执行,就得用线程池或者new Thread很不美观,还容易陷入“**回调地狱**”。原创 2024-03-06 19:18:15 · 815 阅读 · 0 评论 -
【最清晰】ThreadLocal和局部变量和成员变量的区别
ThreadLocal是进程级别的全局变量。最近有一个疑惑:为什么线程类的局部变量不能完全替代ThreadLocal,每一次new 线程都是创建了一个副本啊照理来说也是独立的,为什么还需要ThreadLocal。实际上确实是独立的,但是答案是ThreadLocal还有更广泛的用途。第一种情况:当想在不同线程,访问“同一个对象的方法”,希望以线程作为区分,区分一个变量的作用域,而希望这个方法根据线程不同而作出不同处理,这时就需要threadLocal(而不能用类成员变量,为啥呢,因为同一个对象,它的成原创 2021-06-04 10:09:03 · 1233 阅读 · 0 评论 -
Android 字符串求值工具(科学计算)
在Android数学计算APP,经常有场景让用户输入一串表达式,并且计算其值,如果手动用 Integer.parseInt 不太好用而且还需要 try。于是写了这个库。功能:接受一个字符串String表达式(支持科学运算),返回表达式计算结果:double类型数字;为了提升效率,代码是用C++写的,通过JNI链接到Java,但是链接也需要花时间,所以在密集计算时才能体现优势。可以用此工具写函数图像的APP..1、依赖github地址:https://github.com/sandyz987/Ca原创 2021-03-31 15:56:40 · 774 阅读 · 0 评论 -
Android 事件分发分情况讨论总结
Android 事件分发分情况讨论总结–强烈建议大家打log验证一下下面说到的每一种状态,有助于加深对它的理解。–1、dispatchTouchEvent返回值的意思:下面是否有view能处理事件?(是否分发成功了事件?),其实返回值最终是onTouchEvent的返回值,只不过不知道是哪一个view。当返回true,说明下方有东西消费了事件,将继续接受事件。尽管这个true是你骗他的。注意,一切事件都是由Down开始的,不管这三个哪个方法,第一个收到的必须是Down,否则对应方法不会被调用原创 2021-02-07 00:00:59 · 180 阅读 · 1 评论