加载中
Android Dns全局Hosts映射方案

一、需求说明 开发中经常需要做一些网络请求,涉及到线上线下的灰度、正式环境切换,有时因为服务的不同,那么app内会存在多个域名的情况,甚至有些域名被添加到aar或者jar包中,修改起来也非...

Android 相册媒体库读写优化

一、快速查询手机中的图片和视频 本方案适合通过媒体库实现快速查询视频和图片,对于SD卡扫描,也可以参考。 我们知道,媒体库属于数据库,CURD数据库属于IO操作,但是数据的IO相对特殊,很难...

2021/04/30 09:12
471
Android 动态折线图表实现

一、动态折线图效果 (为了便于观察,初始等待了5秒) 二、代码实现 package com.appwidget; public class LineChartView extends SurfaceView implements SurfaceHolder.Callback, Runnabl...

2021/04/24 19:11
471
Java MethodHandle 反射性能优化

一、关于指令调用 1、关于JVM指令调用 无论是基于栈的JVM还是还是基于寄存器的DVM,他们除了操作数栈中变量的移动和空间分配、以及程序计数器的不同,基本方法调用的基本指令都是遵守JSR规范...

2021/04/18 13:48
3.7K
Javac 常量传播对类初始化的影响

一、Java Compiler 虚拟机运行java类时,需要将类进行初始化,一般来说,java代码在虚拟机中执行,至少需要2次编译(原因是Javac编译后,还要经过”解释器+JIT“可能反复动态优化编译)。Jav...

2021/04/17 10:25
1W
JMM 内存可见性

一、什么是可见性 Java中,在一个线程中,修改主内存变量,修改同步到主内存(堆区+方法区)中方,然后立即后通知其他线程进行缓存同步。 二、JMM是如何实现可见性的? 在java中,锁相关的问题...

2021/04/04 16:54
129
JMM 指令重排序

一、指令为什么要重排序? 在计算机系统中,指令为了更快的完成结果,会根据逻辑关系、指令大小进行重排序,以达到超流水线的效果,但在代码执行完后,保证结果输出是一致的。 在JVM中又两条...

2021/04/04 11:49
37
Android app_process 进程创建

一、app_process与Zygote Android中,创建进程的方式有4种,其中app_process和Zygote有什么不同呢? Android系统内核初始化完毕后,进入用户空间启动的第一个进程叫init 他是Android系统所有...

2021/03/28 13:51
5K
Android Zygote多路复用与CopyOnWrite

一、Android Zygote_Server进程 Android中创建app进程使用了3种通信技术: Binder LocalSocket Pipe (在进程创建完读取子进程id,同时可以检测子进程是否正常) Android 中创建应用进程的方式...

2021/03/27 17:42
718
Android AMS IPC代理获取

一、问题 我们知道,ActivityManagerService随着版本的变化,获取方式上也出现了差异,最容易获取的方式当然是 ActivityManager activityManager = Context.getSystemService("activity"); ...

2021/03/27 15:44
242
Android Dex编译优化四

JIT+解释器 JIT编译: C1 - 根据proflie简单编译 - quicken模式 C2 - 根据profile - 其他编译模式 全编为什么没有混编好? 没考虑到热点方法,没有考虑到方法代码调用的频次和热度,没有参考...

2021/03/21 18:53
154
Anroid Parcelable与Serializable对象序列化比较

一、Android中常用的序列化 Parcelable 1、占内存小 2、在Android IPC中序列化和反序列化速度快 3、存储数据以基本数据类型为单元,所有数据使用基本类型存储,引用类型存储(除String)之外...

2021/03/15 08:56
123
Android IO 优化

一、什么是拷贝 之前有一篇文章说过拷贝: 广义上讲就是任何数据复制,但是在Linux系统中比较特殊,这里的概念比较狭义,物理内存之间的数据复制才叫拷贝 IO设备、Input 、DMA(Direct Memo...

2021/03/10 15:35
567
Linux 进程通信内存拷贝次数图解

一、进程通信中“拷贝”的概念 拷贝: 广义上讲就是任何数据复制,但是在Linux系统中比较特殊,这里的概念比较狭义,物理内存之间的数据复制才叫拷贝 IO设备、Input 、DMA(Direct Memory A...

2021/03/09 20:00
4.8K
Java 从字节码角度处理前端编译问题

一、关于Java编译 java从代码编写到程序运行需要两次编译,第一次是Javac编译,第二次是JIT+解释器编译 Javac是前端编译:负责字节码优化 JIT+解释器是后端编译:负责字节码优化,存储空间优...

2021/03/07 10:30
123
Android ClassLoader Hook注入方式

最近尝试热修复,反射调用补丁类,发现android O的类提前加载了,但没有初始化,所以出现了补丁无法生效的问题,对比一下之前版本,发现Android 6.0 执行到指定位置才去加载,并且初始化,因...

2021/03/02 19:13
1.3K
Android StaticLayout运用于自定义View

一、TextView文本布局 TextView是Android系统中设计最复杂的View组件之一,很多View组件都继承自TextView,如Button、 EditText、DigitalClock、CheckedTextView等。其中EditText的字符输入和...

2021/03/02 14:08
851
flock文件锁的使用

在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock。 flock,建议性锁,不具备强制性。一...

2021/02/23 15:01
532
PendingIntentRecord 更新问题

一、PendingIntent 在Android系统中,Intent经常被用来跨组建和跨进程通信,但是Intent只能被即时使用,为此,Android系统中引入了PendingIntent,它本身并不是Intent,而是用来暂时性缓存I...

2021/02/02 14:01
387
Android 性能优化-图片压缩

一、关于图片格式 BMP文件格式详解(BMP file format) jpeg图片格式详解 JPEG 图片存储格式与元数据解析 PNG文件格式 图片在系统中是一个文件,文件类型再细分的化,图片本身就是一个类似z...

2021/01/15 11:44
298

没有更多内容

加载失败,请刷新页面

返回顶部
顶部