android
android攻城师
专注移动开发
展开
-
rxjava总结
RxJava2.0特点 实现优雅 RxJava的实现方式 = 基于事件流的链式调用 逻辑简洁 使用简单 随着程序逻辑变得复杂性提高,它依然能保持简洁和优雅 定义 一个基于事件流,实现异步操作的库 作用 实现异步操作 注: 类似于 Android 中的 AsyncTask, handler 作用 使用步骤 使用方式1 1:创建被观察者 (Observable)& 生产事件 顾客入饭店 - 坐下餐桌 - 点菜 .原创 2020-07-15 10:17:37 · 146 阅读 · 0 评论 -
Retrofit 2.0总结
1. 简介 Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装。 原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装 App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作 设计模式 动态代理模式 那么Retrofit为何要这么设计呢? 我们一个应用的请求接口可能有很多个,通过动态代理模式...原创 2020-07-15 10:14:05 · 291 阅读 · 0 评论 -
Okhttp一些总结
OKHttpOkhttp调用流程 Okhttp时序图 Okhttp责任链模式调用逻辑 优点 1. 支持SPDY、HTTP2.0 SPDY:HTTP的兼容协议、支持多路复用请求、对请求划分优先级(优先返回文字,图片音频等随后返回)、压缩HTTP头,以减少请求数据量; HTTP2.0:添加了更安全的SSL协议 2.无缝支持GZIP来减少数据流量 ,发送的数据和接受的收据在传递过程中都是经过gzip压缩的,BridgeIntercept的interce...原创 2020-07-14 15:03:29 · 713 阅读 · 0 评论 -
Glide使用总结
简介 优点 与使用环境生命周期相绑定:RequestManagerFragment & SupportRequestManagerFragment 内存的三级缓存池:LruMemoryResources, ActiveResources, BitmapPool 内存复用机制:BitmapPool 为什么要绑定生命周期 可以实现网络请求根据生命周期而暂停、执行、恢复、释放等 可以实现资源比如图片的自动释放 降低了内存的压力 降低了内存泄漏的风险...原创 2020-07-14 13:50:42 · 201 阅读 · 0 评论 -
DataBinding 使用总结
DataBinding简介 DataBinding 是谷歌发布的框架数据绑定框架 是MVVM在android上的实现.用于降低布局和逻辑的耦合性,使代码看起来更简介 DataBinding 能省去FindViewById() ,减少Activity内的代码 能够单向或则双向绑定到layout 有助于防止内存泄漏 能自动进行空值检测避免空指针异常 使用步骤 在对应model的build.gradle里加入如下代码 数据绑定方式 BaseObservalbe原创 2020-07-14 10:58:07 · 881 阅读 · 0 评论 -
handle原理
handle原理handler 总体概述 使用场景 线程通信 handler 四个对象 handler message, messagequeue looper 总体流程图 总体流程图 handler使用的流程图 handler原理图 UML类图 handler 作用 线程间通信 通过runnable 回调进行消息处理 handler 初始化的时候都做了什么工作 获取当前线程的looper实例,然后和lo原创 2020-07-14 10:36:35 · 793 阅读 · 0 评论 -
android 性能优化三板斧
三板斧 Android Studio Profiler leakCanary 内存泄漏 BlockCanary UI卡的 性能优化 内存优化 优化方式 避免内存泄漏, 常见的内存泄漏 单例模式导致的内存泄漏 最常见的例子就是创建这个单例对象需要传入一个 Context,这时候传入了一个 Activity 类型的 Context,由于单例对象的静态属性,导致它的生命周期是从单例类加载到应用程序结束为止,所以即使已经 finish 掉原创 2020-07-10 11:34:49 · 164 阅读 · 0 评论 -
android App安全总结
app会遇到什么样子安全问题 以及对应的解决方案 app反编译 应对策略 进行代码混淆 进行资源文件混淆 app的二次打包 进行apk的加固 (360加密 dex加密) app的进程劫持 主要对象是xposed 应对策略 检查手机是否安装xpoed 异常方式查看堆栈是否包含xposed app DNS劫持 使用Https 参考 https://zhuanlan.zhihu.com/p/.原创 2020-07-10 10:16:08 · 263 阅读 · 0 评论 -
Android 内存泄漏解决方案
Android 内存泄漏总结内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一起分享和学习,也给自己一个警示,以后 coding 时怎么避免这些情况,提高应用的体验和质量。我会从 java 内存泄漏的基础知识开始,并通过具体例子来说明 Android 引起内存泄漏的各种原因,以及如何利用工原创 2020-07-09 23:30:22 · 305 阅读 · 0 评论 -
android ANR 问题
android ANR 问题 List item1、ANR排错一般有三种类型KeyDispatchTimeout(5 seconds) --主要是类型按键或触摸事件在特定时间内无响应BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成ServiceTimeout(20 secends) --小概率事件 Service在特定的时间内无法处理完成2、哪些操作会导致ANR在主线程执行以下操作:高耗时的操作,如图像变换原创 2020-07-09 22:39:31 · 160 阅读 · 0 评论 -
ART和Dalvik的理解
ART和Dalvik区别Art上应用启动快,运行快,但是耗费更多存储空间,安装时间长,总的来说ART的功效就是"空间换时间"。ART: Ahead of Time Dalvik: Just in Time什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一,它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式原创 2020-07-09 22:22:22 · 273 阅读 · 0 评论 -
Android View事件传面试相关
View 事件分发传递图示 事件拦截的应用场景 https://www.jianshu.com/p/d82f426ba8f7 https://www.jianshu.com/p/b21a2d91a704 面试题 为什么要有事件传递机制 因为android的view 是树形结构,当点击事件发生的时候 要经过好几层的View ,若是没有事件传递机制 ,就没办法确定这个事件给谁处理了,所以事件传递机制就是为了处理这个问题而出现的 android布局加载的过程 用原创 2020-07-01 15:28:28 · 252 阅读 · 0 评论 -
主线程looper是死循环为啥没有ANR
面试官问:主线程looper是死循环为啥没有ANR面试者回答:1,ANR的根本原因是在5s内没有响应输入的事件(如 按钮点击,屏幕触摸)2,BroadcastReceiver 在10秒内没执行完造成上面两点的原因有很多 比如主线程做了耗时的操作 再看Android主线程:Java程序我们都知道,入口从main()方法执行,安卓用java,也不例外,入口从Activity...原创 2019-09-17 10:18:04 · 219 阅读 · 0 评论 -
上海某公司android面试题
进程保活 ,进程的优先级https://blog.csdn.net/chenliguan/article/details/54603611图片加载框架的对比https://juejin.im/entry/5c64d3acf265da2dc6759f3b广播的静态注册和动态注册有什么区别 应用场景https://blog.csdn.net/yanxiaosa/article/details...原创 2019-09-17 10:10:32 · 196 阅读 · 0 评论 -
上海某公司android面试题
你对多线程的理解 如何开启多线程一个程序有多条路径执行就是多线程 继承Thread 实现runnable接口 实现Callable接口列举你知道的线程同步方法 同步方法 : 使用synchronized修饰的方法 同步代码块: 使用synchronized修饰的代码块 使用volatile实现线程同步 使用重入锁实现线程同步:reentrantlock 参考...原创 2019-09-17 10:07:50 · 228 阅读 · 1 评论 -
Android使用Palette获取图片主色调
Palette简介 Palette是Android中的调色板,我们可以通过传递一个Bitmap来获取一个颜色列表,可以通过类中封装的分析算法来获取其中的Vibrant(充满活力的)Vibrant dark(充满活力的黑)Vibrant light(充满活力的亮)Muted(柔和的)Muted dark(柔和的黑)Muted lighr(柔和的亮) 也可以获取一个颜色列表,自己写算法原创 2016-06-27 14:22:28 · 9090 阅读 · 0 评论