自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stven_king的专栏

自信人生两百年、会当击水三千尺

  • 博客(408)
  • 资源 (16)
  • 论坛 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 Java线程池实现原理和源码分析

Java线程池实现原理和源码分析文章目录Java线程池实现原理和源码分析前言外观线程池继承关系构造函数成员变量创建线程池任务阻塞队列SynchronousQueueArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueue拒绝策略AbortPolicy 默认的拒绝策略CallerRunsPolicyDiscardPolicyDiscardOldestPolicy内核线程池的生命周期任务调度机制提交任务添加工作线程和执行任务添加工作线程执行任务工作

2021-02-19 19:24:49 22 1

原创 Qigsaw源码之Gradle插件解析

Android App Bundle为Qigsaw的前置依赖知识点。Android App Bundle 是Android新推出的一种官方发布格式.aab,可让您以更高效的方式开发和发布应用。借助 Android App Bundle,您可以更轻松地以更小的应用提供优质的使用体验,从而提升安装成功率并减少卸载量。转换过程轻松便捷。您无需重构代码即可开始获享较小应用的优势。改用这种格式后,您可以体验模块化应用开发和可自定义功能交付,并从中受益(PS:必须依赖于GooglePlay)。qigsaw基于AA.

2021-01-25 19:23:50 1013 4

原创 Android系统的编舞者Choreographer

个人博客地址 http://dandanlove.com/前言上一篇文章 Android的16ms和垂直同步以及三重缓存 解释了手机流畅性的问题,并在文章中提到了在Android4.1中添加的Vsync。Choreographer机制,用于同Vsync机制配合,实现统一调度界面绘图。Choreographer的构造Choreographer是线程级别的单例,并且具有处理当前线程...

2018-04-26 19:59:20 4017

原创 【总结】Android的16ms和垂直同步以及三重缓存

个人博客地址 http://dandanlove.com/前言手机屏幕是由许多的像素点组成的,每个像素点通过显示不同的颜色最终屏幕呈现各种各样的图像。手机系统的类型和手机硬件的不同导致UI的流畅性体验个不一致。屏幕展示的颜色数据 在GPU中有一块缓冲区叫做 Frame Buffer ,这个帧缓冲区可以认为是存储像素值的二位数组。 数组中的每一个值就对应了手机屏幕的...

2018-04-26 19:55:30 3021 3

原创 修改AAR和Jar中class文件

前言最近帮助同事解决了一个比较棘手的问题,一路采坑的过程比较有意思。在此记录下来。(PS:主要原因是项目比较大,我们只有整个Android项目部分业务侧代码的开发权限。所以解决问题的一些解决问题的常规手段无法使用。)问题需求:Web页面中H5和native交互,保存base64图片。问题:使用现有的已经封装好的Hybrid协议,在最后集成测试发现部分手机无法保存成功。调试发现H5中使用原有的协议格式调用新协议,无法触发业务侧native注册的新协议的日志和断点。怀疑原有的协议格式问题,当.

2021-01-26 19:28:11 41

原创 Android8.0隐式广播和自定义签名权限

前言记录一下今天同事给我分享的比较有意思的Bug,在已有的已经在AndroidManifest.xml中注册的广播在部分手机上无法通过Action隐式启动。上网搜搜资料自己写了个Demo,Mark一下!!Android官网:Oreo后台执行限制我们这里主要看对于广播的影响,摘抄一段官网上的介绍:广播限制如果应用注册为接收广播,则在每次发送广播时,应用的接收器都会消耗资源。 如果多个应用注册为接收基于系统事件的广播,则会引发问题:触发广播的系统事件会导致所有应用快速地连续消耗资源,从而降低用户体验.

2021-01-26 09:30:19 61

原创 Android中R文件ID值

Android中R文件ID值文章目录Android中R文件ID值前言知识回顾在代码中访问资源语法R文件Lib库的R文件AAR中的R文件依赖库R文件的生成R文件的数量后续疑问官网参考资料前言前端时间在学习 Qigsaw 相关的源码,思考到一个问题。动态加载的feature 包里的 资源id 是否会与主包中的 资源id 冲突。因为主包的 apk 文件不一定是和加载的feature 包是一起打包生成的,feature 包是可以进行升级的。查看 Qigsaw编译脚本对 old.apk 进行增量编译 feat

2021-01-11 17:21:35 111

