12 一叶飘舟

尚未进行身份认证

我要认证

技术真好!

等级
TA的排名 30

你在开发过程中使用Git Rebase还是Git Merge?

1. 痛苦吗?代码历史中的迷失羔羊我们先来看一个真实的代码提交历史图形化截图:图片源自https://storage.kraken.io/kk8yWPxzXVfBD3654oMN/c8b97f4dbb5f7d49fc3eb3624eafff79/london-tube-map-commit.pnghttps://dev.to/neshaz/git-merge-vs-git-rebase-5134不知道大家看到这张图以后有什么感受?是不是很无语呢?我是无语凝噎的感受。代码历史到了这个地.

2020-10-28 20:30:04

Androidx 切换多语言失效解决方案(appcompat版本有关)

项目经过Androidx改造后,多语言切换会失效,这里汇总下。当引用了androidx.appcompat:appcompat:1.1.0时,BaseActivity中实现下面方法:@Overridepublic void applyOverrideConfiguration(Configuration overrideConfiguration) { // 兼容androidX在部分手机切换语言失败问题 if (overrideConfiguration != null) {

2020-10-26 10:59:11

Android中Parcelable的原理和使用方法

Parcelable的简单介绍介绍Parcelable不得不先提一下Serializable接口,Serializable是Java为我们提供的一个标准化的序列化接口,那什么是序列化呢?进行Android开发的时候,无法将对象的引用传给Activities或者Fragments,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递。简单来说就是将对象转换为可以传输的二进制流(二进制序列)的过程,这样我们就可以通过序列化,转化为可以在网络传输或者保存到本地的流(序列),从而进行传

2020-10-14 00:17:11

不同编程语言中 二进制、八进制、十六进制的数值常量表示前缀 0b 0 0x

二进制前缀0b八进制前缀0十六进制前缀0X进制基数(radix) 前缀 示例 二进制 binary 0b 0B 0b11 = 2+1=3 八进制 octal 0o 0O 0 0o11 = 8+1=9 十进制 decimal 无前缀 11 = 11 十六进制 hex 0x 0X 0x11 十进制,直接写数值即可。而八进制较为特殊,在不同语言中的表示有细微的差异。不同语言中的数值常量表示差异 JavaSc...

2020-09-15 19:12:49

kotlin位操作和位运算

一、位操作:shl(bits) – 左移位 (Java’s <<)shr(bits) – 右移位 (Java’s >>)ushr(bits) – 无符号右移位 (Java’s >>>)and(bits) – 与 &or(bits) – 或 ||xor(bits) – 异或inv() – 反向val a = 5val b = a shl 2 //左移2位,5*2*2=20println(b) //20二、位运算符:..

2020-09-15 19:09:09

java中 List.subList(int fromIndex, int toIndex)方法需要注意的问题

关于集合类,《阿里巴巴Java开发手册》中有一个规定:这里我们简单分析下。subListsubList是List接口中定义的一个方法,该方法主要用于返回一个集合中的一段、可以理解为截取一个集合中的部分元素,他的返回值也是一个List。如以下代码:public static void main(String[] args) { List<String> names = new ArrayList<String>() {{ add.

2020-09-04 16:00:19

ConstraintLayout的崛起之路

一、简介为啥会取这个标题,绝不是为了噱头,源于最近看了一部国产漫画一武庚纪2,剧情和画质都非常棒的良心之作,且看武庚的崛起 。。。回忆当初稍微复杂的界面,布局的层级嵌套多层,布局最终会解析成 View 的树形结构,这对渲染性能产生了一定的影响,并且也增大了代码的维护难度。Google 工程师正是考虑到这一因素,推出了 ConstraintLayout二、ConstraintLayoutConstraintLayout 翻译为 约束布局,也有人把它称作 增强型的相对布局,由 2016 年 Go

2020-09-02 11:11:53

ConstraintLayout常见问题总结

1.两个控件之间怎么对齐对齐在日常的开发中是常见的操作,在传统布局中google也给我们提供了xxGravity属性来进行控件之间的对齐操作,但是在日常的开发中,这种常规操作很多都需要嵌套一层父布局来实现,尤其是最外层布局不是RV的布局情况下这种情况尤为严重。在介绍constraintLayout布局居中之前,我们先看一下RV布局中两个控件是怎么对齐的代码:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns

2020-09-02 11:05:01

ConstraintLayout实现左中右布局

布局如下:<android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="56dp"> <FrameLayout android:id="@+id/fl_left" android:layout_width="0dp" a

2020-08-31 17:29:14

Android面试官装逼失败之:Activity的启动模式

面试的时候,面试官经常同你随便侃侃Activity的启动模式,但Activity启动牵扯的知识点其实很多,并非能单单用四个启动模式就能概括的,默认的启动模式的表现会随着Intent Flag的设置而改变,因此侃Activity启动模式大多走流程装逼,最多结合项目遇到的问题,随便刁难一下面试者,并不太容易把控,也许最后,面试官跟面试者的答案都是错了,比如在Service中必须通过设置FLAG_ACTIVITY_NEW_TASK才能启动Activity,这个时候启动Activit会有什么样的表现呢?就这一个问题

2020-08-26 10:40:19

“Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么?”

前言Android的消息机制主要是指Handler的运行机制,对于大家来说Handler已经是轻车熟路了,可是真的掌握了Handler?本文主要通过几个问题围绕着Handler展开深入并拓展的了解。站在巨人的肩膀上会看的更远。大家有兴趣的也可以到Gityuan的博客上多了解了解,全部都是干货。而且他写的东西比较权威,毕竟也是小米系统工程师的骨干成员。Questions Looper 死循环为什么不会导致应用卡死,会消耗大量资源吗? 主线程的消息循环机制是什么(死循环如何处理其它事

2020-08-25 15:45:59

Git恢复之前版本的两种方法reset、revert

一、问题描述在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。二、背景知识git的版本管理,及HEAD的理解使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况

2020-08-18 23:08:17

git使用rebase命令合并多次(未提交)commit

查看提交历史使用 git log 命令查看提交历史:使用rebase命令想要合并前三个 commit ,使用下面的命令:git rebase -i HEAD~3进入编辑界面,把要保留的 commit 使用pick,其他的使用squash命令,或者根据命令提示选择自己想用的命令。保存退出,git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。修改以后要记得敲下面的命令:git add .git rebase --cont

2020-08-18 19:55:53

Mac OS X 的包管理器 HomeBrew

Homebrew 是最简单和灵活的方式,用来在 Mac OS X 安装 Linux 工具包。Homebrew 国内高速安装脚本:https://gitee.com/cunkai/HomebrewCN安装过程很简单:ruby-e"$(curl-fsSLhttps://raw.github.com/Homebrew/homebrew/go/install)"HomeBrew是ruby脚本,但是mac下不需要安装ruby解释环境,系统自带了。安装好后,可以:brew –v...

2020-08-18 16:40:08

Android URL中参数的获取、拼接及修改

1、获取参数Uri uri = Uri.parse(url);String type = uri.getQueryParameter("key");2、拼接Uri.Builder builder = Uri.parse(url).buildUpon();builder.appendQueryParameter("key", value);3、修改public static String replace(String url, String key, String value)

2020-08-10 14:22:30

ThreadLocal会不会内存泄漏?

1. 前言有关 ThreadLocal 源码分析的文章不少,其中有个问题常被提及:ThreadLocal 是否存在内存泄漏?不少文章对此讲述比较模糊,经常让人看完脑子还是一头雾水,我也有此困惑。因此找时间跟小伙伴讨论了一番,总算对这个问题有了一定的理解,这里记录和分享一下,希望对有同样困惑的朋友们有所帮助。当然,若有理解不当的地方也欢迎指正。2. 应用场景ThreadLocal 的应用场景不少,这里举个简单的栗子:单点登录拦截。也就是在处理一个 HTTP 请求之前,判断用户是否登录:

2020-07-19 19:29:11

Android布局中同级View的事件传递优先级

说起Android中View的事件分发机制,不少开发者脑海中应该会立刻浮现出一幅流程图。已经有许多文章详细的分析了点击事件在上下级View和ViewGroup之间的传递规则。但同级View之间的点击事件是如何专递的呢?换句话说,处于同一个ViewGroup内的两个View重合时,ViewGroup是如何决定传递到哪一个View的?部分有经验的开发者可能会说:按照xml中的排列顺序,最后的优先触发。的确,在相当长的时间里我也是这么认为的。但在最近的开发中我遇到了一个比较棘手的问题,这也促使我从源码中去进行更深

2020-07-19 00:19:44

Android RecyclerView item选中放大被遮挡问题

在Android TV上一般选中某个View, 都会有焦点突出放大的效果, 但是当在RecyclerView中(ListView或GridView)实现当item View执行放大动画后会被其他的item View遮挡.原因是: RecyclerView的机制是越靠后的View z-order越高, 所以bringToFront方法是不管用的.在实现针对TV端的自定义控件 TvRecyclerView 时遇到此问题, 最后的解决方案是:自定义RecyclerView, 重写getChildDra..

2020-07-17 00:08:58

View.post() 原理深入理解

关于View.post() 相信每个Android开发人员都不会感到陌生,它最常见的场景主要有两种。 更新 UI 操作 获取 View 的实际宽高 view.post() 的内部也是调用了 Handler,这可能是绝大多数开发人员所了解的,从本质来说这样理解并没有错,不过它并能解释上面提出的第 2 个场景。在 Activity 中,View 绘制流程的开始时机是在 ActivityThread 的 handleResumeActivity 方法,在该方法首先完成 Activit...

2020-07-16 23:33:29

Android RecyclerView Item使用动画被遮挡,ClipChildren也无效的坑

clipChildren这个属性需要设置在该View的祖父布局上,也就是父布局的父布局。也就是说如果一个View想要超出父布局,需要在其祖父布局上设置android:clipChildren="false"(而不是父布局)如图布局文件如下<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" andro...

2020-07-16 11:33:19

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 博客之星
    博客之星
    授予通过"CSDN博客之星评选"中脱颖而出的十大博客之星称号的用户。
  • 1024超级勋章
    1024超级勋章
    授予原创文章总数达到1024篇的博主,感谢你对CSDN社区的贡献,CSDN与你一起成长。
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享王者
    分享王者
    成功上传51个资源即可获取