DQ Blog

Never leave that until tomorrow , which you can do today .

重拾系列之——JVM垃圾收集机制

1、概述 对堆内存中已死亡或长时间不使用的对象进行清除和回收,注意是堆,而不是虚拟机栈或常量池。说白了其实就是对谁,在什么时候做了什么不可描述的事。 2、判断对象是否可被回收 2.1、引用计数法 对象引用一次,计数器+1,引用失效一次,计数器-1,直到计数器为0时,对象可被回收。 但是这样有个缺点,就是循环应用的对象无法被回收,比如有A和B两个对象,A持有B的引用,B同样持有A的引用...

Android+Java后端数据交互加密——AES+RSA

早前公司新开发了个项目,在数据加密部分讨论后选择了AES+RSA方式(对称+非对称)。参考了网上部分比较优秀的例子后,最终使用了一下实现方式,有需要的朋友可以在文章的最后获取完整demo。话不多说,直接开始。 下面会先简单介绍加解密思路,然后再分别介绍Java后端和Android端的实现,最后再简单搭建个环境实现两端数据加解密。 加密解密流程 一、加密: 1、客户端和服务端双方约...

Android 手撸一个简易路由Router

上一篇文章 介绍了搭建一个组件化项目,但是有一个痛点是我们必须要解决的,那就是组件之间的通信,用惯了单体结构项目的同学,大多数是使用显示Intent进行Activity的,但是这种做法在组件化项目中是行不通的,毕竟各组件是相互独立的,并不能持有另一个组件的引用。 那只能用别的方法了,路由表是目前比较流行的方案,这里推荐两个比较多人喜欢的路由框架,Arouter 和 ActivityRout...

真香系列之Android 组件化开发

随着项目日益变得复杂、庞大,单一结构项目变得越来越难以维护,平时改个很小的功能,往往有种牵一发而动全身的赶脚,特别难受。最近简单尝试了下组件化后,嗯~真香。 先上个项目结构图,简单分了壳app、主页main、登录模块login和个人中心模块member,另外还简单拆分了公共组件、基础组件和路由。 开始搭建 首先创建壳工程,app模块下里面什么也不需要,它只是个空客,如果不小心默认生成了...

RecyclerView 局部刷新、删除错乱

列表的局部刷新和删除错乱问题尽管网上已经有很多牛人分享过解决方法,这里还是根据自己的实践记录一下吧。 一、局部刷新 有这样的场景,我们需要修改item中的某一要素,如:详情介绍,那么通常有以下几种方式: 1. Adapter.notifyDataSetChanged() 2. Adapter.notifyItemChanged(position) 3. Adapter.not...

Android Jetpack之Navigation

开始 此篇章简单介绍Android Jetpack之Navigation组件的使用,概要介绍请参考Android开发者文档 配置环境 首先新建一个工程,然后创建Activity,这里AS提供了一些模板,我们可以选Navigation相应的模板,我这里为了熟悉编写流程,所以就建了个空的Activity。 要使用Navigation组件,Google方面有些限制:AS必须要3.3及以上的...

Android BrocastReciver广播使用

BrocastReciver(广播)是Android四大组件之一,在Android体系中占据比较重要的地位。比如监听网络的变化、应用安装卸载、电量变化等等 广播按类型可分为普通广播、有序广播。按注册方式分为静态注册和动态注册 1、普通广播:sendBroadcast()方法发送,顺序不确定,无法拦截;但是效率较高 2、有序广播:sendOrderedBroadcast()方法发送,顺...

Android Intent 传输大图片

Android中的Intent作为四大组件间通讯的桥梁,支持传输基本数据类型、序列化对象等等 但是要传大图片呢?能不能传呢?下面开始做个试验,先准备一张近500k大小的图片,存放在mipmap下 直接通过Intent的putExtra方法传输,并且打印bitmap大小。 Intent intent = new Intent(this, Main2Activity.class); bi...

重新认识 Android ContentProvider

介绍 1、是什么?:ContentProvider是Android四大组件之一,也是五种数据存储的媒介之一,在Android中重中之重 2、作用?:进程间或进程内数据共享 本文简单介绍进程间数据共享,会使用到几个常用类和关键字,下面先介绍一下: 1、authorities:授权信息,在清单文件声明; 2、URI:统一资源标识符,格式:content://授权信息/表名;也...

重拾Handler

说到Handler,相信学过Android的同学都能随口说出:这家伙是线程间通信的一种机制。但是,平时用来发送消息的方式有哪些?Handler是什么时候和Looper关联的?又是怎么关联的?消息在子线程中发出,在UI线程为什么能获取的到?这这这。。。太难了 Handler不能单独使用,内部配合着Message,Looper,MessageQueue以及ThreadLocal,这几个平时比较...