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

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

Android NestedScrolling实现ViewPager列表切换

一、需求简介 app首页中经常要实现首页头卡共享,tab吸顶,内容区通过ViewPager切换的需求,以前往往是利用事件处理来完成,还有Google官方也提供了相关的库,但是这些也有一定的弊端,适配起...

06/16 08:51
821
Android 三角形绕“环”运动问题处理

一、实现三角形绕环圆圈运动 【1】 中心点落在圆环上 【2】运行过程中自动调整“箭头”方向 难点:最大的难点不是虚线动画,而是图中的三角形的“自旋转” + “整体旋转”,因为三角形物件不...

05/09 11:30
132
Android 相册媒体库读写优化

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

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

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

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

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

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

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

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

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

04/04 16:54
100
JMM 指令重排序

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

04/04 11:49
33
Android app_process 进程创建

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

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

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

Android AMS IPC代理获取

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

Anroid Parcelable与Serializable对象序列化比较

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

03/15 08:56
58
Android IO 优化

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

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

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

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

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

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

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

03/02 19:13
231
Android StaticLayout运用于自定义View

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

03/02 14:08
146
Android Canvas绘制自定义“线头”问题

线头介绍: Android 提供了线头设置的方法线头形状有三种: BUTT 平头、ROUND 圆头、SQUARE 方头。 默认为 BUTT。 而当线条变粗的时候,它们就会表现出不同的样子: 问题:如何自定义文章开始...

02/26 17:22
158
flock文件锁的使用

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

02/23 15:01
164

没有更多内容

加载失败,请刷新页面

返回顶部
顶部