一、起源 由于业务的增长提高了项目的复杂性,为了更好的适应团队开发,提高开发效率,实行组件化乃大势所趋。 组件化可以让我们程序更容易的扩展、更方便的维护,更快捷的同步开发与更...
一、起源 由于业务的增长提高了项目的复杂性,为了更好的适应团队开发,提高开发效率,实行组件化乃大势所趋。 组件化可以让我们程序更容易的扩展、更方便的维护,更快捷的同步开发与更...
解决方案: setExtraBottomOffset + 自定义 CustomXAxisRenderer 1.假设自定义x坐标的textSize为xAxis.textSize...
EventBus 是一款在 Android 开发中使用的发布/订阅事件总线框架,基于观察者模式,将事件的接收者和发送者分开,简化了组件之间的通信,使用简单、效率高、体积小!下...
这是个日期显示和选择库,可以用来选择一段连续的和多个不连续的日期,具体的UI完全抽象出来了,可以高度自定义(GITHUB地址) 支持的功能: 选择一段连续的和多个不连续的日期...
1 前言 年初做了一款Android TV 应用,用到了MQTT。主要实现的是类似一些景区利用大屏幕实时显示景点人数,超过人数就不允许进入。即利用闸机设备监控到进景区的游客,...
开启多版本方式:在app下的build.gradle添加如下设置 例:main下的资源是公用的各自对应的资源文件路径如src/main/res-newapp 只需添加newa...
该博文是博主第一次接触串口通信做的笔记,并没有详细地解析SerialPort类和SerialPortFinder类,如果感兴趣的话,可以参考Android串口通信:抱歉,学会...
本文源码解析基于Glide 4.6.1不知道大家最开始使用Glide的原因是什么?我的原因很简单就是冲着那句Glide.with(this).load(url).into(i...
AOP:面向切面编程(Aspect-Oriented Programming)。如果说,OOP如果是把问题划分到单个模块的话,那么AOP就是把涉及到众多模块的某一类问题进行统...
需在App下的build.gradle进行如下配置1.signingConfigs的配置需要写在buildTypes模块之前如果不按顺序写,会报Could not get u...
打开app的时候,会有短暂的1秒--2秒的白屏,然后才进入到程序界面。 解决方法很简单,修改下启动页的主题,如下: 在styles.xml新建主题,重点是android:wi...
用户使用应用出现异常后,会由默认的异常处理器来处理异常。这导致难以定位问题,我们要做的就是把这个任务接管过来,自己处理异常,包括收集日志,保存到本地,然后上传到服务器。为了方...