自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MrCoder的博客

生命不息,coding不止。。。

  • 博客(96)
  • 收藏
  • 关注

转载 依赖注入原理(为什么需要依赖注入)

0. 前言在软件工程领域,依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一。本文主要介绍依赖注入原理和常见的实现方式,重点在于介绍这种年轻的设计模式的适用场景及优势。1. 为什么需要依赖注入控制反转用于解耦,解的究竟是谁和谁的耦?这是我在最初了解依赖注入时候产生的第一个问题。下面我引

2016-07-13 14:25:39 59314 9

原创 利用ActivityLifecycleCallBack监控app前后台状态切换,实现手势密码即九宫格解锁

最近由于项目需求,需要在应用中加入手势密码这个功能,具体需求是这样的:首次启动应用会和后台校验手势密码,当切换到后台超过5分钟后,应用再次进入前台需要判断进入手势解锁界面; 当看到这个需求的时候,我首先想到的就是在应用的application类中应该会有整个application生命周期的回掉......

2016-04-05 11:36:32 8942 11

转载 matplotlib显示中文

【注意】可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:)import matplotlib.pyplot as pltimport pylab as plt【效果图】【方式一】FontProperties 1 import matplotlib.pyplot as plt 2 from matplotlib.font_manager import FontProper

2021-10-13 17:13:31 8

原创 记一次mac配置flutter环境变量后命令无响应问题解决办法

mac配置好flutter sdk后,flutter doctor命令敲完后没有任何反应,查了很多资料,最后试了 flutter doctor --android-licenses 命令后问题得到解决。

2020-08-30 18:02:04 678

转载 Zookeeper入门看这篇就够了

Zookeeper是什么官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。上面的解释有点抽象,简单来说zookeeper=文件系统+监听通知机制。1、 文件系统Zookeeper维护一个类似文件系统...

2019-09-19 16:08:19 247

原创 Python中TypeError: object() takes no parameters问题

def __init(self,gender)中init方法前后各有两个下划线,初学者常犯的问题改成这样就好了

2019-08-05 11:38:48 398

转载 Android:关于Window少为人知的一面

转自:https://www.jianshu.com/p/f9c3c9a19772?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation前言大部分情况下,我们和Window打交道的情况比较少,一般都是与Activity和View“交流”。最近做了不...

2019-07-08 19:21:20 516

转载 卡片式ViewPager,一屏展示多个pager item,设置高度不一致的tabBar

ViewPager的基本用法不必多说,这都很简单,我们可以在ViewPager中加载一个ImageView,也可以加载一个Fragment,这都是目前非常常见的用法。那么我今天说的是ViewPager中的PageTransformer属性,用好这个属性可以让我们的应用更加出彩,OK,那我们就开始吧!本文将从如下几方面来介绍: 1.clipChildren属性2.一个页面显示多个Vie...

2018-12-08 18:30:45 896

转载 inner join 与 left join、right join 之间的区别

inner join 与 left join 、right join之间的区别  关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了。需求是从数据库查数据,在前端以柱形图的形式展现出来,查到的数据按行业分组,显示每个行业的户数及户数占比,涉及到的字段有A表的用户数、总用户数和...

2018-11-26 18:48:18 190

转载 史上最浅显易懂的 RxJava 入门教程

来源:KunMinXwww.jianshu.com/p/f392727c5aca工作需要刚好在学习 RxJava + Retrofit2 + OkHttp3 网络请求框架,网上搜了一些 RxJava 的教程,并不是很好理解,所幸最后我找到了几篇有助于初学者了解 RxJava 的文章,于是结合自己的理解,重新整理成一篇发给大家,希望通过我的咀嚼,能够帮助大家更快的了解和上手 RxJava...

2018-11-21 14:30:41 508

转载 ArrayDeque详解

