Hello,world


  • Home

  • Archives

RxJava-线程调度

Posted on 2019-09-15
RxJava 线程模型分析RxJava的被观察者在使用操作符时可以利用线程调度器–Scheduler来切换线程,例如 Observable.just("hello","Rxjava") .observeOn(Schedulers.newThread()) .map(new Function<String, String>() { ...
Read more »

数据库多线程研究

Posted on 2019-09-10
Android sqlite 并不是线程安全的,因此我们通常会使用,单例 SqliteOpenHelper,锁,或者事务来保证线程的安全。 DbflowDbflow 是开源的一个关系型数据库,设计方式对程序员非常友好,如简单的查询: select(name, screenSize) .from(Android.class) .where(name.is(“Nexus 5x”)) .and(versio ...
Read more »

内存管理-优化篇

Posted on 2019-09-08
首先认识关于内存的两个重要知识 内存溢出(Out of Memory):系统会给每个APP分配内存也就是Heap Size值。当APP占用的内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存时就会抛出的Out Of Memory异常。 内存泄漏(Memory Leak):当一个对象不在使用了,本应该被垃圾回收器(JVM)回收。但是这个对象由于被其他正在使用的对象所持有,造成无法被回收的结果。内存泄漏最终会导致内存溢出。 区 ...
Read more »

设计模式之代理模式-Proxy

Posted on 2019-09-06
代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 介绍意图:为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使 ...
Read more »

GC是如何响应不同的引用关系

Posted on 2019-09-06
三角引用的对象废话不多说, 直接实践一下, 三角引用的对象能否被 GC 回收呢? public class MainActivity extends AppCompatActivity { A a = new A(); A1 a1 = new A1(); A2 a2 = new A2(); @Override protected void onCreate(Bundle savedInstanc ...
Read more »

蓝牙传输基础

Posted on 2019-09-06
蓝牙数据传输基础Android蓝牙中涉及通用数据传输协议的有两种: SPP协议SPP协议是Android 2.0引入的API,是通过Socket的形式来实现数据传输及交互,有分客户端和服务端,手机一般以客户端的角色主动连接SPP协议设备。 BLE(Bluetooth low energy)协议BLE协议是Android 4.3引入的API,但手机厂商大部份在Android 4.4上才支持BLE,即低功耗蓝牙,一般我们开发的话是使用中 ...
Read more »

Glide源码研究

Posted on 2019-09-05
本文专注 Glide 核心的代码做研究与学习,网上的相关文章大多比较旧,Glide 代码已经做了改动和优化升级,很有参考学习的必要,故做了该篇内容,也便于面试时有所帮助。 注意:本文代码基于 Glide v4.8.0版本 Glide 图片加载流程Glide 的通常用法 Glide.with(this) .load(url) .into(target) with 方法返回一个 RequestManager ,是由 Requ ...
Read more »

RxJava-map&flatMap操作区别

Posted on 2019-09-03
map, flatmap 操作符在 RxJava 里都是用于数据类型转换 相同点:参数相同, 都是使用 Function(入参,返回值) 进行转换(将一个类型依据程序逻辑转换成另一种类型,根据入参和返回值),都能在转换后直接被 subscribe 不同点:返回参数不同 map返回的是 Function<? super T, ? extends R> R 类型, flatmap返回的是Function<? super T ...
Read more »

MVVM,MVP框架对比

Posted on 2019-09-03
要介绍MVP,MVVM,我们不得不提 MVC 框架,因为 MVC 是最早出现的软件设计典范,其他的都是在此基础上迭代更新而来的,各有优势,适用的场景各有不同,但他们的共同点是他们的目的都是为了复用代码。注意: 这些架构模式跟设计模式是两种不同的东西。 MVC架构MVC 的概念最早出现在二十世纪八十年代的 施乐帕克 实验室中(就是那个发明图形用户界面和鼠标的实验室),当时施乐帕克为 Smalltalk 发明了这种软件设计模式。 Mod ...
Read more »

String,StringBuilder,StringBuffer区别

Posted on 2019-09-02
String我们都知道 String 是 final 修饰的类,因此它的值是不可变的,这就导致每次对String的操作都会生成新的 String 对象。很明显,频繁对 String 做操作时,不仅效率低下,而且大量浪费有限的内存空间。简单的例子如 String str = "hello"; str += "world!"; 普通的 String + 操作, 由于 String 不可修改值, 因此会 ...
Read more »
1234…6

pickerX

53 posts
14 tags
© 2021 pickerX
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4