
移动端安卓开发
文章平均质量分 79
Zhou Jiang
今天,你努力了吗?
展开
-
HashMap实现原理与源码分析(JDK1.7与JDK1.8对比分析)
首先分析1.7源码原创 2020-03-12 00:16:49 · 685 阅读 · 0 评论 -
Android Handler:手把手带你深入分析 Handler机制源码
Android的Handler机制,我相信是每一位小伙伴面试都经历过的一道题目,Handler机制可以说是Android的很基础但是很重要的内容,因为深入理解了它,很多内容理解起来就变的轻而易举了,比如AsyncTask,HandlerThread, IntentService内部都用到了Handler机制,今天我们就从源码角度来分析它。为什么要有Handler机制 ?Handler机制...原创 2020-02-01 11:09:25 · 817 阅读 · 0 评论 -
Android Jetpack架构组件(九)WorkManager源码篇
上一篇讲解了WorkManager使用篇,本篇我们就从源码角度来分析WorkManager的工作原理。WorkManager的原理原创 2020-03-03 20:07:32 · 1933 阅读 · 2 评论 -
Android Jetpack架构组件(八)WorkManager使用篇
前言WorkManager是Jetpack很重要的一个组件,本篇我们就先来讲讲它是如何使用的,在讲解之前我们先了解关于后台处理的一些痛点。后台处理指南我们知道每个 Android 应用都有一个主线程,它负责处理界面(包括测量和绘制视图)、协调用户互动以及接收生命周期事件。如果有太多工作在主线程中进行,则应用可能会挂起或运行速度变慢,从而导致用户体验不佳。任何长时间运行的计算和操作(例如解...原创 2020-03-02 21:12:50 · 2442 阅读 · 0 评论 -
Android Jetpack架构组件(七)Room使用篇
前言前面几篇讲解了Lifecycle,LiveData,ViewModel,有了前面这几篇的铺垫,就能引出我们今天要讲解的Room了,Room是一个数据库访问组件,对SqLite数据库做了友好的封装,使我们在编码的时候,只需要注重逻辑的部分即可,数据库就交给Room去流畅的访问即可。Room使用步骤 > Github项目地址1 添加依赖build.gradle {apply p...原创 2020-03-01 11:38:50 · 1937 阅读 · 0 评论 -
Android Jetpack架构组件(六)ViewModel使用和源码篇
前言原创 2020-02-27 22:17:39 · 1570 阅读 · 0 评论 -
Android Jetpack架构组件(五)LiveData原理篇
前言上一篇我们讲解了Jetpack中LiveData使用篇, 本片我们从源码角度来分析LiveData.是如何实现的。LiveData源码分析我们就以上一篇的基本使用入手来分析源码class TestActivity : AppCompatActivity() { private val TAG by lazy { TestActivity::class.ja...原创 2020-02-25 00:03:40 · 914 阅读 · 0 评论 -
Android Jetpack架构组件(四)LiveData使用篇
前言:上一篇我们讲解了Jetpack中Lifecycle原理篇, 本片我来讲讲Jetpack中的另一个重要组件LiveData.LiveData概述LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。这种感知能力可确保 LiveDat...原创 2020-02-24 01:04:16 · 1104 阅读 · 0 评论 -
Android Jetpack架构组件(三)Lifecycle原理篇
前言上一篇讲述了Jetpack中的Lifecycle的使用,这一篇我们从源码角度来分析一下它是如何实现的。源码解析(基于最新的2.2.0版本)在上一篇的Lifecycle使用篇中我们知道了怎么使用,这里我们把源码部分贴出来,我们从使用的角度来分析源码是如何实现的:class DetailActivity : AppCompatActivity() { override fun...原创 2020-02-18 22:24:16 · 1628 阅读 · 1 评论 -
Android Jetpack架构组件(二)Lifecycle使用篇
前言 上一篇文章Android Jetpack架构组件(一)了解Android Jetpack中我们简单介绍了Jetpack组件,从本篇开始逐步的介绍Jetpack组件中的Architecture部分,本篇从Lifecycle开始。没有Lifecycle的时候如何管理声明周期?一般情況下,我们可以直接写一个接口LifecycleListener,在Activity的生命周期中对应的调用...原创 2020-02-17 18:08:22 · 1302 阅读 · 0 评论 -
DownloaderManager遇到的那些crash坑
DownloaderManager作为一个很好用的系统级别API用作下载文件很方便,我们这篇文章不介绍如何使用它,我们来说说在使用过程中出现的几个crash,如果出现了这几个crash,尤其是第三个,那么恭喜你,可以去买彩票了,嘿嘿首先来说第一个问题 Fatal Exception: java.lang.UnsupportedOperationException Cannot update...原创 2019-10-29 00:58:13 · 1751 阅读 · 0 评论 -
沉浸式状态栏底部的黑色矩形框问题
最近在项目中遇到了一个问题,就是我们的应用detail页面想要实现沉浸式状态栏,因为图片宽高比例和ImageView的宽高比例都是2.048:1,想要使图片宽高没有变形,使用fitSystemWindow属性后顶部图片的底部会出现一个矩形的黑框,下面我们来研究下这个问题。问题首先看一下布局文件,因为布局文件内容比较简单,这里就不多解释了<?xml version="1.0" enc...原创 2019-10-29 00:26:48 · 1195 阅读 · 0 评论 -
CoordinatorLayout和RecyclerView嵌套滑动冲突解决
Android开发中RecyclerView因为扩展性强,导致使用很广泛,而且效果也很酷炫,比如AppBarLayout+CollapsingToolbarLayout的使用可以达到很酷炫的折叠效果,今天我们不学习这些控件的具体的使用,今天我们来看一个在实际工作中会遇到的AppBarLayout+CoordinatorLayout+RecyclerView(其中包含横向滑动的RecyclerVi...原创 2019-10-28 23:28:19 · 13676 阅读 · 10 评论 -
Git详细使用三部曲(二)
Git详细使用三部曲(续)之前写了一篇关于Git的基本使用三部曲的博客-Git详细使用三部曲,通过项目详细介绍了Git有关add commit 和push的使用,今天就来讲讲更加高级的命令,保证你在项目开发中用得着。项目依然使用上次的项目,下面就步入正题吧。这次我们还是会按照开发流程来讲解这些命令的使用,具体会讲解到的命令如下:功能命令创建分支命令git branc...原创 2018-10-21 00:09:52 · 2190 阅读 · 0 评论 -
Git的详细使用教程——三部曲
Git的详细使用教程——Git三部曲 作为一名开发人员,在我们平时的开发中会经常遇到版本管理工具,今天我们就来说说Git的使用,最近我膜拜了蒋鑫的《Git权威指南》一书,收益良多,在此和大家交流交流。Git是一种分布式版本管理工具,每个人参与开发人员的电脑都是一台代码的仓库,使用起来特别灵活,这里我们就不对Git的安装和配置做说明了,网上相关内容很多。Git的优点也就不多说了,直接开...原创 2018-05-05 19:27:03 · 9945 阅读 · 2 评论 -
Java线程池讲解,仅看此一篇就够了
引言 我相信大家面试的时候都遇到过线程池有关的问题,这个问题被问到的频率很高,如果你不了解,或者仅仅是简单的了解的话,还是好好研究研究吧,因为它真的很有意思。线程池的意义我们有时候为了方便或者写一个测试的时候会这样启动一个线程: new Thread(new Runnable() { @Override pub原创 2018-01-26 19:03:46 · 1031 阅读 · 0 评论 -
JSON三种数据解析方法
引言 JSON数据现在是我们开发中用的最多的,百分之八十的数据都是通过JSON方式进行传输,那么想要学好JSON解析就要了解什么是JSON数据,怎么快速解析它从而提升开发效率。原创 2020-05-17 21:49:17 · 352359 阅读 · 11 评论 -
Android有效避免程序OOM-图片压缩和三级缓存
图片压缩技术和三级缓存策略防止程序OOM原创 2018-01-14 22:39:21 · 957 阅读 · 0 评论 -
Android性能优化(二)——内存泄漏
Android性能优化(二)——内存泄漏 前言 想要彻底搞懂内存泄漏(Memory Leak),就要从三个方面下手,什么是内存泄漏,内存泄漏有什么影响,如何解决内存泄漏三个方面入手。什么是内存泄漏及影响 ?每一个对象都是有生命周期的,当生命周期结束的时候会回收的,但是因为其他的持有这个对象的引用导致不能被回收,所以无法释放内存,长此以往的堆积在堆内存中会造成内存泄漏,因为程序分配的内存原创 2017-12-29 17:27:15 · 973 阅读 · 0 评论 -
HTTPS:用故事告诉你我的“前世今生”
引言 现在由于人们的安全意识越来越强了,对于互联网这个尤其走在时代前列的新宠来说,加密工作势在必行,现在很多公司和单位都在使用HTTPS,当然这个要看业务的具体情况。说到HTTPS,我们肯定就会提到加密算法,这个在本文的后面会做一个简单的阐述,本篇文章我会分为两个部分来讲解,第一个部分通过一个简单生动的故事来让门外汉都能理解HTTPS加密是什么以及重要性;第二个部门对HTTP和HTTP原创 2018-01-13 12:18:36 · 1182 阅读 · 0 评论 -
创建一个自己的开源项目
创建一个自己的有逼格的开源库原创 2017-06-23 17:11:08 · 1356 阅读 · 0 评论 -
RxJava+Retrofit+OkHttp实战
RxJava+Retrofit+OkHttp原创 2017-07-03 16:53:41 · 2526 阅读 · 1 评论 -
Android热修复原理和例子
Android热修复实现原创 2017-07-26 13:20:33 · 945 阅读 · 0 评论 -
Error:Error converting bytecode to dex
编译报错原创 2017-08-27 12:53:34 · 1115 阅读 · 0 评论 -
Android二维码识别技术
二维码识别原创 2017-08-27 14:04:59 · 1093 阅读 · 0 评论 -
Android性能优化(一) —— 布局优化
Android性能优化(一)—— 布局优化 最近一直在不停的阅读一些优质的书籍,《Android开发艺术探索》我已经看了三遍了,但是并不是每一次都非常细致的一字不落的看完,第一次看到话应该是比较走马观花一样的对本书有一个整体的认识,后面每一次看都是有侧重点的看,从中学到了很多的东西,所谓温故而知新,可以为师矣,说的一点不错。也看了《深入理解Java虚拟机》一书,这个就比较深入了,看起来还是比较吃原创 2017-12-28 18:23:29 · 907 阅读 · 0 评论 -
自定义控件之水波纹效果
自定义控件之水波纹效果 最近花了将近一周时间拜读了任玉刚大神的《Android开发艺术探索》,这本书很适合进阶阶段的童靴阅读,因为定位就是进阶书籍,所以很多基础的知识都是一笔带过的。在书本中学到了很多之前忽略的细节知识点。下面我想写一个水波纹效果的自定义控件,权当练练手。写之前得了解贝塞尔曲线,贝塞尔曲线真是一个有意思的东西,这里给大家推荐一个链接Android自定义控件-Path之贝赛尔曲线原创 2017-11-24 18:19:31 · 956 阅读 · 0 评论 -
Android的Gif动画加载
我们都知道Android是不直接支持Gif文件的加载的(当然了现在的Glide图片加载框架是支持GIF格式的文件的,Picasso暂时是不支持的,但是为了这一个小小的功能却导入一个库岂不是得不偿失,另外我们这里主要是学习),但是有时候美工会直接给我们Gif格式的文件,这时候如果能够直接使用的话岂不是比使用逐帧动画方便一些(先不考虑性能的问题),那么我们就会想办法,下面是一个自定义的GifView原创 2017-08-27 14:32:55 · 1042 阅读 · 0 评论