- 博客(15)
- 收藏
- 关注
原创 Flutter之Image源码分析
本篇文章已授权微信公众号 京东技术 独家发布Flutter之Image源码分析随着手机设备硬件水平的飞速发展,用户对于图片的显示要求也越来越高,稍微处理不好就会容易造成内存溢出等问题。所以我们在使用Image的时候,建立一个图片缓存机制已经是一个常态。Android目前提供了很丰富的图片框架,像ImageLoader、Glide、Fresco等。对于Flutter而言,为了探其缓存机制或者定...
2019-08-14 14:27:27 538
转载 Java字节码增强探秘
原文地址:https://mp.weixin.qq.com/s/Wa4JKQ5NAN_4_TVSO67ehQ1. 字节码1.1 什么是字节码?Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是
2021-06-05 15:40:58 176
原创 ASM字节码
ASM 主要有几个类需要了解 而且需要对 Java字节码 比较熟悉ClassReader 字节码的读取与分析引擎。它采用类似SAX的事件读取机制,每当有事件发生时,调用注册的ClassVisitor、AnnotationVisitor、FieldVisitor、MethodVisitor做相应的处理。ClassVisitor 定义在读取Class字节码时会触发的事件,如类头解析完成、注解解析、字段解析、方法解析等AnnotationVisitor 定义在解析注解时会触发的
2021-06-05 15:15:42 528 2
原创 Java并发编程个人理解
Java并发编程ThreadThread的几种状态NEW:线程刚创建还没startRUNNABLE: 线程正在JVM中执行BLOCKED: 当前线程正在等待monitor lock Synchronized代码块会让没获得锁的线程进入Blocked状态,Object.wait也会进入BLOCKED状态。WAITING: 等待其他线程唤醒。Locksupport.park会让线程进入w...
2019-07-23 15:02:28 268
原创 二叉树
二叉树一. 二叉树的概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree),其次序不能任意颠倒。(百度百科)二. 性质若二叉树的层次从0开始,则在二叉树的第i层至多有2^i个结点(i>=0);高度为k的二叉树最多有2^(k+1) - 1个结点(k>=-1)。 (空树的高度为-1);对任...
2019-07-19 16:39:57 218
原创 view动画原理分析
View动画使用view动画有缩放、旋转、平移、透明度等,都是继承于Animation类。我们掌握了一个类型的原理其他原理基本一致。都是通过Transformation 和 Matrix 实现各种各样炫酷的动画。ScaleAnimation scaleAnimation = new ScaleAnimation(0,1,0,1);scaleAnimation.setDuration(1000...
2019-07-12 15:29:08 361
原创 Service的基本概念
Service简介服务是四大组件之一,可在后台长时间运行,不提供用户界面,意识是系统不容易将其杀死,只有在内存不足或者省电模式下才会杀死。一个应用程序组件可启动一个服务,这个服务可以做播放音乐、计时操作等。Service的种类按照运行地点可以分为类别区别优点缺点应用本地服务(Local Service)该服务依附在主进程上服务依附在主进程上而不是独立的进程,这...
2019-07-09 15:11:54 968
原创 内存模型的理解
内存模型的理解为什么有内存模型计算器执行指令都是在CPU中执行的,而执行的时候需要和数据打交道,而数据是放在主存中的,也就是计算机物理内存,由于内存速度的写入和读取跟不上CPU的速度,导致CPU每次操作内存都要耗费等待时间。这样就增加了高速缓存,当程序运行过程中,会将运算的数据从主存复制一份到CPU的高速缓存当中,那么CPU计算的时候可以从它的高速缓存读取和写入数...
2019-06-04 09:55:02 302
原创 谈谈RecyclerView的LayoutManager-LinearLayoutManager源码分析
今天我们来好好谈谈LayoutManager的问题。前言LayoutManager是RecyclerView用来管理子view布局的一个组件(另一个组件应该是Recycler,负责回收视图),它主要负责三个事情:布局子视图在滚动过程中根据子视图在布局中所处的位置,决定何时添加子视图和回收视图。滚动子视图其中,只有滚动子视图,才会需
2017-04-19 16:09:34 3237 1
原创 RecyclerView完全解析@Hongyang
RecyclerView已经出现有一段时间了,但网上找了很久,并没有过多的介绍,还是鸿洋大神写的博客比较详细,我这里就按我的思路又加工了下。使用时,必须有support-v7包才可以使用。相比ListView,GridView之类控件,它有很多的优点,例如:数据绑定、Item View创建,View的回收以及重用等机制。RecyclerView控件和ListView的原理有很多相似的地方,都是
2017-04-19 13:21:03 1884 2
原创 Context都没弄明白,还怎么做Android开发?
Activity mActivity =new Activity()作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?估计很多人说不清道不明。Android程序不像Java程序一样,随便创建一个类,写个main()方法就能运行,Android应用模
2017-04-18 17:24:44 350
原创 Android 签名 重新打包
分享一下:给一个已有的apk工具重新打包生成新的签名:将原来的apk改后缀名改成zip,将zip包里的META-INF文件删除掉,重新命名为apk文件以下是生成签名的命令,注意路径问题重新签名命令1:使用android的keystore------ jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore F:\eclipse\sdk
2014-11-25 20:57:10 708
转载 Android中attrs.xml文件的使用详解
Android中在values中定义一个attrs.xml,然后自己定义一个组件MyViewattrs.xml内容如下:[html] view plaincopyxml version="1.0" encoding="utf-8"?> resources> declare-styleable n
2014-10-31 14:23:14 576
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人