pxfile Blog

Thinking will not overcome fear but action will.

Hashmap、concurrenthashmap和synchronizedmap – 哈希表对比

HashMap、ConcurrentHashMap和SynchronizedMap – 哈希表对比 在Java中,HashMap是一个非常有用的数据结构。几乎每一个Java应用都会使用到它。我之前的博文中有介绍过如何实现一个线程安全的缓存,在这个例子中,我就使用到了HashMap。然而,需要注意的是,HashMap本身并不是一个线程安全的Collection类。 常见问题 Con...

H5与native交互之jsbridge技术

H5与Native交互之JSBridge技术 在android中,native与js的通讯方式与ios类似,ios中的通过schema方式在android中也是支持的。 javascript调用native方式 目前在android中有三种调用native的方式: 1.通过schema方式,使用shouldOverrideUrlLoading方法对url协议进行解析。 这种js的调...

为什么主线程不会因为looper.loop()里的死循环卡死?

Android中为什么主线程不会因为Looper.loop()里的死循环卡死? (1) Android中为什么主线程不会因为Looper.loop()里的死循环卡死? 这里涉及线程,先说说说进程/线程,进程:每个app运行时前首先创建一个进程,该进程是由Zygote fork出来的,用于承载App上运行的各种Activity/Service等组件。进程对于上层应用来说是完全透明的,这也是...

Glide的缓存机制

Glide的缓存机制 内存缓存 内存读取 默认情况下,Glide自动就是开启内存缓存的 当我们使用Glide加载了一张图片之后,这张图片就会被缓存到内存当中,只要在它还没从内存中被清除之前,下次使用Glide再加载这张图片都会直接从内存当中读取,而不用重新从网络或硬盘上读取了,这样无疑就可以大幅度提升图片的加载效率 调用skipMemoryCache()方法并传入true,就表示禁...

Fragment

Fragment Fragment的生命周期,和Activity如何交互 (addFragment之后会走哪些过程呢?replaceFragment呢?) Android Fragment 真正的完全解析(上) 自从Android 3.0中引入fragments 的概念,根据词海的翻译可以译为:碎片、片段。其目的是为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电...

Aidl

AIDL AIDL基本使用 编写Aidl文件时,需要注意下面几点: 1.接口名和aidl文件名相同。 2.接口和方法前不用加访问权限修饰符public,private,protected等,也不能用final,static。 3.Aidl默认支持的类型包话java基本类型(int、long、boolean等)和(String、List、Map、 CharSequence),使用这些类...

Android性能优化

Android性能优化 四个方面 可以把用户体验的性能问题主要总结为4个类别: 流畅 稳定 省电、省流量 安装包小 性能问题的主要原因是什么,原因有相同的,也有不同的,但归根到底,不外乎内存使用、代码效率、合适的策略逻辑、代码质量、安装包体积这一类问题,整理归类如下: 快:使用时避免出现卡顿,响应速...

Activity启动过程

Activity启动过程 ActivityManagerServices,简称AMS,服务端对象,负责系统中所有Activity的生命周期 ActivityThread,App的真正入口。当开启App之后,会调用main()开始运行,开启消息循环队列,这就是传说中的UI线程或者叫主线程。与ActivityManagerServices配合,一起完成Act...

Bitmap内存占用的计算方式

bitmap内存占用的计算方式,如何优化加载图片 bitmap内存占用的计算方式 Android中一张图片(BitMap)占用的内存主要和以下几个因数有关:图片长度,图片宽度,单位像素占用的字节数。 一张图片(BitMap)占用的内存=图片长度图片宽度单位像素占用的字节数 注:图片长度和图片宽度的单位是像素。 图片格式一个像素占用字节 Alpha_8 : 1 Kindex : 1 ...

Ams和wms理解

Android的AMS和WMS理解 浅谈ActivityManagerService ActivityManagerService AmS—ActivityManagerService.java,android系统服务,Activity管理的服务端,用于管理activity的各种行为,控制activity的生命周期,派发消息事件,低内存管理等,实现了IBinder接口,可以用于进程间通信...