自定义博客皮肤

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

反编译实现夜间模式平滑换肤

日间模式和夜间模式的换皮肤在很早期的一些APP中就已经有实践了。用过的众多APP中,知乎的夜间模式换肤算是体验感非常好的。两年前反编译知乎的app学习了人家的实现思路,效果不错。当然最新版的知乎应用上线后也大面积进行了混淆,捋源码会困难一些。本篇基于未混淆的旧版知乎。 早期简单的一种实现方法...

2018-08-23 23:38:20

阅读数 94

评论数 0

LruCache——解决OOM的利器

简介 LruCache是Android 3.1的时候出现的,一般我们为了兼容低版本会使用v4包下的。LruCache是一种缓存策略,持有的是强引用,但是会控制在一个峰值下。它内部维护了一个队列,每当从中取出一个值时,该值就移动到队列的头部。当缓存已满而继续添加时,会将队列尾部的值移除,方便GC。...

2018-08-16 17:30:10

阅读数 844

评论数 0

AsyncTask的原理解析及使用缺陷

AsyncTask是Android从1.5引入的类,它内部做了比较完整的封装。借助它,我们可以很easy的在子线程进行耗时操作,在主线程处理结果,而不用操作Thread或者Handler。即使到目前,用AsyncTask做类似文件的上传或下载也是很方便的。 使用就不多介绍了,就是按照AsyncT...

2018-08-15 01:01:07

阅读数 74

评论数 0

EventBus源码解析

前言 EventBus是安卓(Java中也可以用)开发中非常流行的一个第三方库,是一种发布/订阅事件的总线.拥有以下特性: * 简化了组件间的通信,可应用与Activity,Fragment和后台线程 * 将事件的发送方和接收方解耦 * 体积小 现在的EventBus早已经从2.0进入3...

2018-08-05 18:46:33

阅读数 541

评论数 0

利用DDMS中的TraceView检测应用中的黑屏无响应问题

测试提的一个Bug:在app首次安装后,从欢迎页点击跳过,接着出现了黑屏并且一直没有响应.只能杀掉了进程,重新启动后正常.也就是说应用出现了假死的现象,这是个很严重的问题,赶紧打开IDE调试: 排查原因 应用第一次启动,欢迎页加载是没有问题.在跳过进入首页时出现了黑屏现象.那来看首页,首页在第...

2018-07-31 17:53:43

阅读数 211

评论数 0

安卓加载PDF文件的几种方式

前端时间产品提了一个需求,在app内部加载PDF.ios平台有WKWebView可以直接以html的方式加载,但是安卓没有.查阅了相关资料,有以下几种方式. 1.连接Google服务器解析 安卓的WebView不支持PDF解析,因此通过连接Google的一个服务器转换成功后返回给WebVi...

2018-06-05 14:28:29

阅读数 5491

评论数 1

使用Java字符流读写文件遇到的问题

Java中的字符流可以很方便的读写文本文件.但是在使用中发现两个问题,编译环境JDK8: 1.执行到最后记得flush()或close() 这里用FileReader和FileWriter示例: private static final String sourceName = &a...

2018-06-04 16:36:41

阅读数 1070

评论数 0

Android Studio开发JNI示例

