- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 详解Java中的自动装箱拆箱
详解Java中的自动装箱拆箱一段代码引发的问题最近在学习一本关于java虚拟机的书,其中有一段关于自动装箱陷阱的示例代码如下: public static void main(String[] args) { Integer a = 1; Integer b = 2; Integer c = 3; Integer d = 3; Integer e = 321; Integer f = 321;
2020-07-27 10:24:51
311
1
原创 带你手撸一个Retrofit
前言Retrofit是一个优秀的网络请求框架的封装,它本身不请求数据,网络请求的工作由OKhttp负责。现在比较流行的MVP框架通常是由Retrofit+Rxjava+MVP来构建的。任何一款优秀的框架,都有值得我们去学习的亮点。下面我们先看一下Retrofit的使用方法,然后写一个我们自己的Retrofit。Retrofit的使用定义接口 interface API { ...
2019-10-14 16:20:16
339
原创 Android apk优化之资源混淆7zip压缩
##目的启用资源文件res混淆及压缩的好处:增加破解难度,用无意义的字母替换掉资源文件目录及名称,如把res/drawable/wechat变为r/d/a。目前主流大厂的apk打开后,资源目录都是r文件夹,看不到真实的资源文件名,就是做了资源文件混淆。减小打包后的apk体积。##原理通过resource.arsc文件格式,混淆步骤为:解析arsc文件,主要为全局与资源名字符串池...
2019-10-12 11:03:58
1816
原创 教你快速写一个EventBus框架
前言EventBus相信大多数人都用过,其具有方便灵活、解耦性强、体积小、简单易用等优点,虽然现在也有很多优秀的替代方案如RxBus、LiveDataBus等,但不可否认EventBus开创了消息总线时代,有很多优秀的思想可以供我们来借鉴学习。下面就让我们来撸一个超简单的EventBus,领略其实现方式的主要思想。实现思路先看一下GitHub中官方用法介绍:1.定义消息实体类public...
2019-10-11 12:44:41
434
原创 git branch -a无法显示最新分支问题
描述有时我们会遇到在远程仓库中新建了分支,然后在本地使用git branch -a查看分支时,并没有最新创建的分支。解决使用git fetch 拉取远程分支的更新即可。从一个或多个其他存储库中获取分支和/或标签(统称为“引用”)以及完成其历史所必需的对象。 远程跟踪分支已更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。原文链接:https:/...
2019-05-14 09:26:37
5183
原创 Error:Please Select Android SDK(运行按钮红叉)
问题描述创建kotlin和Java混合开发的项目,在build.gradle中添加依赖后出现无法运行问题,运行按钮出现红叉,rebuild不报错。试过网上很多方法,包括在Project Structure中配置、重新更新SDK文件等等,都无效。解决方法删除项目.idea文件夹下面的libraries文件夹File-Sync Project With Gradle Files...
2019-02-13 15:05:19
478
原创 AndroidStudio常用快捷键
Android Studio常用快捷键工欲善其事,必先利其器 快捷键 说明 Ctrl+C 复制 Ctrl+X 剪切 Ctrl+V 粘贴 Ctrl+Y 删除当前行 Ctrl+D 复制当前行到下方 Alt+Insert 快速代码生成 Ctrl+Z 撤销 Ctrl+Shift+Z 反撤销...
2018-08-03 17:00:06
302
原创 RxBus的使用及解析
前言相信项目中使用了Rxjava的你,一定会选择使用RxBus而不是EventBus作为数据总线工具。那么你真的了解RxBus吗?下面就跟着我一起来探个究竟吧 注:本文基于Rxjava2.0,还在使用Rxjava1.0的童鞋赶紧升级一波吧解析我们都知道,Rxjava基于观察者模式,上游发送数据,下游通过回调接收数据。我们试想一下,假如我们在A页面发送数据,并把产生的Obs...
2018-07-25 21:06:15
2783
3
原创 Rxbinding使用案例及分析
前言当今天下,黄巾贼起,狼烟四顾……咳,不好意思剧本拿错了。当今天下,Rxjava异军突起,凭借其简洁明了过程可控的链式编成,和强大的操作符,深受广大开发者青睐,同时也出现很多Rx相关库,如Rxbinding、RxPermission等,还有常用的RxBus(这个不是库)。今天就来介绍一下Rxbinding的使用以及一些实用案例。简介RxBinding在Github上的介绍只有一句...
2018-07-23 16:55:11
992
原创 Rxjava操作符之辅助操作
前言本文介绍辅助类操作符(基于Rxjava2)如下:dodelaydelaySubscriptionmaterialize/dematerializeobserveOnsubscribeOnserializetimeIntervaltimeouttimestamptoXXXusing1,do描述:注册一个动作作为原始Observable生命周期事件的...
2018-07-19 17:34:07
1346
原创 Rxjava操作符之过滤操作
前言:本文将介绍以下过滤类操作符(基于Rxjava2.0):filterofTypetaketakeLastfirstfirstOrErrorlastlastOrErrorskipskipLastelementAtelementAtOrErrordebouncethrottleWithTimeoutdistinctignoreElementssample...
2018-07-17 18:01:11
1159
原创 Rxjava操作符之结合类操作符
前言本篇介绍结合类操作符,包括:concat、concatArray、concatDelayError、merge、mergeArray、mergeDelayError、zip、zipWith、combineLatest、combineLatestDelayError、join、joinGroup、startWith、startWithArray、switchOnNext1,concat(...
2018-07-16 17:51:15
547
原创 Rxjava操作符之变换操作符
1,map()描述:对原始Observable发射的每一项数据应用一个你选择的函数,然后返回一个发射这些结果的Observable官方示意图:示例: Observable.just(1, 2, 3, 4, 5) .map(new Function<Integer, String>() { ...
2018-07-12 09:07:08
641
1
原创 Rxjava操作符之创建操作符
Rxjava创建类操作符基本创建操作符:create()描述:创建一个最基本Observable对象示例:Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter...
2018-07-11 12:28:39
472
3
原创 关于腾讯bugly热更新签名问题
一、问题1,很多人刚开始使用腾讯bugly的热更新时,可能会遇到在使用tinkerPatchRelease生成基准包时,生成的apk名称为app-release-unsigned.apk,这是没有经过签名的。而官方文档中是生成的app-release.apk2,在使用buildTinkerPatchRelease生成补丁时,生成失败,报错can't the get signConfig f...
2018-07-10 11:52:31
856
原创 关于WebView无法返回上一页问题解析
一、问题描述之前项目中用到WebView,一般都是这么写的mWebView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url) { mWebView.loadUrl(url); return tr...
2018-07-06 17:57:29
4545
1
原创 阿里云服务器配置Tomcat web环境无法访问
问题描述:购买了阿里云服务器,使用阿里云市场上的一键安装web环境包来配置了java环境,安装完成后,在浏览器访问公网ip无法访问,正常情况下应该能访问到Apache主页面的。解决办法:在服务器实例中配置相应端口的安全组规则,具体步骤:在服务器实例页面点击 更多 > 网络和安全组 > 安全组配置 点击配置规则此时打开了安全组规则列表如下,默认是只...
2018-07-02 17:54:21
1153
1
原创 Android开发模式学习之代理模式
一,概述代理模式是Android中比较常用的设计模式,不仅在系统源码中经常出现,平常使用的各大开源框架也时常见到它的身影。代理模式又叫委托模式,其实就是在使用者和被使用者之间,增加一个第三方,使用者不再直接与被使用者打交道,而是一切操作都交与这个第三方来实现。例如甲要租房,会找个中介,中介帮助甲去找房、看房和交租金,甲只要结果就行了。代理模式的组成:Abstract Subjec...
2018-03-14 15:58:36
390
原创 Error:Java home supplied via 'org.gradle.java.home' is invalid
出现缘由 在打开Github上下载的项目后,出现错误 Error:Java home supplied via ‘org.gradle.java.home’ is invalid. Invalid directory: F:\Develop-Tools\jdk而我的电脑上是没有这个目录的。解决方法 打开项目下的gradle.properties,删去如下一行: org...
2018-03-07 12:33:55
528
原创 cannot resolve synbol '?attr/actionBarSize'错误
.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary"/>升级AS到3.
2018-01-23 17:59:50
5308
2
原创 Android5.0 MaterialDesign初体验
MaterialDesign设计理念越来越普及,一直都没来得及跟进学习,趁现在的空闲学习一下。共享元素如今各大APP都能见到共享元素的身影,不太清楚的小伙伴看下示例效果,这是两个activity页面 使用共享元素的必备条件: 1,主题需要Theme.AppCompat下的主题才能看到效果。 2,需要在Android5.0(LOLLIPOP)及以上系统下运行。如果项目支持的最低
2018-01-19 14:11:15
325
原创 Android绘图Canvas与Paint属性汇总
在我们写自定义控件画比较复杂的图形时,可能会经常出现忘记画布或画笔的某些属性和参数怎么写的情况(至少我是这样…),因此在查询资料后在这里总结一下,以便查阅。Canvas属性DrawPoint,绘制点canvas.drawPoint(x,y,paint);DrawLine,绘制直线canvas.drawLine(startX,startY,endX,endY,
2018-01-18 16:02:50
858
原创 Android调用本机地图APP
官方文档地址高德:http://lbs.amap.com/api/amap-mobile/guide/android/route 百度:http://lbsyun.baidu.com/index.php?title=uri/api/android 腾讯:http://lbs.qq.com/uri_v1/guide-route.html 谷歌:https://developers.google.
2017-11-03 13:28:55
2466
原创 Unescaped & or nonterminated character/entity reference
在给TextView设置的文本中包含&时,提示Unescaped & or nonterminated character/entity reference因为&是特殊字符,解决方法是:将”&”改写成”&”
2017-11-02 17:46:41
3550
1
原创 关于Android事件传递与分发
最近在看事件分发方面的知识,主要看了郭神之前的文章Android事件分发机制完全解析,文章由浅入深讲解很细致清晰。里面有这样一句话 “Android中touch事件的传递,绝对是先传递到ViewGroup,再传递到View的” 看到这里就一直想要知道,touch事件是怎么传递到viewgroup的,搜了几篇文章也都没讲清楚。直到看到这篇Android FrameWork——Touch事件派发过程
2017-07-14 14:15:59
425
原创 自定义逐格走旋转圆盘
前言最近在不断学习自定义控件,项目中有个旋转圆盘的需求,需要一个刻度一个刻度的走,网上没发现有符合要求的,遂自己实现一下,先看下效果(录完才发现没有触摸轨迹,,前面旋转的是手滑动的,大家懂哈~)需求 1,圆盘可控制顺时针与逆时针旋转,圆盘中间需要设置图片 2,旋转需要按一个刻度一个刻度的走,具有跳跃性 3,需要提供顺时针与逆时针旋转的方法,以及可以禁止与开启旋转实现 首先当然是继承Vie
2017-07-01 19:50:57
604
原创 AS上传项目到GitHub报错can't finish Github sharing precess.
错误信息 can’t finish GitHub sharing precess Successfully created project ‘TestDemo’ on GitHub, but initial commit failed: * Please tell me who you are. Run git config –global user.email “you@example.com
2017-06-29 22:13:03
591
原创 超简单仿QQ步数显示控件
本着写文即学习的态度,记录下自定义一款超简单仿QQ步数加载控件,话不多数先看图。一,特性:1,外圈大圆、进度圆和数字显示的颜色均可以自定义 2,设置最大值和当前值 3,设置加载持续时间二,实现:1,画外圈大圆 2,画内圈进度圆 3,画文字在第二步与第三步要根据设置的最大值和当前值动态持续更新进行绘画,这里我使用valueAnimation获取中间值。自定义属性 <declare-s
2017-06-20 14:38:39
576
原创 集成环信打包报错xxx is not translated in zh
项目集成环信easeui,打包报此错误,原因easeui的多语言适配,打包时会进行翻译检查 解决办法:在项目build.gradle的Android节点中加入lintOptions { disable 'MissingTranslation'}
2017-06-14 15:35:08
746
原创 限制EditText不能输入中文的监听器
/** * edittext输入监听,不允许输入中文 */public class NoChineseTextWatcher implements TextWatcher { final String reg = "[^[\u4E00-\u9FA5]]";//正则表达式,非中文 private boolean isNotMatch = false; private E
2016-12-13 14:08:43
686
原创 EditText输入金额格式
/** * 用来限制EditText输入金额格式 */public class EditInputMoneyFilter implements InputFilter { /** * 最大数字,我们取int型最大值 */ public static final int MAX_VALUE = 2147483647; /** * 小数点后的
2016-09-18 13:56:37
1642
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人