Jfson‘s blog

慢慢来,比较快

Android ANR

系统如何监听ANR ? ActivityManagerService中在产生ANR的时候,会回调到AMS的appNotResponding()方法; 1234567891011121314151617181920212223242526272829303132333435363738// firstPids与lastPids将记录将要dump线程堆栈信息的进程号,其中firstPids会优......

Kotlin 相关

为什么要用? 官方的Demo 基本都是kotlin,可以相互转换,相互调用 Java 替代语言,更简洁,清晰 null 安全检测,延时初始化 避免了findViewbyid() 协程 ?原理 扩展函数和属性。譬如对String进行扩展 数据data类,自动生成get,set 用类委托来快速实现装饰器模式,不用接口类实现所有的方法();类似Animator.Listener Lambda表达......

《开篇》1. 从何入手开始刷题的?

万事开头难开始之前捋一捋我的收获跟思路。 万事开头难,一开始着手做算法的时候,想必大家跟我的困惑是一样:我的算法不好,我怎么来开始?在大量的search 之后结果告诉我,大概有这么几种: a. 不用怂,就是干,按着推荐的顺序来做就ok *b. 按照 分类 tag 来进行 *c. 按照难度先做 Easy 难度的,再去做 Medium 、 Hard 等 那么看完这些,还是纠结拿不定。于是又......

Android 总结5-IPC

IPC Android 的进程间通信就是 Binder. Android 中一个应用中的多进程: android:process 属性,给四大组件在AndroidMenifest中指定process即可。一般不这么干,在push中使用较多。 多进程带来很多问题: a.静态成员和单例模式完全失效 b.线程同步失效 c.SharedPreferences失效:不支持多进程同时执行写操作......

Android 总结4-四大组件

Activity 1.Activity生命周期(A)onPause→(B)onCreate→(B)onStart→(B)onResume→(A)onStop (1)一个Activity或多或少会占有系统资源,而在官方的建议中,onPause方法将会释放掉很多系统资源,为切换Activity提供流畅性的保障,而不需要再等多两个阶段,这样做切换更快。 如果如果Activity(A) 切回桌面......

Android 总结3-动画

View动画View动画定义了渐变Alpha、旋转Rotate、缩放Scale、平移Translate四种基本动画,并且通过这四种基本动画的组合使用,可以实现多种交互效果。View动画使用非常简单,不仅可以通过XML文件来定义动画,同样可以通过Java代码来实现动画过程。 1234567891011121314151617//xml实现<?xml version="1.0&q......

Android 总结2-线程

1.Android 中的多线程 1.继承Thread 2.实现Runnable 3.Handler 4.AnsyTask 5.HandlerThread ActivityThread 为 Android 主线程 2.AnsyTask AsyncTask 最好在主线程中初始化。因为AsyncTask需要Handler来将执行结果回调切回主线程,Handler 中Looper.getMainL......

LeetCode 61.Rotate List (Medium)

LeetCode 61.Rotate List (Medium) 12345678910111213141516Given a linked list , rotate the list to the right by k places , where k is non-negative Example 1: Input: 1 -> 2 -> 3 -> 4 -> ......

EventBus分析

