
高级技巧-第三方框架
文章平均质量分 91
Chin_style
试着把内容大声念出来,说话与倾听都会用到大脑的不同位置,与人交谈效果最好
展开
-
实例:下载服务器zip资源(Json,Png,多种文件)
一、前期基础知识储备1)OKGO库地址:https://github.com/jeasonlzy/okhttp-OkGo作者已停止维护,所以使用时需要在文档基础上,做必要的修改。2)笔者用以下载服务器上一些简单的资源,比如Json,Png,这些资源都是打包成zip包的形式,尽量减小包体,便以传输。3)由于是zip的形式传输,所以资源下载到本地之后,会有一个解压缩保存本地的过程,解压缩完毕得到对应资源后,需要删去zip包。4)涉及到Json解析的时候,使用Gson库进行解析。二、.原创 2020-12-30 11:30:05 · 817 阅读 · 0 评论 -
实例:使用OKGO下载网络压缩包资源,然后解压缩放在本地使用
一,前期基础知识储备1)svg图片较大,所以需要压缩为zip包后放在服务器上,下载使用;2)使用OKGO库进行网络资源下载;3)使用工具库Blankj中的解压缩工具进行解压缩后,然后保存在本地;4)下载并且解压缩zip成功后,删除本地zip包,只保留解压缩得到的svg资源。二,上代码,具体实现1)引入OKGO和Blankj依赖:implementation 'com.lzy.net:okgo:3.0.4'implementation 'com.blankj:utilcod原创 2020-09-24 11:55:42 · 530 阅读 · 0 评论 -
实际开发项目中使用 LeakCanary-快速检测应用的内存泄漏问题
一,前期基础知识储备关于内存泄漏一些基础点可以参考笔者之前的文章《Android中内存泄漏超级精炼详解》补充一些说明:《LeakCanary:检测所有的内存泄露》我们曾看错了方向bitmap的大小并不是问题,当内存将要用完的时候,OOM可以随处发生。它们更多的发生在你创建一个像Bitmap这种比较大的对象的情况下。OOM只是一个症状源自于更深层次的问题:内存泄露。什么是内存...原创 2020-03-27 10:28:03 · 626 阅读 · 1 评论 -
2020 二月杂记 API24之上保存分享功能;鸿洋万能适配器+构造基类;AsyncTask最正确写法,防止内存泄漏。
一,前期基础知识储备二月中旬返工,一切平安。感恩!复工后梳理一下最近的一些东西,做成一个记录:1)API24之上的保存分享,谷歌弃用了此前的很多的存储API,这里拿一个项目里使用的做示例使用;另外就是面向API24的智能终端(现在几乎没有低于24的了吧),分享功能得依靠fileprovider来实现。2)RecyclerView万能适配器的使用,这里使用的不是此前博客里的那个,而是...原创 2020-02-28 11:46:28 · 636 阅读 · 0 评论 -
Bitmap精炼详解第(三)节:Bitmap的压缩
一,前期基础知识储备笔者之前有两篇文章:《Bitmap精炼详解第(一)节:Bitmap解析和加载》《Bitmap精炼详解第(二)节:Bitmap常见处理方式》解释了一些Bitmap的基础知识,有兴趣的读者可自行查看。1)如何计算Bitmap占用的内存如果图片要显示下Android设备上,ImageView最终是要加载Bitmap对象的,就要考虑单个Bitmap对象的内存占用了,如何计算...原创 2019-10-15 11:02:05 · 2889 阅读 · 1 评论 -
Dagger.Android — Dagger2进阶
一,前期基础知识储备参考笔者之前的文章《依赖注入框架-Dagger2 精炼详解》,里面有Dagger2的常规用法——@Inject,@Component,@Module,@Provides这些基本注解。这里沿用上篇文章中示例,在Activity中完成一个类的注入,代码如下:public class HttpActivity extends AppCompatActivity { ...原创 2019-09-23 17:13:05 · 421 阅读 · 0 评论 -
Android组件化架构
一,前期基础知识储备组件化是什么?组件化的定义是什么?组件化是什么时候形成的?在项目开发中,一般会将公用的代码提取出来用于制作基础库Base module,将某些单独的功能封装到Library module中,根据业务来划分module,组内的每个人分别开发各自的模块,如下图所示:项目初始架构图随着事件的推移,项目迭代的功能越来越多。扩展了一些业务模块之后,互相调用的情况就会增多,对某...原创 2019-09-14 15:04:10 · 742 阅读 · 0 评论 -
RxJava 2.0版本使用精炼详解
一,前期基础知识储备笔者之前写过两篇关于RxJava1.0的文章《RxJava理论讲解和简单实现》《RxJava常见操作符讲解》,感兴趣的读者可以看一看。里面有有关RxJava异步操作库的详细介绍,本文不再赘述。RxJava1.0版本添加依赖: implementation 'io.reactivex:rxandroid:1.2.1' implementatio...原创 2019-09-08 17:20:57 · 777 阅读 · 0 评论 -
依赖注入框架-Dagger2 精炼详解
一、前期基础知识储备1)依赖注入是什么?依赖注入是面向对象编程的一种设计模式,其目的是为了降低程序耦合,这个耦合就是类之间的依赖引起的。我们使用各种依赖注入框架比如View注入框架Butternife,Koltin注入框架kodein,更加简易的RoboGuice注入框架等等,都是为了降低类与类之间的耦合。实现依赖注入的方法通常有三种:①构造方法注入;②定义set方法注入;③注解注入。...原创 2019-09-05 15:01:58 · 882 阅读 · 0 评论 -
Shatter — Fragment的替代选择方案
一、前期基础知识储备 Fragment的难点主要在于堆回退栈和生命周期,官网的生命周期图示很少有人能完全理解。其实所谓的Fragment就是一个视图管理器,是Activity的一个辅助Controller(MVC架构中的Controller,和Activity地位一致)。 Fragment中的有些问题是可以规避的,有些问题则是难以解决的。如果不想陷入被Bug包围...原创 2019-08-27 10:59:31 · 1935 阅读 · 0 评论 -
图片加载库Glide精炼详解
一、前期基础知识储备现在Android的图片加载库十分的成熟,从最早的老牌图片加载框架UniversalImageLoader(2011年),到后来Google推出的Volley(2013年),再到后来的新兴军Picasso(2012年)和Glide(2013年),当然还有Facebook的Fresco(2015年)。每一个都非常稳定,功能也都十分强大。因为实现的功能较为相近,所以开发者学习其中一...原创 2018-04-19 11:28:57 · 1180 阅读 · 0 评论 -
网络通讯库OkHttp精炼详解
安卓发展的初期阶段,为测试安卓网络响应的功能,一群美国的安卓工程师跑到了网普遍不好的非洲,在那里弱网的情况下,试用应用程序。然后根据当地的实际情况,这群安卓工程师编写了出了这个非常有名的网络通讯库——OkHttp,专门用来解决弱网情景下的应用程序联网问题,取得了非常好的反响。一、前期基础知识储备为什么需要一个HTTP库?(1)HttpURLConnection非常弱起初Androi...原创 2018-04-07 21:51:43 · 355 阅读 · 0 评论 -
RxJava+Retrofit完成网络请求
一、前期基础知识储备在前面的四篇文章里,笔者已经分别讲解过RxJava的用法和Retrofit的用法,前者实现异步操作,后者实现网络请求,天底下还有被这么一对更合适的CP的吗?Retrofit1.0的时候,Jake Wharton就把Retrofit支持了RxJava语法,后来证明非常正确,Retrofit首席网络请求框架的地位,可以说是与RxJava的结合密不可分。———————————————...原创 2018-04-07 17:19:50 · 592 阅读 · 0 评论 -
网络通讯库Retrofit精炼详解第(二)课:Retrofit各种注解的使用
一、前期基础知识储备在上一篇文章《网络通讯库Retrofit精炼详解第(一)课:Retrofit基础理论和简单实现》中,笔者详细介绍了Retrofit的一些基础知识,并留下了有关于Retrofit注解类型的问题到第二篇文章,那么本文就来具体讲解一下Retrofit中各种注解类型的使用。以下是Retrofit的常用注解表:Path GET Query QueryMap Patch POST ...原创 2018-04-07 14:40:33 · 1068 阅读 · 0 评论 -
网络通讯库Retrofit精炼详解第(一)课:Retrofit基础理论和简单实现
一、前期基础知识储备我们先来列举一下常见的网络框架:Afinal——作者已经停止更新,不推荐使用。本身也是聚合性框架,不推荐;Android-async-http——基于Apache HttpClient,Android6.0就用不了了,不推荐;xUtils——作者已经停止更新,不推荐使用。本身也是聚合性框架,不推荐;OkHttp——相对成熟的解决方案,Android6.0...原创 2018-04-07 12:10:03 · 459 阅读 · 1 评论 -
异步操作库RxJava精炼详解第(二)课:RxJava常见操作符讲解
记住!:RxJava的操作符都是对被观察者的处理一、前期基础知识储备在笔者的前一篇文章《异步操作库RxJava精炼详解第(一)课:RxJava理论讲解和简单实现》中,分析了RxJava重要的基础理论(观察者模式及其四大元素;响应式编程及其事件调度;RxJava线程控制及其异步操作)并使用RxJava简单实现了一次线程切换的例子。下面本节内容将开始RxJava又一个重要的知识点的讲解—RxJava操...原创 2018-04-07 10:27:07 · 946 阅读 · 0 评论 -
异步操作库RxJava精炼详解第(一)课:RxJava理论讲解和简单实现
记住!:RxJava是一个异步操作库 — 适用于与后台服务器频繁交互的项目,执行异步任务频繁。“我们来谈一谈哪些库会让开发变得更加困难,或者说开始的时候更困难。但总的来说,这些都是好工具。RxJava,对于那些没有听说过的人来说,这个库的想法是,过去的代码从A 点开始,到B 点结束。但在Android 世界中,移动开发世界中,这一切就都不一样了。*你从A 点开始。然后人们点击某些东西,所以你必...原创 2018-04-06 23:12:43 · 1838 阅读 · 0 评论 -
网络通讯库Volley精炼详解第(一)课:Volley介绍和简单使用
一、前期基础知识储备库最有价值的地方在于可逆:你将库添加到你的应用程序中,之后也可以将其删除(没有任何开销)。随时都能拿出来。不是所有的东西都可以这样,但如果它可以的话,请把它做成一个库,而不是和你的应用终生绑在一起。选择正确的库意味着你可以拥有一个已经成熟的更好的解决方案,而不是花费三个月来重新构建它。了解这些库是第一步。笔者会在第三方库做一个系列讲解,为著名的库,写写传记。本节开始谷歌推出的网...原创 2018-04-05 13:28:48 · 385 阅读 · 0 评论 -
网络通讯库Volley精炼详解第(二)课:使用Volley加载网络图片
一、前期基础知识储备笔者在之前的一节文章里《网络通讯库Volley精炼详解第(一)课:Volley介绍和简单使用》讲解了Volley的一些基本概况,并简单实现了一段网络文本的数据的请求,接下来本节内容,将实现Volley的另一项高效的用法—加载网络图片。这也是Volley作为知名库的一大特点所在。Volley是将AsyncHttpClient和Universal-Image-Loader的优点集成...原创 2018-04-05 13:53:28 · 241 阅读 · 0 评论