自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 RecyclerView缓存

先来温习一下RecyclerView的滚动和回收机制:RecyclerView之所以能滚动,就是因为它在监听到手指滑动之后,不断地更新Item的位置,也就是反复layout子View了,这部分工作由LayoutManager负责。LayoutManager在layout子View之前,会先把RecyclerView的每个子View所对应的ViewHolder都放到mAttachedScrap中,然后根据当前滑动距离,筛选出哪些Item需要layout。获取子View对象,会通过getViewForPos

2020-07-30 11:34:33 162

原创 android常用分层架构

2019-06-18 14:06:39 1367

原创 About IPC

IPC : Interprocess Communication 进程间通信linux 现有的IPC方式:管道: 就是一个缓冲区,在创建时分配一个page(4k)的内存,存入后一次性读取,读完即释放,会阻塞,本质是文件结构消息队列:A进程向队列带有类型的数据块,B进程从队列里取该类型的数据块,可以有选择的接收,存在信息复制,有额外的CPU消耗,不适合大信息流通信共享内存:...

2019-05-29 14:49:50 110

原创 Java

StringBuffer是线程安全的 ,因为方法都加了sychronize ,效率也就低Java 6 的 String的intern , 把字符串缓存了, 但是是存在PemGen里, 空间默认4m, 而且不会非fullGc回收, 所以Java 8 就改回到JavaHeap里了 ,这里有个典型的 new String(“a”) 和 “a” 的比较问题, 关键是 intern() 的j...

2019-03-31 16:24:41 121

原创 Android 8.0 和support library 26

Andorid 8.0多个与电话有关的新权限: ANSWER_PHONE_CALLS 允许您的应用通过编程方式接听呼入电话。要在您的应用中处理呼入电话,您可以使用 acceptRingingCall() 函数。 READ_PHONE_NUMBERS 权限允许您的应用读取设备中存储的电话号码。 这些权限均被划分为危险类别,属于 PHONE 权限组。指纹手势独立的音量调整画中画模

2018-01-09 16:01:10 1569

原创 Java 并发笔记

减少上下文切换(上下文切换:CPU在多个线程间切换执行)途径: 无锁并发编程:将数据的ID按照hash算法取模分段,不用线程处理不同段的数据;CAS算法 ::Compare and Swap 原理是CPU的cas指令, 通过缓存锁,保证操作的原子性, 例如 i++, 局限是只能保持一个变量的操作原子性 缓存锁与总线锁相比,优势在于,总线锁将CPU和内存

2017-11-07 19:24:06 259

原创 OKHTTP和Retrofit

基本网络基于NIO和Okio NIO 就是 new IO,java 1.4之后采用的IO方案, 支持Buffer读写 OkIO 核心也是Buffer读写,内部使用了一个Segment和SegmentPool,维持着一个链表,其循环利用的机制和Android中Message的利用机制是一模一样的Segment Buffer的写操作,实际上就是不断增加Segment的一个过程,读操作,就是不断

2017-08-29 19:35:33 632

原创 java 笔记

内部类访问外部为什么要finaljavac 在内部类初始化的时候 capture 了一份外部类的值,而不是引用,此时内部类形成了一个闭包所以如果当外部的引用发生了变化,内部却不会改变 ,这明显会引发矛盾, 所以直接用final,不让你改变

2017-06-21 16:22:46 149

原创 Kotlin 笔记

创建单例data class Customer(val name: String, val email: String)过滤 list[] val positives = list.filter { x -> x > 0 }或者 val positives = list.filter { it > 0 } 此处 it 是迭代器 if not null 执行代码val data = ……

2017-06-21 16:19:32 189

原创 JavaScript ----JQuery

1. blur与focus 和 focusin事件与focusout 区别: 事件冒泡: focusin 和focusout 支持事件冒泡,即 如果当前元素没有被添加事件,那就一直查询父元素, 直到查询到事件消费 而 blur 与focus 并不会查询父元素; <h4>.focusin与blur</h4> <div class="left"> <div cl

2017-05-12 09:13:38 325

原创 RxJava相关