美人如斯!ArrayDeque是java中对双端队列的线性实现一.特性无容量大小限制,容量按需增长; 非线程安全队列,无同步策略,不支持多线程安全访问; 当用作栈时,性能优于Stack,当用于队列时,性能优于LinkedList 两端都可以操作 具有fail-fast特征 不能存储null 支持双向迭代器遍历注意: ArrayDeque的迭代器和大多数容器迭代器一样,都是...

2018-11-20 11:15:04 903

转载 Java 代码中看到数字中间带下划线的,如 1000_000 这种形式的数字的理解

今天,一不小心,点到了源码里面去,看到个数字 1000_000,Java代码还可以这么定义数字的,厉害啦,我就百度啦下。原来这个就是1000000。等效的。只是1000_000这样写之后,可读性变强。实际测试了下。这个文章,是真的简单,就是图个稀奇。我真的是第一次看见这么写数字的。 这是Java7引入的新特性。分割数字增强可读性。当然它有一些使用上的限制,下面截图里...

2018-11-13 16:10:19 11209 5

转载 调用view.measure(0,0)时发生了什么

在 Activity 的 onCreate、onStart、OnResume 生命周期中,无法直接得到 View 的宽高信息。网上有以下几种常见的解决办法:在 Activity#onWindowFocusChanged 回调中获取宽高。 view.post(runnable),在 runnable 中获取宽高。 ViewTreeObserver 添加 OnGlobalLayoutList...

2018-10-12 17:54:31 865

转载 Java 容器源码分析之 Deque 与 ArrayDeque

转自:https://www.cnblogs.com/wxd0108/p/7366234.htmlQueue 也是 Java 集合框架中定义的一种接口,直接继承自 Collection 接口。除了基本的 Collection 接口规定测操作外,Queue 接口还定义一组针对队列的特殊操作。通常来说,Queue 是按照先进先出(FIFO)的方式来管理其中的元素的,但是优先队列是一个例外。De...

2018-09-14 17:53:05 91

原创 maven库下载失败:Could not GET xxxx Received status code 500 from server: Internal Privoxy Error

由于某些jar包依赖下载不成功,所以在Android Studio settings中的http proxy中设置了代理,等下载成功后,在关闭代理,发现.gradle中的gradle.properties加入了代理配置,由于公司的maven库不能设置代理,所以在Android Studio中又关闭了代理,然后就报异常了      原来,只是在Andr...

2018-09-03 13:33:03 3038

转载 WMRouter:美团外卖Android开源路由框架

转自:https://tech.meituan.com/meituan_waimai_android_open_source_routing_framework.htmlWMRouter是一款Android路由框架,基于组件化的设计思路,功能灵活,使用也比较简单。WMRouter最初用于解决美团外卖C端App在业务演进过程中的实际问题,之后逐步推广到了美团其他App,因此我们决定将其开...

2018-08-24 15:29:08 2830 1

原创 解决android studio一直不停的indexing,一秒钟一次那种

File->Invalidate Caches/Restart

2018-08-20 11:19:34 2815 1

转载 通过反射解决在HuaWei手机出现Register too many Broadcast Receivers的crash

转载请注明出处:http://blog.csdn.net/llew2011/article/details/79054457       Android开发适配问题一直是一个让人头疼的话题,由于国内很多厂商都有对原生Android系统做不同的定制,结果导致适配起来很麻烦。印象最深的一个适配是让Notification的背景色做到和系统通知栏背景色一致,然后就是想各种办法做适配……近来在Bugly上...

2018-08-14 10:39:06 1369

转载 JavaPoet - 优雅地生成代码

转自:https://blog.csdn.net/xuguobiao/article/details/72775730JavaPoet - 优雅地生成代码 JavaPoet - 优雅地生成代码 一项目简介 二项目总览 1 大体结构图 2 关键类说明 三相关使用 1 API使用 2 一个简单示例 四源码浅析 五使用场景 1 根据编译...

2018-08-04 15:30:54 596 1

