240 发简信
IP属地:北京
  • 120
    Android Aop

    OOP如果是把问题划分到单个模块的话AOP就是把涉及到众多模块的某一类问题进行统一管理。 Android AOP就是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种...

  • 120
    TouchEvent

    不设置任何事件、 c onTouchEvent返回true 手指划出c 亦如此 仅仅b onInterceptTouchEvent 返回 true 并未传递给c b 在mov...

  • 序列化 intent数据传输

    Android 里面为什么要设计出 Bundle 而不是直接用 Map 结构 Bundle内部是由ArrayMap实现的,ArrayMap的内部实现是两个数组,一个int数组...

  • Activity、Window、View三者关系

    什么地方需要window? 一句话总结:有视图的地方就需要windowActivity、Dialog、Toast... 一句话概括三者的基本关系 Activity中展示视图元...

  • 为什么Android要设计Binder呢?

    为什么Android要设计Binder呢?直接用Linux的IPC通信机制不行吗? 一是因为Android系统相比于Linux,对安全性有更高的要求,Android中的每个应...

  • 120
    插件化so库加载原理及实现

    系统加载 so 库的工作流程 当我们调用当调用 System#loadLibrary("xxx" ) 后,Android Framework 都干了些了啥? 在看下Syste...

  • 120
    String==汇总

    直接去常量池里查找是否有‘abc’,如果没有就创建一个,然后s1指向常量池对应字符 在堆里创建String对象,然后去常量池里检查存放‘abc’ 在堆里创建‘ab’和‘c’对...

  • Android 内存管理机制

    我们都知道,应用程序的内存分配和垃圾回收都是由Android虚拟机完成的,在Android 5.0以下,使用的是Dalvik虚拟机,5.0及以上,则使用的是ART虚拟机。 J...

  • AbstractQueuedSynchronizer- 独占锁实现细节

    1-ReentrantLock ReentrantLock是独占锁,而且内部可以是公平锁,非公平锁;公平锁:公平锁:加锁钱需要检查是否还有在排队(等待)的线程,优先排队的 非...

  • AbstractQueuedSynchronizer-1

    1 初次相识 在ReentrantLock锁代码中,你发现,锁的动作是由Sync的实例来处理,而Sync是继承了AbstractQueuedSynchronizer;而在Re...

  • 120
    RxJava的线程切换

    1 线程切换例子 输出结果为: Observer(观察者)的onSubscribe()方法运行在当前线程中。 Observable(被观察者)中的subscribe()运行在...

  • 120
    RxJava 的消息订阅

    1 简单使用步骤 1、创建被观察者(Observable),定义要发送的事件。2、创建观察者(Observer),接受事件并做出响应操作。3、观察者通过订阅(subscrib...

  • 120
    Android不在子线程更新UI

    报错 UI 的线程检查机制就已经建立了,所以在子线程更新就会报错。 子线程更新的错误定位 子线程更新的错误定位是 ViewRootImpl 中的 checkThread 方法...

  • 120
    Android 内存回收机制

    对于 Android 设备来说,我们每打开一个 APP,它的内存都是弹性分配的,并且其分配值与最大值是受具体设备而定的。此外,我们需要注意区分如下两种 OOM 场景: 1)、...

  • GC类型

    在Android系统中,GC有三种类型: kGcCauseForAlloc:分配内存不够引起的GC,会Stop World。由于是并发GC,其它线程都会停止,直到GC完成。 ...

  • Java 对象生命周期

    Java代码编译后生成的字节码.class文件从文件系统中加载到虚拟机之后,便有了JVM上的Java对象,Java对象在JVM上运行有7个阶段,如下: Created InU...

  • 120
    线程并发优化

    知道了如何解决线程安全问题,接下来就要考虑性能问题了 在并发的优化上,无锁的性能肯定是最好的,但是很多时候我们又不得不加锁,在加锁的方案中,有忙阻塞等待如自旋锁,以及休眠等待...

  • Synchronize实现原理

    JVM中的实现原理 我们平常在使用Synchronize进行加锁时,主要有两个方式,一种是锁住整个方法,将Synchronize字段加载方法名上,第二种是锁住一段代码,将Sy...