1.关于map和flatMap 此时 如果用map getDetailAddressList(assigned) .subscribeOn(Schedulers.newThread()) .map(new Func1<BaseResponse<List<UserAddressEntity>>, Observable<UserAd

2017-04-25 14:10:53 213

转载 是Android网络优化

作者:Trinea 链接:https://www.zhihu.com/question/29466887/answer/46062817 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。一个网络请求可以简单分为连接服务器 -> 获取数据两个部分。其中连接服务器前还包括 DNS 解析的过程;获取数据后可能会对数据进行缓存。一、连接服务器优化策略1. 不用域名,用

2017-03-03 16:45:20 181

原创 高效获取联系人列表

ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String, Object>>();ContentResolver cr = getContentResolver();HashMap<String, ArrayList<String>> hashMap = new HashMap<String, ArrayList

2017-03-03 16:26:58 253

原创 有关 LayoutInflater.from(mActivity).inflate(R.layout.board, null);

此处如果传null,lint 会有警告, 一般如果用View.inflate(),警告会解除,但事实是被suppresses the warning, 根本原因是:如果传null,相当于告诉LayoutInflater 你不知道这个view的父母是谁,而如果运气好的话(一般情况下都是),该view 的默认的参数和xml里写的参数相同,但如果不同,xml里的根布局属性将丢失; 常见的错误写法:

2017-01-09 15:02:22 1065

原创 Android 6.0 权限

常规权限不需要特别处理,危险权限就需要处理一下需要动态申请的 的危险权限:android.permission-group.CALENDAR(日历数据) android.permission-group.CAMERA(相机) android.permission-group.CONTACTS(联系人) android.permission-group.LOCATION(位置) android

2016-12-19 16:51:17 202

原创 Android Studio 笔记 常见属性 style等

常见属性记style android:windowNoTitle 设置有没有标题栏true|falseandroid:windowFullScreen 设置全屏true|falseandroid:windowIsFloating 设置是否浮现在activity之上true|falseandroid:windowIsTranslucent 设置window是否为透明androi

2016-12-15 09:36:35 1076

原创 Fresco使用笔记

1.常用xml定义: 命名空间 不引对 没提示 xmlns:fresco=”http://schemas.android.com/apk/res-auto” android:layout_width="100dp" android:layout_height="100dp" android:layout_centerInParent="true

2016-11-07 20:03:16 200

原创 若干常用插件原理

ButterKnife技术核心是APT(编译时解析技术) javaPoet RxJava 核心类:AbstractProcessor就是用一个targetClassMap,k是class, v是ViewBinder编译时解析流程: 1.扫描所有具有注解的类,然后根据这些类的信息生成BindingClass,最后生成以TypeElement为键,BindingClass为值的键值对。 2.循

2016-10-18 18:13:29 187

原创 Volley

Volley的核心 是两个队列 :CacheQueue和NetworkQueue; Request先添加到CacheQueue里,然后被CacheDispatcher轮询,查到如果有缓存,就直接解析出respons对象,没有哦就添加到NetworkQueue中,被NetworkDispathcer轮询,**默认有4个NetworkDisatcher来轮询**NetworkQueue,每个Dispa

2016-10-14 23:30:57 131

原创 Something New

Android 7.01**.instant apps** : 引入了不用下载就能用的概念2.无缝自动更新3.VR :Android Nougat将会是谷歌充分执行其VR计划的操作系统,它内置谷歌的全新VR平台Daydream。Daydream是一个虚拟现实平台,由Daydream头盔、手柄和智能手机构成4.多窗口多任务处理 5.通知栏: 捆绑通知 , 通知栏回复省电省流量 相比And

2016-10-13 14:21:27 264

原创 Socket 和Http

先简单一句总结; http一般就是A端向B端 送个信儿,然后回来,没了。 而socket是双向的,都能发信息,Http是一个应用层协议(负责数据如何包装),基于TCP/IP(传输层协议。负责数据如何传输),协议的意思就是大家规定的数据传输的规范, 它是基于请求-响应s模式的 短连接,是无状态的协议, 所谓无状态的协议,就是无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需

2016-10-11 12:06:28 217

原创 事件分发

先是ViewGroup 的dispatchTouchEvent,里面会执行onInterceptTouchEvent,会触发DOWN事件,如果不拦截,就继续往子View传,不走MOVE和UP,如果拦截就走MOVE和UP,消化掉事件,而且此处 如果在DOWN事件中 return true,子View都不会接收,但是 如果在MOVE中return true,而DOWN中是false,那子View的DOW

2016-10-11 11:41:04 188

原创 Java注解 和动态代理

元注解:1.@Target:作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)  取值(ElementType)有:     1.CONSTRUCTOR:用于描述构造器     2.FIELD:用于描述域     3.LOCAL_VARIABLE:用于描述局部变量     4.METHOD:用于描述方法     5.PACKAGE:用于描述包     6.PARAMETER

2016-10-08 17:22:08 1005

原创 GUI原理笔记

主要组成部分:窗口和图形系统 - Window and View Manager System.显示合成系统 - Surface Flinger用户输入系统 - InputManager System应用框架系统 - Activity Manager System.此处应先该概括Android的启动流程:

2016-09-30 21:45:02 345

原创 python笔记 ---蛋疼的 动态类型+强类型语言

基础篇List tuple(元素不能改变的list,但是指针指向可以变) Dict(就是map) ;set:s = set([‘A’, ‘B’, ‘C’]) (特点:去重,无序) 切片 : L[0:3], 包头不包尾, 切了3个元素的列表出来 ```L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> L[-2:]['Bart', 'Paul']>>

2016-09-24 13:58:15 1089

原创 Android调优笔记

1.Image相关1.ImageLoader 在onDestory中执行其 clearMemoryCache方法清缓存 2.bitmap 记得recycle(); 3.大对象,生命周期又比较长,用软引用包裹2.Fresco特点: 三级缓存(1).Bitmap缓存:在5.0后,Bitmap缓存在堆中,而在早期版本中,是在ashmen(Anomouus Shared Memory)...

2016-09-21 14:15:52 270

原创 关于getMeasureHeight和自定义view

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-09-20 11:26:28 356

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除