Results 40 comments of yizems

这句话应该改成: 不能更新非本线程创建的View

@fogcoding > > 这句话应该改成: 不能更新非本线程创建的View > > 源码里面的注释是只能创建view的线程去更新该view,所以理论上是可以子线程创建,然后子线程更新的,但有个问题:子线程创建的View可以不通过主线程显示吗?如果不能越过主线程显示,那结果等价于子线程不能更新UI,因为不能被看到的View毫无意义啊。 后来想了想,我说的这句话也不对,为何不能更新主线程的view,源自于 ViewRootImp 对线程做了校验,那么如果 创建一个View,不显示出来,也就没有了ViewRootImp中的线程校验,所以略尴尬=.= 也就是说,如果一个View没有被add到 window中,其实就是通过ViewRootImp.setView 添加到window中,那么就不存在 线程校验这回事 那么我们什么时候需要一个不存在于页面上的View呢??? 我目前最常用的是拼图=.=,生成一个view 然后截图

> @fogcoding > > > > 这句话应该改成: 不能更新非本线程创建的View > > > > > > 源码里面的注释是只能创建view的线程去更新该view,所以理论上是可以子线程创建,然后子线程更新的,但有个问题:子线程创建的View可以不通过主线程显示吗?如果不能越过主线程显示,那结果等价于子线程不能更新UI,因为不能被看到的View毫无意义啊。 > > 后来想了想,我说的这句话也不对,为何不能更新主线程的view,源自于 ViewRootImp 对线程做了校验,那么如果 创建一个View,不显示出来,也就没有了ViewRootImp中的线程校验,所以略尴尬=.= > > 也就是说,如果一个View没有被add到 window中,其实就是通过ViewRootImp.setView 添加到window中,那么就不存在 线程校验这回事 > > 那么我们什么时候需要一个不存在于页面上的View呢???...

可能我说的不是骚操作,但是的确能提高一些效率 1 搭建自己的(或公司的)maven/git,最好能翻墙,自己平时没事写一些组件,可以放进去,不要求多么的优秀,简单易用即可 2 如果有时间,学会开发 AS 插件,gradle plugin ,一旦完成,能帮省写很多代码,和一些特殊处理 3. 以前有一个 jrebel for android ,现在好像不更新了,也不知道怎么样了, 可以实现编译期热更新,像flutter 的 reload 一样 4. charles 这种就不用说了吧,了解一下 https://github.com/didi/DoraemonKit ,可以实现抓包,也可以实现 url mapping ,自己开发呦,还有 debug-db(https://github.com/amitshekhariitbhu/Android-Debug-Database),我们内部已经集成进了这个库,用于数据库调试,也很方便 先说这么多吧,毕竟在上班=.=

居然没人说,很奇怪呀=.= 1. by lazy: 用于 延迟初始化 2. 自定义委托,不如我想获取一个 用户id,那么他是在 本地数据库中的,那么我就可以 ```kotlin private val userId by UserIdDelegete() ``` UserIdDelegete中 定义了 user id 的获取和设置方法 写的不一定对哈,用的不多,也记不住 3. butterknife好像有个kotlin 版本的 ,用于id查找,可以参考,很优秀 原理的话不太好写,但是可以借助于 kotlin byteCode...

我认为轻量可以从两个方面来说: 1. 编码复杂度: kotlin 提供了优秀的编译机制, 写法上我就不多说了, 的确很简单就是了, 可以搜索kotlin 协程原理 2. 性能消耗: 2.1 在不考虑线程池的情况下, 我们基本上是每个任务创建一个线程,,那么这个时候协程肯定是比线程轻量的;因为协程内部是由线程池来执行的 2.2 考虑线程池的情况:没有差异: 协程再某些情况下会因为额外的线程切换导致更多的性能消耗 再说一句: 没有kotlin 协程,没有suspend, 我们也可以实现协程的, 只不过要手写很多复杂的代码就是了

唉, 非要把问题搞的那么大么, 是不是还要搞到 有栈和无栈协程的实现上去 =.= , js 的 c++ 或者 汇编代码, go 的源码 是不是也要捞出来瞅瞅。 一天天的卷死得了

简单说一下 AIDL 是一种辅助工具,不用AIDL ,一样可以实现跨进程通讯 AIDL 的原理是binder,真正有跨进程通讯能力的也是 Binder,所以 AIDL 只是一个能帮你少写代码,少出错的辅助工具,由于设计的太好,使用太方便,所以非常常用 就像 retrofit 和okhttp 关系一样, retrofit 提供 更加友好的api,真正的网络请求还是由 okhttp发起的

华为P9 plugs表示不行啊 Android 7.0 Emui5