240 发简信
IP属地:浙江
  • 前段时间用过这个,实际上我感觉它的位置很尴尬,主要是由于底层的replace导致的。
    并列方面用vp,而对于个别用显示和隐藏的时候它的replace又让我感觉很不爽,我只想show、hidden。
    网上也有部分解决方案,设置google本身的,但是最终给我感觉都不太舒服.
    最终我还是没有投入项目中。

    新一代的Fragment管理库:Navigation

    前言 在以往的Fragment使用中,我们都是使用Fragment的事务进行添加,删除,替换等操作,为了快速开发,我们也会自行封装一个FragmentController。在...

  • Mac安装多个Python版本

    简介 利用Mac包管理工具brew安装pyenv,pyenv用来管理所有python版本。如果没有安装brew,先安装一下吧。 安装pyevn 查看所有的python版本(p...

  • 120
    开发第三方库最佳实践

    本文会不定期更新,推荐watch下项目。如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request。本文的示例代码主要是基于作者的...

  • 可以通过以下方式进行排除
    @Excludes(com.example.unwanted.GlideModule)
    @GlideModule
    public final class MyAppGlideModule extends AppGlideModule { }

    关于Glide与OkHttp结合使用的问题

    背景 最近使用Glide的过程中发现了一些内存泄漏的问题,经过反复查找,终于大致锁定原因:app跑起来的时候,存在三个OkHttpClient对象实例。 总感觉哪里不对,应该...

  • 图形化的贮藏不就是暂存区,重要的不是图形化或者命令 而是知道操作的主体流程 命令常用的也就那么几个,只用不想在哪都是不行的

    最近给团队新同学分享的git markdown

    背景 最近给团队新同学分享了关于git、markdown的入门及学习。下面是分享ppt的内容,其中就关于我自己在学习使用的感受谈几点想法。 你真的会用git了吗? 我大概是在...

  • @逐梦々少年 二进制很多人都会,小数二进制会的人就少了,可以通过写小数二进制提升一下文章的深度。

    Java中的二进制与位运算

    整数的二进制运算 要理解整数的二进制,我们先来看看最熟悉的十进制,例如123这个值,如果按照十进制,是如何计算出来的呢?其实123表示1x(10^2) + 2 x (10^1...

  • 建议加载小数的二进制表示

    Java中的二进制与位运算

    整数的二进制运算 要理解整数的二进制,我们先来看看最熟悉的十进制,例如123这个值,如果按照十进制,是如何计算出来的呢?其实123表示1x(10^2) + 2 x (10^1...

  • 直接忽略所有继承自View的行不行

    AndroidX混淆

    最近学习了一下Kotlin,就做了一个项目练练手,提升熟练度,顺便使用到了AndroidX,在打包的时候混淆了一下代码,结果运行后出现了一个错误: java.lang.NoS...

  • 实际上我感觉并没有按照state排序,而是按照的插入顺序排序。。。总感觉mObserverMap的注释在误导我们(因为插入后都会把state先置为init再置为当前的state)。
    backwardPass和forwardPass只是对观察者发送事件的顺序发生了改变,前者逆序 后者顺序。
    至于为什么要保持这个通知顺序,我的理解是根据现实逻辑,你一群人排排站,过去的时候是顺序,回来就是逆序了。
    而backward正好就是表示状态发生了回退(所以逆序),forward表示顺序发生了前进,所以顺序

    Android官方架构组件Lifecycle:生命周期组件详解&原理分析

    概述 在过去的谷歌IO大会上,Google官方向我们推出了 Android Architecture Components,其中谈到Android组件处理生命周期的问题,向我...

  • 应该是为了保证sync的时候while条件判断,通过state是否全部保持一致了,按照固定顺序排列就只用比较第一个和最后一个,如果是乱序就要挨个比较

    Android官方架构组件Lifecycle:生命周期组件详解&原理分析

    概述 在过去的谷歌IO大会上,Google官方向我们推出了 Android Architecture Components,其中谈到Android组件处理生命周期的问题,向我...

  • 28里面也有LAUNCH_ACTIVITY

    3分钟看懂Activity启动流程

    背景介绍 从事开发到了一定阶段,想要提高就必须搞明白系统的一些工作原理。为什么?因为只有明白了这些,你才能针对平台的特性写出优质的代码。当遇到棘手的问题时,你才能更快速的结合...

  • 对象比较过程:1.== 直接比较内存地址 2.equals 根据自定义,如果不自定义直接比较内存地址
    所以对象相等跟有没有重写 hashCode有啥关系?

    面试官:“你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?”

    1.hashCode介绍 hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个散列码的作用是确定该对象在散列表中的索引位置,如果有看我的...

  • hashCode() 的默认行为是对堆上的对象产生独特值。如果没有重写 hashCode(),则该 class 的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)
    这句话是个啥意思 我不重写hashcode 对象不相等了????a u kiding me

    面试官:“你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?”

    1.hashCode介绍 hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个散列码的作用是确定该对象在散列表中的索引位置,如果有看我的...

  • mfirsttouchtarget是类viewgroup下的一个touchtarget类私有变量,按理说私有变量无法继承,无法被子类使用,怎么回事我也不懂,这里应该是mfirsttouchtarget这个变量只有一个。首先看一下touchtarget源码,他是viewgroup下定义的一个私有静态内部类,是一个单链表,说明所有viewgroup只有一个单链表

    是错误的哟,是静态类,但是mFirstTouchTarget不是静态字段,说明每个ViewGroup都有个链表

    view事件分发中的touchtarget

    新人一枚,在学习view事件分发中总是看不懂mFirstTouchTarget newTouchTarget这些touchtarget类对象,view事件分发看了其他人的文章...

  • 120
    抽丝剥茧RecyclerView - 化整为零

    前言 抽丝剥茧RecyclerView系列文章的目的在于帮助Android开发者提高对RecyclerView的认知,本文是整个系列的第一章。 RecyclerView已经出...

  • ffmpeg concat video and mix audio

    需求 将N个片段视频文件连接,并合并额外的音频文件 解决方案: 在ffmpeg中,官网给出两种连接媒体文件(音频、视频、etc..)的解决方案。 the concat "de...

  • Android Studio + cmake 编译 ffmpeg 命令工具

    在前一篇文章windows环境下编译ffmpeg打包成单个so并使用Cmake集成到Android工程中 我们说到了将ffmpeg 编译打包成单个so,并使用cmake 集成...