JNI和NDK介绍 JNI(Java Native Interface),是方便Java调用C、C++等Native代码所封装的一层接口,相当于一座桥梁。通过JNI可以操作一些Java无法完成的与系统相关的特性,尤其在图像和视频处理中大量用到。 NDK(Native Developme...

2018-03-24 23:46:45

阅读数 12731

评论数 2

App应用字体大小保持固定以及关于Configuration的变化

前言安卓4.0之后系统设置->显示里面新增了字体大小设置的选项.看下你自己的安卓机,如果你将字体大小从小号一直增大到特大号,有没有发现某些安装的app里面的字体大小也随着变化了?这样可能是便于了阅读,但是app里面本来能显示完全的内容可能因此就只显示了部分.实际上,我们可以看一下QQ、淘宝等...

2017-12-21 18:18:41

阅读数 1410

评论数 0

安卓中短信验证码倒计时的几种方式

发送短信验证码后,一般在界面上都会有一个倒计时的显示.在安卓中,实现类似的倒计时有多种方式,当然背后的基本原理都是设定一个初始值,然后每过一定的间隔时间执行操作.用安卓自带的CountDownTimer实现这是最简洁的实现方式.安卓提供了一个CountDownTimer类用于倒计时功能.其使用方法...

2017-12-21 15:17:22

阅读数 365

评论数 0

自己撸一个基于运行时注解的简单IOC框架

概述日常开发中的各种注解还是比较常见的,比如代码里面的各种@Override,@Nullable,后端的话Spring里面的各种注入以及依赖注入框架Dagger.对于更关注于界面的客户端,大名鼎鼎的ButterKnife以及XUtils中的ViewInject也是基于注解实现和使用的。先不去纠结运...

2017-12-14 10:37:55

阅读数 131

评论数 0

用layer-list自定义drawable图形

在日常开发中会碰到有些情况,背景图不算很复杂,但是用单纯的shape无法满足需求,特别是层叠的样式,其实不需要自定义控件,或者让UI切图.用layer-list创建一个drawable图形就可以了1.layer-list的概念其实就和新建drawable资源中的shape一样,都是root-ele...

2017-12-12 16:22:21

阅读数 6934

评论数 0

AndroidStudio升级到3.0的新特性和注意事项

概述 谷歌发布Android Studio3.0正式版已经有一段时间了,最近抽空升级了一下,也踩了一些坑.特地记录一下.作为开发者第一时间体验谷歌带来的新特性是很有必要的.当然为了项目稳定性,也要根据实际情况决定是否升级相关插件 升级 从已有的IDE升级,无非就是File-&am...

2017-11-15 14:05:26

阅读数 995

评论数 1

使用Jekyll搭建自己的博客

介绍Github Pages是可以托管在Github上的静态网页。用户可以使用它提供的模板,经过Jekyll的再加工后上传到服务器。Jekyll是一款Blog生成器,是Github官方使用的静态站点生成器,不需要数据库的支持。简单的说,利用这两者搭建自己的小型的博客网站(不包含较复杂的功能,数据量...

2017-06-05 11:23:14

阅读数 3717

评论数 1

Fork别人的项目以及利用Gradle发布项目到Jcenter

准备工作首先当然是有Github帐号,并且下载了Git For Windows(或其他Git相关工具)并已经正确配制了SSH Key.如果你要借鉴前人已有的思想和工作成果,并且为了满足自己项目的需求对该库做出较大的改动,可以fork别人的项目.往往该库可能相关的代码或者资源文件比较多,想到用Gra...

2017-05-15 19:13:30

阅读数 538

评论数 0

使用Python在Markdown插入图片并自动获取链接

前言以前写博客都是使用网站的在线编辑器,这种开着网页写东西的感觉,真是。。反正我更喜欢在自己的PC上写好Markdown,然后直接在网站上导入。现在基本大一些的技术网站都可以支持从本地导入Markdown。但是Markdown的插入图片有点麻烦,有些网站比如简书的在线Markdown编辑器支持良好...

2017-03-02 14:16:38

阅读数 3340

评论数 1

界面适配华为手机的虚拟按键的解决方案

一、概述在项目中,测试发现在一些华为手机的屏幕适配上出现了问题,主要是因为华为Mate等一些系列的手机有一个虚拟按键的设计.当这些虚拟按键由用户手势滑出,或默认显示的话,就会遮挡我们本身的应用布局.比如欢迎界面过后是四个Fragment,那么底部的四个tab就会被虚拟的导航栏遮住,非常难看.当然,...

2017-02-27 15:50:29

阅读数 24806

评论数 12

SwipeRefreshLayout+RecyclerView 完成下拉刷新,上拉加载更多的自定义控件,简单好用

下拉刷新,上拉加载更多在许多应用中都频频用到,特别是需要分页加载数据时.之前在项目中经常用到的是网上非常普遍的PullToRefreshLayout.该框架比较好用,不过是比较旧了.就想着重新找一个控件.因为现在android 5.0应用的已经比较多了,所以就想做一个和知乎效果差不多的效果.   ...

2016-12-06 14:18:31

阅读数 667

评论数 0

"Variables debug info not available" Debug出现问题的解决

前几日在Android Studio上导入了一个Eclipse项目,运行成功,并且可以正常Debug.谁知今天在Debug的过程中不知道进行了什么操作,导致每次Debug后无法定位到所标记的断点部分,而是跳出异常:         在网上也搜索不到类似的问题,StackOverFlow上倒是有...

2016-11-23 20:58:37

阅读数 5729

评论数 1

Genymotion创建模拟器的正确姿势

Genymotion模拟器大家应该都很熟悉了,启动速度快,流畅,资源占用低.但是由于众所周知的”墙”的原因,有的时候在下载和添加模拟器的时候有些坑,需要我们去注意一下. 进入Genymotion官网,注册,登录,下载,安装,这些都不细说.开始的时候我们的模拟器列表是空的,需要我们自己去添加,也就...

2016-10-07 16:37:01

阅读数 2420

评论数 0

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