- 博客(30)
- 资源 (22)
- 收藏
- 关注
原创 GitHub实践
我们前面已经讲了那么多理论知识,都是在本地仓库运行,下面就让我们在GitHub上面小试身手。我们首先需要在GitHub上面创建一个自己的仓库,在这里我们使用的是SSH协议。我们在使用GitHub创建仓库的时候,会让我们选择readme文件什么的,这样我们创建的仓库就不是空仓库了,当我们将自己本地代码提交上去的时候就会有冲突,所以下面讲到怎么解决冲突。创建好仓库之后,就可以把本地文件提交到G...
2019-09-22 19:35:32
354
原创 Git从8到13 深入了解Git特性
上一章简单的介绍了一些常用的Git命名,这一章主要是深入了解一下Git的稍微高级的一些知识和指令。首先我们先来通过查看Git目录里面的文件来深入了解一下Git版本控制的构造。查看HEAD可以知道当前所在的分支。在config文件里面存储着Git里面的一些配置信息,不同的Git分支里面内容不同。在refs文件夹里面包含heads和tags。hears就是里面有不同的分支的名字;ta...
2019-09-21 20:13:45
287
原创 Git从1到7-了解Git常用命令
说起Git我们一点都不陌生,不就是在写代码需之前要先pull,写完后push么。我以前也就是这样想的,并且面试的时候还在简历上写熟练使用Git。可是当我遇到一些问题的时候,却不知道怎么办,只能去网上查。简单的还好(基本上都遇到简单的),但是有一天需要你单独的去搭建一个Git环境之类的或者比较深入的知识就犯难了。所以想了想还是要认真的,系统的学习一下还是比较好。既然我们使用Git的话,当然首先需...
2019-09-16 22:08:05
302
原创 OkHttp3深入了解之Interceptors
OKHttp官网上面介绍:拦截器是一种强大的机制,可以监视,重写和重试调用。这里我们主要对拦截器的网络请求头和数据请求的封装。网络请求头拦截器在Android应用中,我们通常需要获取用户手机的IMEI值和其他一些常用的参数,如果把他们封装到请求头里面的话会非常的方便。既然是自定义拦截器,我们首先肯定要继承OKHttp的拦截器,把这个自定义类设置成final类型的防止其他类继承。这里需要在...
2019-01-01 17:07:16
375
原创 初探OkHttp3
在应用开发中肯定会用到网络请求,下面让我们一起了解OkHttp3这个网络请求框架吧。项目中引用Module的build.gradle文件中引入:dependencies { compile 'com.squareup.okhttp3:okhttp:3.12.1'}异步Get请求OkHttpClient 是连接对象,无论是什么请求,使用OKHttp都必须要创建这个对象。Re...
2019-01-01 13:25:53
351
原创 Maven+Tomcat7实现项目热部署
热部署能够在不关闭Tomcat的情况下直接将war包部署到服务器上。修改Tomcat配置文件需要修改tomcat的conf/tomcat-users.xml配置文件。添加用户名、密码、权限。<role rolename="manager-gui" /><role rolename="manager-script" /><user username="t...
2018-12-31 16:26:07
473
原创 ButterKnife使用详解
以前的话经常使用findViewById()来绑定布局中ID,这样写不仅麻烦而且还没有什么效率,今天推荐一款由JakeWharton大神写的框架Butterknife用来绑定ID。导入依赖既然是是一个第三方的开发库,让先让我们把导入项目中:Module的build.gradle文件中:apply plugin: 'com.jakewharton.butterknife'depende...
2018-12-30 21:36:50
658
原创 Redis5.0集群版搭建
上一篇文章已经把单机版的Redis搭建的过程介绍完了,接下来介绍Redis集群版的搭建方法。首先我们回到local目录在这个目录里面创建一个redis-cluster目录:mkdir redis-cluster接着就是复制6份Redis实例放到这个目录下面(Redis实例就是编译好的单机版的Redis),首先复制一份cp redis/bin redis-cluster/redis01 -...
2018-12-20 21:42:03
423
原创 Redis单机版搭建
首先放一张Redis的架构图:架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(4)redis-cluster把所有的物理节点映射到[0-163...
2018-12-08 21:35:19
237
原创 GreenDao数据库带你出坑
现在在Android中使用的数据库一般都是用的GreenDao,我们准备使用GreenDao的时候从网上看了很多文章,感觉很多技术点都不是我们关注的重点,经过实践以后觉得好多文章的内容都不太正确。我的这篇文章主要讲GreenDao的三个方面:1 GreenDao第三方包的引入2 GreenDao数据加密 数据库存放地址3 GreenDao数据库升级1 在Android Studio中导入...
2018-11-24 20:31:26
293
原创 高仿QQ时间选择器
###在软件开发中我们会需要各种选择选择器,比如设置个人年龄时需要使用时间选择器。设置地址需要用到地址选择,还有身高等等。####下面介绍一下使用方法:时间选择器的使用://这里设置的是选择之后可以回显数据,所以先创建一个SP设置基本数值 String string = getSharedPreferences("tag", MODE_PRIVATE).getString("date...
2018-11-09 18:16:13
282
原创 爱不释手的ConstraintLayout布局
好久没有更新博客了,主要是最近太忙了。其实ConstraintLayout这个布局早都有了,一直没有使用过,所以看到有很多网站都有介绍。但是,感觉很多都是写的很乱或者写的很模糊让人看的好像使用起来很麻烦的样子。所以自己想写一篇博客介绍一下它的使用方法,其实真的好用又简单。使用之前你的Android studio 的版本必须是2.3以上的才可以使用这个布局控件,否则你发现你无论怎么在build.gr
2018-02-03 23:46:14
1016
原创 打造一个通用的TitleView
在开发应用的过程中,大部分应用应该都是标题栏的。通常情况下,我们所使用的标题栏的高度什么其他设置之类的基本上都是相同。so,为了节省开发的效率,今天我们共同打造一个通用的标题栏。一般刚开发的时候,我们会有好几种情况去写标题栏,感觉刚入行的话,可能会在每个布局里面都去复制重复的布局,升级一点的话,应该会用include去把这个同样的布局,引入的主布局中。但是我感觉上面的方法都麻烦了。现在用一个自定义
2017-12-02 21:54:29
731
原创 更好用的DialogFragment
工作中总是要用到各式各样的对话框,通常我们首先会想到的就是Dialog。在以前的时候我通常都会自定义一个Dialog,然后在里面写一个接口,让需要创建这个Dialog的界面继承这个接口,实现点击事件的监听。其中大概代码是这样的:/** * @date 创建时间: 2017/11/22 22:25 * @author zh_legendd * @Description 自定义的dialog
2017-11-22 23:36:18
851
原创 Activity数据传递详解
唉,好久都没有写过博客了。真的是太懒了。最近在看《Android权威编程指南》,挺不错的一本书,感觉里面有很多开发规范,是很值得一看的一本书。感觉在工作中经常处理Activity之间的数据传递,通常我们都是只用(以前我是的)startActivity,但是看一些别人的代码中经常用到startActivityForResult。当时就是感觉很高大上的样子,然后一直不太清楚里面的具体到底是干什么的。但
2017-11-12 17:47:36
903
原创 Android中LeakCanary检测内存泄漏
最近要对产品进行内存泄漏的检查,最后选择了使用Square公司开源的一个检测内存泄漏的函数库LeakCanary,在github上面搜索了一下竟然有1.6w个star,并且Android大神JakeWharton也是这个开源库的贡献者。那么就赶快拿来用吧。先说一下我遇到的坑,我当时是直接google的,然后就直接搜索到稀土掘金的一篇关于LeakCanary的介绍,我就按照他们的文章一步步的操作,到
2017-09-12 08:23:04
1028
原创 Android中EditText禁止输入表情
最近在做的项目中用户编辑资料的时候不希望用户输入表情,如果用户输入表情的话上传给后台要报错,所以需要我们前端做一个判断。下面就来说一下怎么在EditText中屏蔽表情吧。网上有很多这样的列子但是一不小心就会掉进坑里面,比如继承EditText,重写addTextChangedListener()方法。可能当时你测试的时候没有什么问题,但是项目上线后就会有很多问题,错误率很高,但是查看友盟后台的时候
2017-08-27 22:31:34
6324
原创 Android开发从相册中选取照片
最近项目在做一个功能:就是需要从用户选择头像跳转到相册选择图片,这应该是一个很简单的需求,但是在网上搜了一下有好多都讲的很乱,其实用几十行代码就可以实现的为什么要说的那么复杂呢,下面就简单说一下喽。下面说两种方法分别是直接选择相册返回,另外一种为选择相册之后进行裁剪。先上效果图(1)直接选择相册后返回 第一步就是主要跳转的相册 //在这里跳转到手机系统相册里面 Intent i
2017-08-27 14:45:51
16565
3
原创 Python3中安装pygame
感觉python真是太厉害了,里面的各种模块拿来就可以直接调用。最近在看需要做一个简单的小游戏,需要引入pygame这个模块,看到网上很多要不讲的太麻烦,要么就是不是很全。下面具体说一下pygame的安装步骤:既然是安装python中的pygame的模块当然首先要安装的有python呀,具体步骤请看一下我的这一篇博客python3 安装说明这个是安装的32位的。接下来需要安装一下pip,这个操作
2017-08-22 10:30:50
7794
1
原创 高仿QQ中的时间选择器
最近在做一个功能时间选择器和地区选择器在网上找了好久找到了一个轮子,经过改造之后就可以直接那来用和QQ中的时间选择器可以说是一模一样,先上一下效果图里面的代码我就不分析分析了因为太好用了,我就直接说怎么用吧 第一种方法:直接将arr文件放到lib目录里面然后再在build.gradle中引用这个文件当然你也可以把这个当作lib引进行了。地址连接时间选择器
2017-07-31 23:17:57
895
原创 Windows配置python3开发环境
上一篇讲了怎么配置sublime text3,接下来讲一下怎么配置python3开发环境可能是公司的网速比较差,我在python官网上面下载的比较慢所以现在我上传的了csdn上面下载链接Pyhton3.6.2 点击安装python在这里选择这个进行自定义安装然后点击安装就好,然后这里选择路径的时候要注意一下,我这边是把python放到了这个目录了 这里主要是为了配置环境方便接下来在环境变
2017-07-30 15:09:05
1433
原创 Sublime 配置 Python 开发环境
好久都没有更新博客,最近在学习python,本来是想用Virtualbox里面安装ubuntu,在lunix里面学习python的但是一直有些问题搞不定,最后只能转战到windows系统里面来了,下面我会详细的介绍怎么安装使用sublime和配置Python的安装开发环境。首先先来安装sublime开发工具 不知道为什么在官网上面下载sublime text3速度很慢,所以大家可以直接从这个连接
2017-07-30 14:33:51
10613
6
原创 详解Android中Shape的用法
工作中总是会用到shape去画一些背景,每次都要去百度,但是很多都写的很模糊或者属性不是很全,所以今天自己总结了一下,给大家分享一下,自己以后也可以看。ShapeDrawable是一种很常见的Drawable,可以理解为通过颜色来构造的图形,它既可以是纯色的图形,也可以是具有渐变效果的图形,ShapeDrawabled语法稍显复杂,如下所示:<shape xmlns:android="htt
2017-07-09 11:29:44
692
原创 解决ListView复用的乱码问题
废话不多说,先说问题:就是我们在使用ListView的时候一般都ViewHolder进行复用。但是当我们对于item里面的某个控件进行判断来是否显示或者隐藏的时候,就会出现乱码的问题。具体的原理就是不说了没什么用。解决方法就是比如我们channalInfo.getType()==0的时候设置iv_ch_yinys和iv_ch_suo设置为隐藏。就必须在channalInfo.getType(
2017-05-16 08:43:24
1701
原创 详解Android中图片轮播
现在的应用中有很多这种图片轮播控件,今天就来介绍一下怎么实现的。其实挺简单,只用把我的代码copy过去就好。好吧,下面就来具体实现 一下喽。 首先分析图片有图片和文字,哇(图片上面没文字)文字就算是我赠送的。那就创建一个实体类public class Ad { private int iconResId; private String intro; public Ad(in
2017-01-25 14:38:30
1127
原创 Android 6.0运行时获取权限详解
最近在工作过程中会遇到,明明已经在AndroidManifest.xml中配置了权限,但是就是没有作用,百度了之后才发现现在在应用系统大于等于6.0的手机上面,需要动态的获取权限。就是当你需要这个权限的时候,需要手机给用户一个提示选择是否同意开启这个权限。看到网上有很多关于这方面的文章,但是大部分都是很随意的copy别人的,看起来好像很麻烦似的,其实动态获取权限就那几行代码就可以搞定。接下来就举
2016-12-04 14:06:12
7117
原创 详解Android中获取SD卡和内存的空间信息
在Android中如何获取SDCard和手机内存的总空间和可用空间等信息。创建一个新的Android工程,工程名字为《获取存储空间大小》,包名为:com.connect.storageSize 这里使用默认生成的布局文件和Activity类。 修改布局文件activity_main.xml 布局文件第二部分: 编写业务代码 业务代码第一部分: 业务代码第二部分: 在上述方
2016-08-21 17:20:19
2033
原创 详解Android中调试桥--adb
Android调试桥–adbadb是什么?adb有什么用?adb工具如何用?adb是用来管理模拟器和真机的通用调试工具,该工具功能强大,直接打开cmd即可使用adb命令,adb的全称为Android Debug Bridge,是起到调试桥的作用,通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具,adb的工作方式比较特殊,采用**Socket T
2016-08-21 12:52:29
3476
原创 java异常之运行时异常和非运行时异常
RuntimeExceptionRunntimeException的子类: ClassCastException 多态中,可以使用Instanceof 判断,进行规避 ArithmeticException 进行if判断,如果除数为0,进行retu
2016-08-13 22:25:03
3884
原创 java异常处理之抛出异常
抛出处理定义一个功能,进行除法运算例如(div(int x,int y))如果除数为0,进行处理。功能内部不想处理,或者处理不了。就抛出使用throw new Exception(“除数不能为0”); 进行抛出。抛出后需要在函数上进行声明,告知调用函数者,我有异常,你需要处理如果函数上不进行throws 声明,编译会报错。例如:未报告的异常 java.lang.Exception;必须对其进行捕捉
2016-08-13 22:20:25
6299
解决Android Studio不能打开genymotion的问题
2016-08-06
解决Genymotion不能安装输入法的问题
2016-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人