原创 DiffUtil和它的差量算法

DiffUtil和它的差量算法前言学习Myers'Diff 算法是从 DiffUtils 源代码开始的,但DiffUtil和它的差量算法这篇却是文章是在写完 Myers‘Diff之贪婪算法 和 Myers‘Diff之线性空间细化 这两篇算法文章之后着手的。比较先需要学会算法才能理解代码实现并更好的进行使用。文章目录DiffUtil和它的差量算法前言DiffUtil介绍DiffUtil.DiffResultDiffUtil.DiffResultDiffUtil使用DiffUtil中Myers算法代码

2020-10-16 20:08:49 216

原创 Myers‘Diff之线性空间细化

Myers’diff前言在学习完上一篇文章Myers’Diff之贪婪算法 之后,我对Android源码中的DiffUtil类进行了阅读发现其算法的实现和文章中的方式并不尽相同,而是在其基础之上再次进行的优化。所以本篇文章是以上一篇Myers’Diff之贪婪算法 文章内容基础之上对它的变体进行再次研究的过程。上一篇文章Myers’Diff之贪婪算法 讲述diff怎么从一个抽象的问题转化为数学问题,并对一些名词做了专有的定义(为解决问题的过程提供辅助),Myers'Diff之贪婪算法讲述了利用辅助的k线进

2020-10-12 10:46:22 165

原创 Myers‘Diff之贪婪算法

Myers’ Diff前言写这篇文章已经拖了很久了,因为一直在看它后续的 Myers’ Diff 的变体 。最初不知道是什么时候发现 DiffUtil 对比列表 item 数据进行局部刷新,git 文件对比都用到了这个算法。上个月刚好再一次看到了就想深入了解一下。但发现发现国内的博客和帖子,对这个算法的讲述内容比较少,每篇文章都讲述了作者自己认为重要的内容,所以有一个点搞不懂的话没法整体性的进行理解。刚开始我自己就有一个点没想清楚想了好几天,我觉得程序员不能怕算法,书读百遍其义自现,阅读算法代码也是如此

2020-10-10 14:06:13 277

原创 App Startup 源码分析
原力计划

文章目录集成接入实现初始化组件设置AndroidManifest条目手动初始化组件禁用单个组件的自动初始化禁用所有组件的自动初始化手动调用组件初始化程序运行Lint检查源码分析lint.jarAndroidmanifest.xmlInitializationProviderAppInitializerApp Startup总结上篇文章 非侵入试获取Context进行SDK初始化 讲述了通过ContentProvider 进行 SDK 的初始化,文章末尾引出了 App Startup 。如果一个 app .

2020-07-07 19:52:10 254

原创 非侵入式获取Context进行SDK初始化
原力计划

