首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    常见的ID生成策略 – IdUtil – Hutool的ID生成工具

    本页目录 IdUtil案例 常见ID生成策略 UUID ❄️雪花算法(我觉得了解再多,还得是万能的雪花算法❄️) MongoDB唯一主键 Redis自增主键策略 IdUtil案例 演示了:UUID、nanoID...生成工具,就在这里统一搜集整理一些常见的ID策略 常见ID生成策略 UUID 案例:144985ec-458d-49c5-8338-ba325eca5322 特点:无序、数字与小写英文、长度36位 缺点...:无序、长度太长,超低概率可能会重复 ❄️雪花算法(我觉得了解再多,还得是万能的雪花算法❄️) 特点:纯数字、自增、每秒26万个ID、长度19 雪花算法是推特公司开源的工具:想了解前往本站:https:...一个是机器ID,另一个是数据中心ID(两个ID均是数字)。 保证线程安全,务必获取单例对象!上文案例就是单例对象,随便使用!...MongoDB唯一主键 这里是Hutool工具集成的MongoDB唯一ID生成,我才了解的。

    11.2K10

    Android旁门左道之动态替换系统View类

    导语 本文讲述如何通过替换系统View类的方法,定位一个特殊机型问题 作者: yarkeyzhang  2017.6.29 一,ImageView抛来一个异常 应用程序Crash是Android App...然而有一些Crash却显得没那么直接,比如下面这个由Android系统抛(throw)出来的异常。...这里我想到了一个思路:能不能重写ImageView.onDraw()方法,在出现异常时打印出所有我们需要的日志信息(比如view id) 三、往LayoutInflater下手 重写ImageView.onDraw...对象,TextView标签实际上创建了android.support.v7.widget.AppCompatTextView对象,这是通过LayoutInflater.Factory来影响View的创建实现的...,帮我复现了问题并抓了日志,最后找到了Crash的ImageView信息,通过view id便可以找到了出错的点。

    2K70

    详解Android View的事件体系 之View基础(一)

    前言 掌握View的事件体系是Android 向高级迈向的必经之路,本片博客讲解Android View的相关基础知识第一部分,后面我们会为大家讲解基础知识第二部分、VIew事件体系、View事件分发等知识内容...1.View基础 1.1 什么是View 简单的说View是所有控件的“祖宗”,无论TextView、Button、Linearlayout,还是ListView、RecycleView,他们的基类都是...View 1.2 View 坐标 View坐标是相对于View的父容器来讲的,View看作一个矩形,则View的左上角坐标为(left,top),Vew的右下角的坐标为(right,top),View如果发生改变...,这四个值并不会发生改变,改变的是View的偏移量,坐标系如图1所示。...-  getTop(); 在我刚开始接触Android的时候,在我想象中的样子View的坐标为图2 所示,莫名的感觉图2更符合我的思维习惯。

    72060

    Android面试高级:内存泄露,OOM,ANR ,Devik 进程,Framework原理,Activity 生成一个 view,Android 中的动画,SurfaceView和View的

    是如何生成一个 view 的,机制是什么 Framework是android 系统对 linux kernel,lib库等封装,提供WMS,AMS,bind机制,handler-message机制等方式...Activity 创建一个 view 是通过 ondraw 画出来的, 画这个 view 之前呢,还会调用 onmeasure方法来计算显示的大小....Android中就是这样的,Android的主线程就是这样的,在一个whlie循环里打转转。怎样打转转的呢?...我们在myActivity.onCreate()里面有一行,setContentView(View),这行是要我们把自己写的布局传进去。无论是布局id还是直接一个view都是一样的,不做过多解释。...到此应该对Android整个App的启动有个基本的认知了吧。 Android 中的动画有哪几类,它们的特点和区别是什么 视图动画,或者说补间动画。

    53010

    详解Android View的事件体系 之View基础(二)

    前言 掌握View的事件体系是Android 向高级迈向的必经之路,本片博客讲解Android View的相关基础知识第二部分,后面我们会为大家讲解View事件体系、View事件分发等知识内容。...,新建一个继承自View的类,同时让这个类实现GestureDetector.OnGestureListener接口,我们可以看到该接口复写了下述方法 @Override public boolean...,我们在方法中打印Log,当我们的手指在View上长按之后打印日志如下: ?...();在View的onTouchEvent方法中添加:velocityTracker.addMovement(event); 首先要计算速度,计算速度传入计算的时间差值,那么求得的速度就是每像素/时间差...有view坐标系可以知道,如果在x轴从右向左滑动,那么计算出来的速度为负值。不适用的时候使用clear方法和recycle方法进行内存回收。

    73430

    Android View的Touch事件分发

    先看View的Touch事件分发,我自定义一个View,重写OnTouchEvent函数,然后分别设置OnTouchListener和OnClick: ? ? ?...这时候执行的顺序如下: OnTouchListener.DOWN ->OnTouchListener.MOVE-> OnTouchListener.UP 这里验证了我的猜想,可以得到如下结论 View...通过上面两个结论我们验证了我们的优先级猜想 View的Touch事件分发,执行的优先级为OnTouchListener > onTouchEvent > onClick,如果前两个任意一个地方返回true...接下来我们从源码的角度分析,首先我们需要知道,你点击或者或者触摸任何一个View 都会调用 dispatchTouchEvent()函数,我们就从这里开始分析源码: /** * Pass the...这样View的OnTouch事件分发机制就分析得差不多,具体的判断细节等还是需要自己查看源码。

    1.4K20

    android动态拼接生成界面 ,大量界面

    类型id(这个字段要用什么控件显示)  isRequired 是否必填 defaultValue默认值  row   col  行列   dicid关联字典表数据 核心的就这些   这个根据自己的具体业务再搭建自己的数据库表结构...2.搭建界面 有了基础数据后,我们要做的就是写一个通用Activity去动态拼装整个界面  我实现的思路是这样的 :将每种类型的控件都单独写成xml,比如有15种类型的控件就写15个xml,根据字段类型判断加载哪种类型的...; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RadioButton...; import android.widget.RadioGroup; import android.widget.TextView; /** * Created by zlw on 2017/6/...这样就实现了动态拼接app界面,不用重复性的写大量的界面,当然一般app是没有这么恶心的功能的...但我还是贴出来,希望能帮到后面入坑的同学.... 这个由于直接在项目里面写的,不容易抽剥代码。

    2.6K20
    领券