自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android字节码的手术刀插桩初体验

本文有对其他博客的一些借鉴。我们都知道Dalvik虚拟机运行的是.dex文件。.dex文件又是通过.class文件通过dx工具编译而来。今天要体验的就是一个非常有意思的技术,字节码的插桩。大部分时候都会用埋点来介绍这个技术。原理就是,通过Transform这个类去获取项目中的.class文件。然后使用AMS提供的几个类去解析.class文件。通过对类名,方法名的判断,筛选出你需要修改的.c...

2020-04-15 16:01:48 744

原创 热修复的原理与实现的demo

算是记录知识的博客,所以精简为主。热修复分为两种:Java层修复,以QZone,Tinker为代表。需要重新启动后才能完成修复。Native层修复,以阿里系为代表。可以达成及时修复。实现demo用的是Java层的修复。java层修复的原理是通过类加载器的机制来实现——双亲委派机制。protected Class<?> loadClass(String name, ...

2020-04-07 14:10:16 170

原创 Flutter Widget粒子/沙化效果

这是一个让widget粒子化的效果,文章借鉴自掘金的博客。首先,大家一定要思考,如何去做才能实现这样一个效果,如何去实现最为简单。因为任何一个功能的实现方式一定是多样的,举一反三也是一件很有趣的事儿。首先考虑,一个widget里面肯定有多个child,那么最优的做法,一定是把widget的画面直接截下来,这样就无需管理它里面子child的事儿了。有了截图之后,要让它粒子化,那么我是需要去获取它每个pixel的颜色,之后让它们进行无规则运动。那怎么样才能拆分他们呢?答案是把他们放到不同的layer

2020-07-06 19:57:17 943

原创 动态加载与热修复知识

是很久之前的技术了,之前也写过一篇类似的,有了一些新的理解看法,就写的详细一点。学习这个之前,需要了解一下class文件到底是个啥。许多人可能写了这么多年java,但是根本就不知道.class文件是怎么组成的。大部分时候实现功能也用不上知道。所以很多时候你都只能浮于表面。.Class文件因为JVM是加载.class文件,使得JVM的可移植性很强,因为它只管加载.class文件就行了,无...

2020-04-30 22:17:12 219

原创 一个手写的图片三级缓存

这也是一个个人的学习笔记吧,了解了一下三级缓存一般是如何实现的。当然写了这个我也不会用在自己项目中,因为是Glide它不香了还是Fresco不好用??前面说下需要了解的一些知识,后面全是代码。首先,图片编码:ALPHA_8 图片只有alpha值,没有RGB值,一1个像素占用一个字节 ARGB_4444 alpha(A)值,Red(R)值,Green(G)值,Blue(B)值各占4个bit...

2020-04-01 16:59:09 186

原创 Android的Dex动态加载

动态加载dex这个技术属于看上去高大上,原理很简单,做起来很崩溃的一个玩意。首先要说的是,这个技术肯定是得掌握才行的。APK加固,热修复,插件化,这些个最近几年比较高大上的玩意,基础原理都是从动态加载dex开始的。有很多博客做过这个课题,有很多写的不错的博客,我就从自己学习的流程给大家说说这玩意。apk编流程译首先要理解APK的一个编译流程,google的官网上有着详细的一张图,我选了...

2020-04-01 16:40:22 411

原创 JAVA回收机制与Android的OOM

这算是给自己的一个笔记吧,这几天做课件看了不少JVM相关的知识怕自己忘记。大部分理论知识都是来自网上其他博客的引用,我把自己想要重点记录的记了下来。 RAM随机存取存储器,临时存储的地方,关机后数据消除,也叫主存。图是网上找的,JVM的内存模型图,Dalvik是一个特殊的JVM所以需要...

2020-03-26 15:11:09 157

原创 电池优化?按我说的一定能优化成功

我觉得大部分程序员不会太在意电池优化这件事儿。因为耗电和产品需求或者设计有冲突的时候,99%的时候都是牺牲耗电量。所以我觉得电池优化最大的关键在于——沟通!你能说服产品改需求,或者是设计改设计稿,那你优化成功了。代码上的修改远不如他们需求与设计上的修改。 我就列举下android5.0以来对电池方面做得优化以及,哪些API被改动了。 这上面比较重点的...

2020-03-22 22:21:28 1463

原创 Android 写一个简单的网络请求框架

虽然市面上有很多优秀的开源网络框架,例如volley,Okhttp。为啥还要自己来手写一个呢?主要是为了加深一下自己的记忆,还有把自己的技术点串联起来。代码并不难,都挺简单的,有详细的注释。可以优化的地方很多,但是写文的时候状态不是特别好,所以就懒得去改了。再者,大部分情况下我也是会去用OKHttp的!写下来是对自己花费时间的认可。 我相信大部分朋友手写一个简单的网络请求框...

2020-03-18 21:47:21 707 1

原创 webview记录滚动位置,下次打开滚动到记录点

网上看了挺多方法,自己都试了试发现不好用。最后参考的是这篇文章。http://blog.csdn.net/qiushi_1990/article/details/51849890      这篇文章某些情况下应该是可以获得正确结果的。这位博主用的 webview.getScrollY();存储和webview..scrollTo()方法。但是使用之后我的问题没有得到解决,我

2017-08-01 13:23:43 7415 1

空空如也

空空如也

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

TA关注的人

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