文章目录非侵入试获取Context进行SDK初始化picasso 初始化InstantRunLeakcanaryApp Startup非侵入试获取Context进行SDK初始化当我们在使用第三方SDK,或者自己进行SDK封装时,如果需要需要用到 Context 进行初始化时,一般做法就是将初始化方法暴露给调用方,让调用方在初始化SDK时,传入上下文环境。publi class App extends Application { @Override public void onCrea.

2020-07-07 19:42:19 219

原创 Android内存泄漏检测工具使用手册
原力计划

性能优化除过我们平时自己设计和开发之外就得考虑使用工具进行检测。Android关于能够定位和剖析问题的内存工具有很多,但不是每个工具所有场景都能覆盖到。这篇文章主要介绍LeaKCanary、shark、Android Profile、MAT、Jhat、dumpsys meminfo、GC Log等。

2020-06-05 20:01:50 713

转载 图片不需要完全加载就能获取宽高

转载地址:http://blog.jdk5.com/zh/java-get-image-size-without-loading-the-whole-data/前几天写的 Bitmap图片压缩,大图加载防止OOM 文章中讲到了图片加载到内存之前先获取图片的宽高,然后判断是否加载后会占用内存过大。这种加载前获取图片宽高的是使用 Android自带的Bitmap 提供的功能,底层是 C++ 的实现。...

2020-04-27 11:40:50 321

原创 Bitmap图片压缩,大图加载防止OOM
原力计划

文章目录前言RGB介绍图片占用内存的计算读取位图尺寸和类型内存中如果加载一张 `500*500` 的 `png` 高清图片.应该是占用多少的内存?如果这个图片为本地资源图片,是否还是0.95MB呢?Bitmap压缩压缩原理压缩Bitmap磁盘占用空间的大小压缩Bitmap占用内存的大小使用inSampleSize进行压缩使用createScaledBitmap或MatrixBitmapFacto...

2020-04-22 15:08:58 516 2

原创 Gradle自定义Plugin插件和ASM修改字节码
原力计划

前言先介绍一下 AOP 和 ASM 的概念,AOP 是一种面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。和面向对象编程 的 OOP 相同。ASM 是一个框架可以看作 AOP 的工具,当然 AOP 也有其他工具,比如用的比较多的 AspectJ 、Javassist 、Xposed 和 Dexposed 等。这里我们主要介绍一下在自定义Plugin 使用的 ASM...

2020-03-04 16:21:25 561

原创 Picasso源码分析和对比

前面的Android-Universal-Image-Loader源码分析和Glide源码阅读理解一小时分别讲述了五年前和现在最受欢迎的`Android`图片加载库。今天讲述的picasso是Square公司开源的一个Android图片加载

2019-12-30 17:50:18 291 1

原创 Glide源码阅读理解一小时

这篇图、文、表、代码一起组成的Glide源码分析。这篇Glide的代码分析量可以说至少是ImageLoader的3倍多,本来想对Glide代码进行拆分,细化每个部分进行讲解这个每个部分讲的更加清楚一些。但最终还是打算整体一篇文章讲完,因为我觉得整体性的学习能更深的的了解到Glide的框架的设计之美。阅读本文需要大量的时间,最好选择对应的目录进行逐步阅读。

2019-12-20 19:27:01 305

原创 【历史总结】Android-Universal-Image-Loader源码分析

前言ImageLoader 是 android 使用中出现比较早(PS:即的刚接触安卓项目的时候就用的是这个图片加载图,算算已经快5年了),使用最多的一个开源图片加载库了。随着glide , fresco 和 picasso等图片加载的库出现,ImageLoader使用变得越来越少。最近在看其他图片加载库的源码,顺便补补之前错过的一些事情。代码仓库地址:Android-Universal-Im...

2019-11-26 15:11:38 1587 2

原创 Android数据库开源框架GreenDao分析

前段时间写Demo的时候遇到了数据库的并发问题 Android数据库多线程并发操作异常 ,然后研究了一下 Android中的数据库连接池 。在看相关代码的时候阅读了我们项目使用的数据库框架GreenDao 。哈哈,挺有意思的^ _ ^。Android原始数据库的使用创建数据库public class DatabaseHelper extends SQLiteOpenHelper { ...

2019-11-06 20:52:47 376

原创 Android数据库多线程并发操作异常

在我们做项目的过程中经常会有多线程异步处理的情况,那么Android中多线程操作数据我们一般会遇到什么样的问题?多个数据库对象执行并发指由不同的SQLiteOpenHelper打开的相同数据库对象,默认enableWriteAheadLogging=false。多线程单进程和多进程结果一样。同时进行数据库的读操作不会产生任何问题;如果都需要创建表,那么多次创建可能会出现问题;...

2019-11-06 20:47:06 971

原创 Android中的数据库连接池

最近在看数据库相关的三方库的时候,我发现在Android应用开发的时候是可以并行操作数据库的读写,但Android默认的数据连接池中只有一个数据库链接。一个数据库连接能实现并发么?要是一个数据库链接可以实现并发,那么为什么需要数据库连接池?数据库连接池介绍每次提到连接池我们很快能想到线程池。线程池的创建可以减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。数据库连接...

2019-11-02 20:20:31 1392 2

原创 View的postDelayed方法深度思考

前言突然某天好友老瑞问我 “View的postdelayed方法,延迟时间如果设置10分钟或者更长的时间有什么问题吗?“ 。当时听到这个问题时候我只能联想到 Handle.postDelay ,与此同时让我回想起了之前的一些疑问?View的postDelayed方法,延迟时间如果设置10分钟或者更长的时间有什么问题吗?View的postDelayed方法,延迟时间如果设置为负数有没有...

2019-10-25 16:26:29 485

原创 从JVM到Dalivk再到ART(class,dex,odex,vdex,ELF)

个人博客地址 http://dandanlove.com/现在市面上的Android手机大部分都是运行的是ART虚拟机了。还记得自己一部Android手机(HUWEIg520),Android4.1系统。那时候还是没有ART虚拟机的。作为Android开发者,我们应该对Android的发展历史有些了解为什么Android会经历这么多的变化。Android是先有JVM然后是Dalvik,接着是现在...

2019-10-18 10:34:13 399 2

原创 ERROR: Conflicting configuration : 'arm64-v8a' in ndk abiFilters cannot be present when split...

Android 官网通知,从 2019 年 8 月 1 日开始,您在 Google Play 上发布的应用必须支持 64 位架构。64 位 CPU 能够为您的用户提供更快、更丰富的体验。添加 64 位的应用版本不仅可以提升性能、为未来创新创造条件,还能针对仅支持 64 位架构的设备做好准备。按照Android 官网提示进行配置本来很简单的一件事,但是确话费了我好长时间。在这里记录一下这个错误,...

2019-10-16 17:22:29 4464 2

原创 Java版的7种单例模式

前言Java 中的单例模式是我们一直且经常使用的设计模式之一,大家都很熟悉,所以这篇文章仅仅做我自己记忆。Java版七种单例模式写法一:懒汉,线程不安全这种写法lazy loading很明显,但是致命的是在多线程不能正常工作。public class Singleton{ private static Singleton instance; private Singl...

2019-09-30 11:19:20 10876 17

原创 Dart和Java通信源码分析和实践

前言Dart 和 Java 通信这块的知识点涵盖了 Dart&C 以及 Java&C 的通信,我们先有简单的业务组件的定义再到底层实现原理进行分,我们现在从Flutter定义的三种 Channel 中的 MethodChannel 使用进行剖析。Dart和Java通信的实践Java端ChannelPlugin的创建public class FileProviderPlug...

2019-08-06 16:03:26 772

原创 从JNI_OnLoad看so的加载

前言最近在看 Flutter 中 Dart 和 Java 使用 MethodChannel 进行通信相关的代码,有上层一直跟到了底层。最后看到了 MethodChannel 的注册是在 JNI_OnLoad 的方法中。这个方法是在 so 被加载的时候调用的。今天主要从so 的加载看一下 JNI_OnLoad 的调用。Flutter的so加载我们先从 Application 的代码看起:Fl...

2019-07-29 10:05:38 523

原创 Flutter路由管理和页面参数的传递(源码分析)

前言上一篇 Flutter路由管理和页面参数的传递(获取&返回) 文章中我们讲述了这么用代码实现 Flutter 中页面参数的传递,这一篇我们用源码分析一下 Navigator 为什么可以进行页面参数传递。从页面跳转入口的代码进行分析:Navigator.of(context).pushNamed('/route1');Navigator 的获取Navigator 对应的 St...

2019-07-20 09:56:33 540

原创 Flutter路由管理和页面参数的传递(获取&返回)

前言在做 Flutter 开发的时候所有的页面以及页面上的元素都变成了 Widget ,创建一个页面或者视图直接 new 一个新的 widget 就可以,相关的参数我们可以直接通过构造函数直接传递。我们做 Android 开发的人员都知道 Android 应用程序在进行页面跳转的时候可以利用Intent进行参数传递,那么再开发 Flutter 的时候有类似的方式可以进行参数传递么?答案当然是有...

2019-07-20 09:54:48 7500 2

原创 Flutter混合开发:启动黑屏处理

上一篇 [Flutter混合开发:Android接入Flutter](https://dandanlove.blog.csdn.net/article/details/96565543) 我们讲到在 Flutter混合开发 中主要有、有 addView (页面局部Flutter) 和 setContentView (整个页面Flutter)两种方式。这两种方式在启动页面的时候都会遇到 Flutte...

2019-07-20 09:50:59 3421

原创 Flutter混合开发:Android接入Flutter

前言Flutter Google推出已经已经一年多了,单个 Flutter 项目的开发流程已经很成熟了。对与个人开发者来说使用 Flutter 开发一个跨平台的App挺有意思。但是对于现有的项目改造来说还是不建议,Flutter 中的控件还没有完全能满足我们的要求,我们需要解决这个问题会消耗我们大量的研发资源。虽然 Flutter 无法接入我们的项目,但是我们可以尝试者去模仿 Flutter...

2019-07-20 09:49:17 617 1

原创 细说InputStream和OutputStream

前言我们进行Android开发的时候经常会遇到各种 io 操作, 比如网络请求,文件操作,数据传输等。Java中的 InputStream 和 OutputStream 都是 io 包中面向字节操作的顶级抽象类,关于java同步 io字节流的操作都是基于这两个的。网络数据传输:SocketInputStream 和 SocketOutputStream文件操作:FileInputStr...

2019-06-14 20:22:47 434

原创 byte&0XFF的基础

前言最近在做代码相关的优化,找到了一个二进制转十六进制的方法:/** * 二进制转16进制 * @param bin * @return 16进制字符串 */public static String asHex(byte[] bin) { //一个byte为8位,一个十六进制为4位,所以长度乘以2 StringBuilder bfHex = new StringBui...

2019-06-04 14:11:10 588

原创 解决6.5.16及以上版本微信内部M页不能唤起APP

背景最近微信唤起app的数据急速下降,产品同学告诉我们大事来了,微信不能唤起Android的App了!!微信语录为提升微信 webivew 中网页打开其他应用的体验,防止诱导点击、强制跳出等不合理行为, 我们的“唤起外部客户端”的能力统一调整为:1、 在 6.5.16 及以上版本的微信客户端中,贵方网页将只能使用 launchApplication 接口,打开其他应用。该接口会在唤...

2019-02-21 21:01:24 1034

原创 小明要吃冰淇淋之RxJava:lift原理

个人博客地址 http://dandanlove.com/前言关于RxJava的基础心法解析我们在使用 RxJava 的时候必不可少的会使用一些基础的操作符, map 、 flatMap 、 filter 等。这些都是对 Obserbable 进行各种各样的变化,我们查看其实现都能看到一个叫做 lift 的操作符。lift源码我们先看源码(rxjava:1.3.0),再通过一个例子来熟悉...

2019-01-14 21:58:41 1270 1

原创 一次Observable的empty和never方法的rx源码笔记

我们在用 RxJava 的时候,如果需要在某个地方需要中断事件流,那么直接返回一个 Observable.empty() ,与它有类似功能的有 Observable.never 。Observable.just(1,2,3,4,5) .flatMap((Func1<Integer, Observable<Object>>) integer -> { ...

2019-01-07 21:07:07 1012

原创 Android:Base64生产Bitmap压缩和转byte[]

最近在做微信分享的时候遇到了分享图片的大小限制问题,需要对图片进行压缩。在过程中遇到几个有趣的地方在此记录。Bitmap.getByteCount的大小和转化为byte[]的大小差很多不是8倍,而是几十倍,我自测的为67倍压缩Bitmap直接根据长宽比进行调用 createScaledBitmap(@NonNull Bitmap src, int dstWidth, int dstHei...

2019-01-07 20:41:55 1401

原创 关于RxJava的基础心法解析

前言我接触Rxjava是在2015年底,已经过去4年的时间了。2016年学习过一阵子RxJava的操作符也做过一些笔记,我们项目的网络请求框架也替换成了Okhttp+Retrofit,所以使用RxJava做线程间切换就非常好用。一开始接触RxJava感觉除了线程切换之外很能发现其实际的作用,因为我感觉自己响应式编程的思想,很难实际运用到开发需求当中去。但我身边有一位前辈使用Rxjava非常溜...

2019-01-07 20:18:18 409

原创 Android关于微信小程序的唤起和分享

个人博客地址 http://dandanlove.com/最近做了一些有关于微信小程序的项目,涉及了微信小程序的唤起和分享微信小程序。所有的内容都来源于 微信开放平台public class WXProxy { private IWXAPI mShareAPI; /** * 构造为api * @param context 上下文环境 * @pa...

2018-11-30 10:57:31 1547 2

IntelliJ IDEA入门图文教程整理(全部)

史上最全的的Intellij IDEA使用文档,图文结合正确的描述个性化的设置。适用于Intellij IDEA,Android Studio,Web Storm等等。

2016-10-17

Windows平台简单socket编程

(1)在Windows上,编写、编译1个客户机端程序和1个服务器端程序。要求客户机端程序能发送请求给服务器端程序,服务器端程序收到后能发送本机时间给客户机端程序。 (2)在相同或不同机子上,先运行服务器端程序可执行文件,后运行客户机端程序可执行文件。

2014-03-27

微信webview唤起外部客户端接入说明2018版

微信webview唤起外部客户端接入说明2018版。 为提升微信 webivew 中网页打开其他应用的体验,防止诱导点击、强制跳出等不合理行为, 我们的“唤起外部客户端”的能力统一调整为: 1、 在 6.5.16 及以上版本的微信客户端中,贵方网页将只能使用 launchApplication 接口,打 开其他应用。该接口会在唤起前要求用户接受弹窗确认。 2、 在 6.5.16 以下版本的微信客户端中,贵方网页可以继续使用现有方式,打开其他应用。

2019-02-21

内排序算法比较

1) 对以下 6 种常用的内部排序算法进行比较:起泡排序,直接插入排序,简单选择排 序,快速排序,希尔排序,堆排序。 2) 待排序记录的文件个数不小于 1000( 其数据用伪随机数产生 ),至少用5 组不同的 输入数据作比较;比较的指标为关键字的比较次数和关键字的移动次数(一次关键 字交换计为3 次移动)。 3) 统计在完全正序、完全逆序及无序情况下的关键字比较次数和移动次数。 4) 对结果作简单分析,包括对各组数据得出结果波动大小的解释。

2013-03-14

Eclipse智能提示删除空格,等于,分号键,点上屏

Eclipse其Version: 4.2.2的去掉不需要的(eg:空格或等号或其他)按键上屏提示,增加自己需要的按键提示。

2014-08-07

NotificationDemo

调用getSystemService(NOTIFICATION_SERVICE)方法获取系统的NotifacationManager服务 通过构造器创建一个Notification对象 为Notification设置各种属性 通过NotificationManager发送Notification。

2014-07-16

FTP套接字编程

在前三个实验的基础上,将其改造为一个能传输指定文件名称的点对点文件传输软件 设计并实现一个支持多个客户端的文件传输服务器 客户端等待键盘输入文件名称,然后将文件名称传输给服务器,服务器在预先设置好的文件夹下查找该文件,如果发现同名文件,开始传输回客户端,客户端接收完文件后将文件以输入的文件名称保存在本地某个目录即可,否则告诉客户端文件不存在。

2014-04-23

tonic-refs_heads_master.tar.gz

Google开发的新的操作系统Fuchsia其中的tonic相关的代码,在学习flutter和dart源码的时候里面会用到部分代码。

2019-08-09

BinaryTree二叉树操作相关代码

二叉树相关操作:判断是否为二叉排序树、完全二叉树、二叉平衡树;翻转二叉树,求树的深度、叶子节点个数,某节点到根节点的路径,两个节点的最近公共节点等等。

2017-10-19

Java中的pingying工具包pinyin4j-2.5.0.jar

汉子转化拼音的工具包,可以把汉子的字母提取出来,这样方便与做类似于通讯录的Demo。

2014-08-08

org.apache压缩工具包

由apache提供的压缩解压工具类,比JDK原生类库中的方法更好使用。

2015-04-02

Windows下多线程套接字编程

windows下的多线程的并发的套接字编程

2014-04-09

动态绘制图片

BitMap代表一张位图,BitmapDrawable里封装的图片就是一个Bitmap对象,开发者被一个Bitmap对象包装成BitmapDrawable对象,可以调用BitmapDrawable的构造器。再者对它进行平移,缩放,旋转等。

2014-07-23

红黑树相关代码以及解析

红黑树的添加、删除、遍历等代码&以及注释,提供测试样例~!

2018-03-12

深入探索Android热修复技术原理

阿里巴巴开源的《深入探索Android热修复技术原理》,其中讲述了热修复技术以及原理。

2017-11-09

gradle_2.0.0-instant-run源码

gradle_2.0.0-instant-run源码,可查看BootstrapApplication,IncrementalClassLoader等类。

2018-05-10

静默加载的留言板

发表于 2020-01-02 最后回复 2020-01-02

【CSDN-技术开发者社区】IOS版本无法在App Store上获取下载,一直超时

发表于 2019-05-20 最后回复 2019-05-21

【新版本目录问题】

发表于 2018-04-27 最后回复 2018-04-27

【知识库 bug极其多】

发表于 2018-04-13 最后回复 2018-04-19

SDK和JDK不得不说的事

发表于 2016-01-15 最后回复 2016-08-12

android4.0 杀掉应用后注册静态广播不能启动

发表于 2015-07-13 最后回复 2016-08-12

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

TA关注的人 TA的粉丝

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