EventBus观察者模式订阅后,对类,方法进行反射发送消息。并且支持订阅线程可配置。 123456789101112131415161718192021222324252627282930313233343536private void postToSubscription(Subscription subscription, Object event, boolean isMainThr......

Android总结1-View

​ 附上大量自定义View出现的时候,如何解耦 1.View 什么是View a. 所有View控件:TextView,Button等等 b. 所有ViewGroup(容器):RelativeLayout,LinearLayout。是容器也是View View 事件 MotionEvent:ACTION_DOWN、ACTION_UP、ACTION_MOVE ;手势的落下,抬起,......

LeetCode 20. Valid Parentheses (Easy)

Stack 视频讲解地址 LeetCode 20. Valid Parentheses (Easy) Given a string containing just the characters ‘(’,’)’,’{’,’}’,’[’ and ’]’,determine if the input string is valid.An input string is valid if: 1......

LeetCode 《开篇》

LeetCode 《开篇》 《开篇》 PS: 先更文章,后续更新每道题目详细解读 & 视频通过大概10道题来熟悉,常见的算法题类型:Array ,String,Stack,LinkList,Tree,Dynamic Programming,DFS/BFS,Backtracking,Greedy,Divide and Conquer 本文中的算法题大概需要2-3周来完成 1.Arr......

Daily 2018-12-8

​ 今年诸多事导致太懒惰,从提交记录来看,差了很多,尽管自己也很讨厌,可心态还是又老了一点,做很多无用的事,屯不喝的酒和茶。 ​ 压力大的时候总想去趁周末爬爬山,浪一浪,以为可以放松,回来后还是老样子。解决焦虑的唯一途径就是实现目标。可时间浪费在规划上,言多行少,目前来看,也算有点成效,两个月时间 Rank 100000+ 到现在排名上升6000+。可远远不够…下班到家很累啊,还......

SVGA 源码

SVG 概念 SVG 实际上指的是设计软件中的概念:SVG图片格式,一种矢量图形。 另一个角度来讲一张图或者一个动画,是由很多上下层级的图层构成。比如当前的简单的图,看到的是一张图,但在设计工具中是三个图层构成,有着不同的上下层级顺序。 SVGA成本 SVGA目不支持种类: 不支持复杂的矢量形状图层 AE自带的渐变、生成、描边、擦除… 对设计工具原生动画不友好,对图片动画友好(适合映......

TextView如何优化

大量文本刷新时,性能出现瓶颈,譬如:直播中的聊天 绘制 和 measure 时间比较长 优化 1.节省 measure 时间,Android有很多用于文字展示的控件,但实际上,他们都用text.Layout进行渲染。例如,TextView会将String转化为一个text.Layout对象,并通过canvas API将它绘制到屏幕上。由于text.Layout需要在构造函数中测量文本的高度,......

观察者模式

当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 一个很经典的例子,上传文件,成功的时候,需要通知给多个位置发送上传成功消息示例。 1.JAVA 中已经有了对观察者模式的支持类。 2、避免循环引用。 3、如果顺序执行,某一观察者错误会导致系统卡壳,一般采用异步方式。 12345678......

Android系统层次框架结构

由低到高:linux核心层;系统运行库层;应用程序框架层;应用程序层 linux内核(Linux Kernel)硬件相关的,Binder Diver(IPC),Camera Diver,Power Diver等等 系统运行库层(Libraries) Android 相关: 虚拟机:Dalvik,Android 5.0(Lollipop)开始,Android Runtime(下文简称ART)......

匿名类优化

举例说明,通常对动画进行监听时的addListener需要对匿名类复写所有的回调监听,如果用一个实现接口类,去包一层,这时候添加回调监听时只需要Override需要的方法,大大增加代码可读性和简洁性,参考test()方法中的两种setListener方式。 往往只需要end回调时,避免了重写其他多余的方法 12345678910111213141516171819202122232425......

RecyclerView分析

Adapter RecyclerView LayoutManager ViewHolder RecyclerView.Adapter Datas ItemAnimator 、LayoutManager 等等这些模块都当内部类写在了一块 RecyclerView是一个ViewGroup,Adapter已经将Datas转换为RecyclerView所熟知的View ItemDecoration......

你为什么努力(by 韩路)

### 你为什么努力 by 韩路 (转载 ) 1你结婚了,不和父母住一起,有了娃之后,你更体会到了父母当年的艰辛,你想好好爱爱父母,而你从来没语言表达过爱,付出物质和行动是你传递爱的手段。 你也常问父母,反正你们也退休了,多出去玩玩啊!父母总是跟你说:哎呀,老胳膊老腿不爱动啦!怕出去没医院,慢性病加重不好治了啊! 有一日,你开车带父母去了郊区的一个度假村住了一夜,突然,你会发现,原来看似......

pv UV: