240 发简信
IP属地:广东
  • 120
    Android EGL 错误信息定位方法

    问题 使用 OpenGL 开发过程当中可能会遇到需要理解一些关键错误日志 log 的意思,比如 我们得结合源码分析背后在干一件什么事情 解决方案 了解 EGL 和 OpenG...

  • 在frameworks中并没有找到以上的两个日志打印代码?请问要怎么查找呢?

    Android EGL 错误信息定位方法

    问题 使用 OpenGL 开发过程当中可能会遇到需要理解一些关键错误日志 log 的意思,比如 我们得结合源码分析背后在干一件什么事情 解决方案 了解 EGL 和 OpenG...

  • 作者做的性能比较是不准确的,使用的是默认的Dispatchers.Default调度器,这个调度器是使用一个线程池进行分配任务调度协程运行的,使用的过程有线程切换的开销。而作为对比用了一个单线程的线程池,单线程没有线程切换的开销,基本上等于开了个单线程for循环处理任务。这样对比本身就是不公平的。kotlin的协程不能说是线程池的封装,因为你可以使用runBlocking方法将协程运行在当前线程,或者用newSingleThreadContext指定使用单线程的调度器,或者使用Dispatchers.Main使用主线程,这些途径能保证在单一线程里进行多并发,这就完全没有利用线程池了,而这个单线程的并发遇到譬如io阻塞的时候,可以让出时间片允许其他协程继续运行而不会阻塞线程,这就避免了多线程并发的线程开销,下面是主线程多并发demo:
    fun log(msg: String) = println("[${Thread.currentThread().name}] $msg")

    fun main() = runBlocking<Unit> {
    repeat(5) {
    launch {
    log("task[$it], time: ${System.currentTimeMillis()}")
    delay(1000)
    }
    }
    }
    输出为:
    [main @coroutine#2] task[0], time: 1590202484733
    [main @coroutine#3] task[1], time: 1590202484739
    [main @coroutine#4] task[2], time: 1590202484739
    [main @coroutine#5] task[3], time: 1590202484740
    [main @coroutine#6] task[4], time: 1590202484740
    可以看到协程都在主线程执行,每个任务调用delay并不会阻塞其他协程的运行

  • 我们真的是礼貌性问一问而已,没问题就别问,网上攻略害死人

    面试最后一问:你有什么问题想问我吗?

    尽管,我们之前分享了这么多关于面试的主题: 高薪必备的一些Spring Boot高级面试题 面试必问:设计模式遵循的面向对象设计原则! 面试必问:怎么保证缓存与数据库的双写一...

  • 120
    Gradle Transform API 的基本使用

    文章来源自作者的Android进阶计划(https://github.com/SusionSuc/AdvancedAndroid) 在前面学习WMRouter和ARouter...

  • 120
    遇见LayoutInflater&Factory

    LayoutInflater的获取 在我们写listview的adapter的getView方法中我们都会通过LayoutInflater.from(mContext)获取L...

  • 120
    Android VIVO手机Camera权限问题

    一般判断是否有拍照权限(Android6.0之前的)的办法: 1.通过Camera.open()之后判断camera==null? 2.有些手机即使禁掉拍照权限获取到的cam...

  • 120
    Power Designer16.5 安装及破解方法

    PowerDesign下载 PowerDesigner相关信息大小:809.2M 版本:16.5.0.3982位数:32/64 更新日期:2015-04-09支持系统:Win...

  • 这可能是最好的RxJava 2.x 入门教程(五)

    这可能是最好的 RxJava 2.x入门教程系列专栏文章链接:这可能是最好的 RxJava 2.x 入门教程(完结版)【重磅推出】这可能是最好的 RxJava 2.x 入门教...

  • 120
    这可能是最好的RxJava 2.x 入门教程(一)

    这可能是最好的 RxJava 2.x 入门教程系列专栏文章链接:这可能是最好的 RxJava 2.x 入门教程(完结版)[https://www.jianshu.com/p/...

  • 120
    给初学者的RxJava2.0教程(九)

    Outline [TOC] 前言 好久不见朋友们,最近一段时间在忙工作上的事情,没来得及写文章,这两天正好有点时间,赶紧写下了这篇教程,免得大家说我太监了。 正题 先来回顾一...

  • 120
    给初学者的RxJava2.0教程(一)

    Outline [TOC] 前言 上个月RxJava2正式版发布了,但目前国内的资料还比较少,以前使用过RxJava1只需要看看更新文档就知道怎么使用了,但还有一些以前没用过...

  • 120
    Android MVP 详解(上)

    作者:李旺成 时间:2016年4月3日 “Android MVP 详解(下)”已经发布,欢迎大家提建议。 MVP 在 Android 上的使用其实已经有挺长一段时间了,长到似...

  • 120
    设置Background导致Padding无效问题追溯

    1, 问题描述 很多同学可能都遇到过这个问题:明明在布局文件中设置了View的padding, 然后程序中动态设置了背景, 运行后发现padding不对. 如下代码: 明明加...

  • ViewStub 用法详解

    介绍 ViewStub 是一个轻量级的View,没有尺寸,不绘制任何东西,因此绘制或者移除时更省时。(ViewStub不可见,大小为0) 优点 实现View的延迟加载,避免资...