转载 项目爬坑记之targetSdkVersion为23以下6.0中checkSelfPermission的问题

在6.0及以上的机子上运行targetSdkVersion<23的应用时,调用checkSelfPermission,不管用户是否授权,其返回值始终为PERMISSION_GRANTED,经查询资料, If your application is targeting an API level before 23 (Android M) then both:ContextCompat#c...

2018-07-26 14:22:22 1004

转载 AndroidVideoCache-视频边播放边缓存的代理策略

视频现状现在视频播放的需求越来越常见,就和16年上半年的直播一样,似乎不加个视频已经不是个正常的APP了,连微信朋友圈都支持上传小视频,更别谈以视频为本命的一系列APP。视频方面主要是两块,一个是视频录制,这个已经翻过一篇比较全的文章,再加上google开源的 grafika ,可以在踩坑时减少很多障碍,不过录制这块适配是大问题,需要不断调整。另一个方面就是视频播放,这方面的轮子比上面录制就多太多...

2018-07-04 11:09:35 7549 9

转载 windows环境搭建Vue开发环境

一、安装node.js(https://nodejs.org/en/)               下载完毕后,可以安装node,建议不要安装在系统盘(如C:)。 二、设置nodejs prefix(全局)和cache(缓存)路径nodejs安装好之后,通过npm下载全局模块默认安装到{%USERDATA%}C:\Users\username\AppData\下的Roaming\npm下,这当然是...

2018-06-27 14:04:58 108

原创 项目爬坑记之android多媒体数据库查询

媒体数据库查询: files表 , DATA_ADDED等字段查询出来单位为秒 直接查询Images或者Video表,DATA_ADDED等字段查询出来单位是毫秒

2018-05-28 15:47:51 547

转载 Java弱引用(WeakReference)的理解与使用

转自:https://blog.csdn.net/hikvision_java_gyh/article/details/53260585前言: 看到篇帖子, 国外一个技术面试官在面试senior java developer的时候, 问到一个weak reference相关的问题. 他没有期望有人能够完整解释清楚weak reference是什么, 怎么用, 只是期望有人能够提到这个concept...

2018-05-24 16:51:29 1809

原创 项目爬坑记之使用ViewPager时调用adapter.notifyDateSetChanged() fragment不刷新问题

最近项目在使用ViewPager时调用adapter.notifyDatesetChanged() 碰到fragment不刷新问题,经查资料, 发现

2018-05-22 16:51:48 1941

转载 JavaPoet的基本使用

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/51876192JavaPoetJavaPoet 是一个用来生成 .java源文件的Java API。当做如注解或者数据库模式、协议格式等事情时,生成源文件就比较有用处。Example以 HelloWorld 类为例:package com.example.helloworld;pub...

2018-04-18 14:06:15 1826

原创 各系统hosts文件位置

Operating SystemVersion(s)LocationUnix, Unix-like, POSIX /etc/hosts[3]Microsoft Windows3.1%WinDir%\HOSTS95, 98, ME%WinDir%\hosts[4]NT, 2000, XP,[5] 2003, Vista,2008, 7, 2012, 8, 10%SystemRoot%\System3...

2018-04-13 14:29:55 1549

转载 Android WebView 总结 —— 使用HTML5播放视频及全屏方案

在APP开发的过程中,会碰到需要在WebView中播放视频的需求,下面讲解一下如何在WebView中使用html5播放视频。1.让视频在各个Android版本能够正常播放在AndroidManifest.xml中声明HardwareAccelerate的标志,一般是添加在Activity的级别上。代码如下:<activity ... android:hardwareAccelerated="...

2018-04-11 17:48:17 968

转载 python笔记(5)-面向对象编程

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。而面向对象的程序设计把计算机程序视为一组对象的集合,而...

2018-04-10 15:53:51 143

原创 python笔记(4)-模块(使用模块与安装第三方模块)

# -*- coding: utf-8 -*-' a test module '__author__ = 'Declan'import sysdef test(): args = sys.argv argLength = len(args) if argLength == 1: print('Hello World!') elif argLength == 2...

2018-04-04 19:31:12 222

转载 Android 应用中跳转到应用市场评分示例

本篇文章主要介绍了Android 应用中跳转到应用市场评分示例,非常具有实用价值,需要的朋友可以参考下.在开发Android App过程中,经常会遇见这样的功能。从当前的app跳转到一个应用商店并且跳转到自己app的详情页面,让用户给自己的App进行评分、评价,从而提高自己App的排名。下面介绍三种方法实现该功能。方法一:通过系统隐式意图方式去调用应用市场app详情页try{ Uri uri ...

2018-03-21 17:43:22 3350 1

原创 git拉代码错误Can't update:no tracked branch

No tracked branch configured for branch master. To make your branch track a remote branch call, for example, git branch --set-upstream-to origin/master master

2018-03-08 11:39:16 1235

转载 python笔记(3)-函数式编程

参考自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317848428125ae6aa24068b4c50a7e71501ab275d52000高阶函数高阶函数英文叫Higher-order function。什么是高阶函数?我们以实际代码为例子,一步一步深入概念。变...

2018-03-08 10:27:29 233

原创 Android中将其他app module转为library供app module使用

最近因为项目需要, 需要将另一个Android项目中的app module作为当前项目的library使用, 经过测试,以下方法可行.首先在当前项目中新建library module, 然后将需要导入的module中的jniLibs,libs,src,res,AndroidManifest.xml以及build.gradle中的文件及代码拷贝过去, 其中,build.gradle首行需要改为 ap...

2018-03-05 18:04:10 1099

转载 为什么ConstraintLayout代替其他布局?

ConstraintLayout, 即约束布局, 在2016年由Google I/O推出. 从支持力度而言, 将成为主流布局样式, 完全代替其他布局, 减少布局的层级, 优化渲染性能. 在新版Android Studio中, ConstraintLayout已替代RelativeLayout, 成为HelloWorld项目的默认布局. ConstraintLayout作为非绑定(Unbundled...

2018-02-27 10:11:21 591

原创 python笔记(2)-python引用变量的顺序

#python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量##counter##内层函数能访问外层函数的变量,但不能修改它的指向def createCounter(): count = [0] def counter(): count[0] += 1 return count[0] ...

2018-02-24 16:01:56 390

原创 python笔记(1)-list,tupple,dict,set

ListPython内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。比如,列出班里所有同学的名字,就可以用一个list表示:>>> classmates = ['Michael', 'Bob', 'Tracy']>>> classmates['Michael', 'Bob', 'Tracy']变量classmates就...

2018-02-23 18:10:49 1187

原创 Error:Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'.

今天构造项目引入最新的ButterKnife的时候碰到了一些问题,特记录下来。Android Library中需要引入ButterKnife,现在最新版本为8.8.1,按照官方教程需要在根目录的builde.gradle中添加插件和依赖库,在使用库中添加依赖和注解器,以及插件依赖。然后确报一下错误,github上面已经有了这个问题issue,JakeWharton大神也给了相关

2018-01-20 20:30:15 762

原创 自定义View系列(一)

本系列是根据HenCoder大神自定义View系列学习而来,原文请查看http://hencoder.com/ Paint.setColor(int color) 颜色 Paint.setStyle(Paint.Style style) : FILL  STROKE  FILL_AND_STROKE 绘制样式 Paint.setStrokeWidth(float width) 线条

2018-01-17 11:32:19 230

原创 Java并发编程:volatile关键字解析

请尊重作者劳动成果,转载请标明原文链接:  http://www.cnblogs.com/dolphin0520/p/3920373.html在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,挥发性关键字才得以重获生机。  挥发性关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于挥发性关键字

2018-01-05 14:41:04 213

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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