- 博客(75)
- 资源 (1)
- 收藏
- 关注
原创 js数组初始化时 fill 填充的小bug
数组初始化代码如下:const arr = new Array(3).fill([])const arr2 = [[],[],[]]console.log(JSON.stringify(arr)) //输出:[[],[],[]]console.log(JSON.stringify(arr2)) //输出:[[],[],[]]console.log(arr==arr2) //输出 false !! 明明stringify打印出来的内容都一样,为何这里却不等?var arrIndex = 0
2022-01-19 14:15:50 876
原创 直观理解Java泛型的子类型
------------Java泛型的子类型问题-------------存在对象及容器两个问题1,对象类型的子类型,比如:苹果是不是水果的子类型?2,容器类型的子类型,比如:一盒苹果是不是一盒水果的子类型?--------------继承与指针----------------子类型问题的根源在于继承子类继承基类后,子类除了拥有基类的一切外,子类还有自己仅有的部分属性举例:苹果继承了水果,苹果拥有水果的所有属性,但还有自己的属性,比如苹果的酸甜子类型问题具体表现在..
2020-09-02 23:51:02 1160 2
原创 Kotlin密封类与枚举类的应用场景
两者较为接近,往往同一个功能两者均可实现,但是语言的设计者是有区分意图的。我理解如下:密封类陈列该类的多种子类,也即每个子类都继承自该密封类 用于分辨一个实例的所有可能类型枚举类陈列该类的多个实例,也即每个枚举都是该枚举类的实例 用于分辨同一个类型的多个实例举例:判断一个班的成员:张三,李四,王五。此刻使用枚举判断一名学生的成分:群众,班干部,团委干部。此刻使用密封类...
2020-05-24 01:04:31 766
原创 Kotlin对象的生成方式整理
Kotlin中可能有如下几种生成对象的方式1,对象表达式val myObject = object { } //匿名生成,赋给变量,或作为匿名对象使用一个最简但完整的示例:open class A(x: Int) { public open val y: Int = x}interface B { /*……*/ }val ab: A = object : A(1), B { override val y = 15 var x: Int =...
2020-05-19 01:40:39 2238
原创 在多个Android项目工程中共享一个库模块
我们可以把库模块做成一个jar,由多个项目工程引用。不过有时我们会希望以源文件源项目的方式来引用库模块,这样可以对库模块文件临时做修改调试等等。我们首先建立两个最简项目工程,其一叫MyProj1,其二叫MyProj2Lib,假定现在我们已经建好了,每个工程里面各有一个app模块。接下来我们在MyProj2Lib中增加了一个mylibrary库模块,方法是File-->New--
2020-05-06 01:17:31 3308
原创 Kotlin函数类型的实例化
三种函数格式1,函数字面值1.1,Lambda1.2,匿名函数2,反射引用普通函数3,实现函数类型接口的类首先定义一个需要函数作为参数的函数fun myFunIns(data:Int, myFun:(arg:Int)->Int):Int{ return myFun(data)}这是第一种格式,即函数字面值的Lambda表示法...
2020-05-05 20:22:33 1266
原创 Promise+then实现异步串联
我们所有一切的目的都是:象写同步一样写异步。类似:RunAsync.add(new Task())//task1 .add(new Task())//task2 .add(new Task())//task3 .start();我们希望task1完成之后task2再启动,task2完成后task3再启动,也即异步串联。示例:Promise+then实现异步串联...
2018-03-30 17:58:27 3242
原创 JavaScript模拟局部变量整理
在ES5中变量边界有两个,一是全局范围,二是函数范围,没有一般语言的作用域范围,比如{ var a = 1;}console.log(a); //1上面会输出1,然而我们希望a仅仅局限于自己最近的括号内,而在括号外为未定义undefined,也即一般编程语言的局部变量。本文是学习ES5时整理的模拟局部变量的奇巧淫技,现在看来相当于是回字的x种写法,已经无任何意义。因为在ES6中终于引入了le...
2018-03-30 17:35:58 234
原创 历史演变有助于理解css布局的本质
最原始的文字布局应该类似古代手工书信,可能是1、每个单词只占最小空间,向左顺序排列2、排到页面右边缘后换行3、回车则结束一段,并新起一段,然后重复1和2整理1、段内部的向左顺序排列形成一条向左流。所谓流,就是内联;2、每次回车新启一段,且每一段占完整的一行,每个段形成一个块,并且上面的块和下面的块形成一条向上流,也即向上的内联;以上,是最初的文字布局,并且形成了最基础的概念:流、内联、块。加入图片...
2018-03-30 01:52:21 521
原创 工作量证明怎样突出多数共识
(这篇博客陈诉顺序不好,应该先写最后一个两军对垒退化案例,再写投票案例,最后再说区块链共识。所以阅读时请先看最后,再看中间和前面)区块链系统的特征是分布式、去中心化,能够逐步形成共识,并持久地堆积共识。由于去中心化,意味着每个节点完全由不同的人或组织管理控制,在其中必定存在各种对立节点或恶意节点。那么这里最有趣的就是,怎样在分布的节点里面形成一条共识?当区块链支持比特币时,诚实节点的共识主张可以具...
2018-03-30 01:37:49 587
原创 Parcelable, Serializable,Cloneable,copyProperties
存在着三件事,整理如下 Parcelable, Serializable(包括Externalizable+transient) -------压缩成字节流,再恢复成同类对象 Parcelable手工将字段放入Parcel字节流,无反射Serializable使用反射来发现字段及辅助信息Serializable使用Stream或ArrayByte之类
2017-10-24 00:33:45 671
原创 用TextWatcher限制输入长度并弹出提示
在EditText里面输入,限制输入长度并弹出提示,原本,这是最初级和普遍的需求了,但在细微处却有点小不方便。 方法之一,是在xml中添加限制:maxLength="10"。但是,当用户输入达到或超过限制时没有提示。 方法之二,给EditText添加TextWatcher监控,在输入超过限制时给予提示,并恢复为之前的状态。给予提示很容易,但怎么恢复为之前状态却需要小心。 另
2017-10-24 00:28:57 1462
原创 用RxJava和RxBinding发射用户点击
在初步应用RxJava时发现,网上资料中Observable的创建例子主要使用create/just/from,都是将现在已有的数据序列整理为一个发射器,而我们最常见的应用却是现在没有数据序列,等待将来数据序列的到达,比如等待用户点击或输入,或等待网络来包,也即,我们其实需要一种手动的发射器,在数据到达后用来发送这些数据。那么怎样创建这种发射器呢?查询资料后发现有几个途径,下面用点击textvie
2017-08-05 23:15:13 743
原创 最简单易懂的dagger2示例
在网上搜了很多资料,包括官网,都看不懂,基本打算放弃了。何况从功能上看,用inject替代new,似乎提升不大。最后时刻这篇博文拯救了我:https://zhuanlan.zhihu.com/p/24454466 。此文完全抛开了其他博文涉及的Android+MVP等复杂构架,是最简的纯java案例,我一下子就看懂了,可能就10分钟,我就实现了0->1的转化。其他博文也写得很用心,但写得都
2017-08-04 02:03:04 505
原创 从可视角度理解px、pt、dp
三个长度单位都根源于人眼的最小可视角度,根据这个角度和目标距离确定最小可视颗粒度尺寸。人眼的最小可视角度是不变的,目标距离越远,则这个颗粒度尺寸就越大,否则人眼会分辨不了。比这个颗粒度尺寸小一个数量级的度量单位没必要定义,因为人眼看不见,用不到
2017-01-05 22:10:50 1092
原创 Material Design风格中CoordinatorLayout、Behavior和nestedScroll的整理分析
现象与分解 Material Design中一个神奇的设计是,抹动一个子view甲时,子view乙与子view甲一起滑动 可以想象一下,其实现过程必然是 子view甲向父ViewGroup申请滑动 父ViewGroup将部分滑动距离交给子view甲,部分交给子view乙 子view甲和乙同时滑
2016-07-15 02:12:22 1357
原创 Android触屏事件处理流程的最简整理及应用示例
Android系统view层次结构如下。注意Fragment和ViewGroup可能交错Activity Fragment ViewGroup View整理 当Activity收到event后,通过dispatch方法逐层下发 最下层通过onTouchEvent方法逐层向上反馈是否消费
2016-05-01 01:35:30 2237
原创 写一个Android日历控件
日历是一个常用控件,一般而言我们会通过两种途径来得到,其一是Android原生控件CalendarView,其二是在网上找一些第三方的日历控件。但这两种都有同样的不足,也即不好自定义,比如添给某段日期加个标记,或加一个中国农历,等等。最佳的,是自己写一个,可以完全自定义,无论以后项目怎么扩展,自己心里都有底。分析一下,日期本身是”年月日“,但我们要写日历,最重要的是“周”,只要我们能够
2016-05-01 00:38:45 2362
原创 整理了一个 android 上的波形图及柱状图绘制控件
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-01-13 00:50:55 7408
原创 View中OnClickListener对onTouch的影响
测试代码 mTextView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction
2015-12-23 19:59:38 1086
原创 从程序员的角度看产品经理的逻辑与设计能力
第一个层次,搞清楚每个产品模块的内部逻辑。举例:注册与登录模块,输入模块,选择模块,搜索及显示模块。第二个层次,能将业务逻辑整理得清晰流畅。举例:一次用户的业务操作及结果流程,理清操作次序与分支的由来,动作与结果的逻辑关系等等。第三个层次,有自己的想法,在每个地方展现独特的品味与取向,而不是common sense。通常而言,第一个层次说明产品设计开始入门了,第二个层次说明产品
2015-12-19 00:56:48 1178
原创 纯技术之外的产品工作经验
完成产品的技术相关能力可能有如下三层: 层级一,局部模块的技术细节 这里包含所有各种厉害的纯技术技巧 层级二,把系统运行流程理顺 举例,同一个问题,可以后台解决,也可以前端解决。无论谁,不能推卸,也不能主动接,而是要从系统的总体上理顺,在后台和前端直接恰当分配问题 如果发现没有理顺,就先不要做
2015-12-02 20:47:31 432
原创 微小团队使用git进行合作开发的最简模式
1,程序员A在本地及远端维护自己的master和dev,程序员B在本地及远端维护自己的master和dev。2,当程序员B想合并A的最新版本时,pull或fatch程序员A的远端的master,反之类似。3,管理员维护一个master分支,用作release。4,当程序员A想提交稳定的新代码给管理员时,先和管理员的master进行merge,然后发pull request给管理员,管理
2015-08-24 13:51:01 1110 1
原创 在Fragment、Activity及Application生命周期中保持数据的文摘整理及部分结论
在Fragment、Activity及Application生命周期中保持数据的文摘整理及部分结论问题梳理 待保持的数据 View状态 属于fragments的数据 属于Activity的数据 属于app的数据,比如某个class里面的static数据 在如下
2015-06-23 01:49:12 1671
原创 Android源码Transition.java中发现一个小bug
最近两天正在看Scene+Transition部分,感觉这部分挺有空间可挖。该部分的功能是,在同一组ViewGroup结构的两个不同状态之间做动画切换,这有助于用户知道某一个状态的由来。更进一步,在这组ViewGroup结构中,可以选择部分view做动画切换,部分则不。这是个有趣的功能,所以写了小段代码测试。选择view可以多个方法,比如直接指定view,通过view的id,名字,或种
2015-04-06 13:43:11 943
原创 Android布局动画梳理之LayoutTransition源码追踪
Android系统的布局动画可以按如下脉络进行梳理1、按时间点分类 版本4.0之前可能没有,4.0或以上有LayoutTransition,4.4.2或以上有scenes+transition2、按动作划分 child自身的动画 child移动的动画3、按涉及的部件划分 ViewGroup或其子类 La
2015-04-03 06:54:45 1803
原创 不等宽子view自动换行的窗口(auto wrap viewgroup)
需要一个窗口来显示一堆不等长的TextView,这些子view横向顺序排列,超出窗口宽度则换行。在“cn.bing.com”上使用关键字“自动换行viewgroup”进行搜索,发现最前面6~7个搜索结果都来自同一篇博客的转载:http://www.cnblogs.com/slider/archive/2011/11/24/2262161.htmlhttp://blog.csdn
2015-03-16 16:46:38 1135
原创 修改Adapter实现GridView列表中的增加按钮
如下是常见的GridView,红色是显示的图片,绿色加号是增加图片的按钮,如何实现这样的效果?第一个思路,是在数据list最后位置增加一个加号图片数据,但这样改动原始list数据的方法显然不好,牵扯很多。第二个思路,是在Adapter里面的数据list最后一个位置增加加号图片数据,但是,为了显示一个按钮而变动正常数据list总是不妥的。再有一点,Adapter中数据list的头指针
2015-02-14 14:47:59 2446
原创 光与色,混合与分解
话说宇宙之初,天地没有一点亮光,漆黑一片,伸手不见五指。。。。。突然,一个极点爆发,无数的物质,还有光,从这个极点喷发出来,向四周扩散,形成了越来越大的宇宙。有的物质,自己能够发光,有的物质,自己不能发光,但是能反射光。所以,宇宙中只有这样几样东西:发光体,光线,反射体。宇宙中只有两种状态:有光,没有光。没有光就是宇宙的本态:漆黑。以上是
2014-11-07 15:37:45 939
原创 我的第一个开源组件:一个抹出来的快捷菜单按钮
最近看到一种快捷菜单按钮,是按一个钮,在其周围弹出若干个钮,并排在圆周上。再按圆心处按钮则收回弹出的按钮。我认为这里值得改进的地方有:1、最初得有一个按钮浮现,这个按钮有点占地方。2、当用户放弃操作时,用户需要再按一下按钮来收回弹出的按钮。这个动作有点多余。我认为精简一个动作和少占一个地方都有极大的价值,所以我设计的快捷按钮是:1、平时不占任何空间,通过手势唤出
2014-11-06 23:44:31 720
原创 View及ViewGroup的布局方法及相互关系
两次遍历 第一次measure,测试child所需空间 第二次layout,给child安排空间方法之间的相互关系,重点是mesure和layout~~~~第一遍是mesure~~~~~~~~~~~View类 mesure()设置为final,禁止被派生类override onMesure
2014-10-15 00:36:09 2294
原创 Android官方ApiDemo中animation部分代码要点整理
ApiDemo动画代码技术点整理AnimationCloning clone AnimatorSet,也可以cloneAnimationLoading XML定义animator ValueAnimator和ObjectAnimator的XML定义不同,后者要提供属性名AnimationSee
2014-10-13 16:47:56 1276
原创 代码及UI价值观
代码价值观1、程序是给人看的,性能优化是编译器的事。2、直观胜过精妙简洁。3、帮助直观的注释是作品的一部分。UI价值观1、直观胜过唯美,哪怕是简约之美。
2014-07-16 16:01:00 527
原创 向监听类传递参数
我们给按钮设置监听器时,我们有可能希望给监听函数一个参数,或让该监听函数能够操作外面的变量,如下是一种愿望:@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { fragmentView = inflater.i
2014-03-13 16:42:45 2522
原创 在notification中设置PendingIntent
在android屏幕的通知栏中增加notification,以显示mediaplayer控制面板点击控制面板的按钮将发送intent来控制mediaplayer这些intent将以PendingIntent的形式绑定到控制面板上的按钮上不能工作的代码:public void sendNotification(int status) { if (playingFile
2014-03-06 03:28:44 10116 3
原创 Low Memory状态下app状态的恢复
app结构 activity带有ViewPager ViewPager上带有4个fragment这是非常典型的结构操作过程 点icon打开app 点击home键隐藏app 再次点击icon唤回app 点击home键隐藏app 开启多个其他app,要很耗费内存那种 点击home键隐藏这些app
2014-02-27 15:35:37 2059
原创 android横竖屏切换与activity的销毁重建
activity在什么情况下被销毁? 用户按回退键 调用finish 放在回退栈中太久 横竖屏切换前面两种情况下 系统会认为用户不再需要这个activity了,所以在销毁时不会做任何事 没有任何浏览方法能倒回去,只能再次启动该app在第三、四种情况下 用户可以通过回退键或其他方式浏览回去
2014-01-25 03:20:29 4789 4
原创 常用git命令整理
<!— 本文是git命令整理,git的简明工作流程在:http://blog.csdn.net/max2005/article/details/47949595 --> 花了一点时间来熟悉和整理git常用命令。 推荐的git学习资料:1、搜“Git Community Book 中文版.pdf”,git社区书,内容全面且简明扼要,第一推荐2、搜“Git权威指南....
2013-12-16 16:55:57 8575 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人