
android
文章平均质量分 68
jamespengo
这个作者很懒,什么都没留下…
展开
-
Glide缓存原理
Glide使用了DiskCache+MemoryCache+activeResources三级缓存DiskCache是磁盘缓存,这个不用多说了MemoryCache和activeResources是两级内存缓存MemoryCache存储当前没有使用到的Bitmap,当MemoryCache中命中Bitmap后,该Bitmap又被缓存至activeResources中,并从MemoryCach...原创 2019-10-31 19:36:06 · 843 阅读 · 0 评论 -
Window窗口机制——WindowManager,ViewRootImpl,View理解
在之前的文章中我们说到DecorView在handleResumeActivity方法中被绑定到了WindowManager,也就是调用了windowManager.addView(decorView)。而WindowManager的实现类是WindowManagerImpl,而它则是通过WindowManagerGlobal代理实现addView的,我们来看一下addView()方法publi...转载 2019-08-06 15:50:10 · 303 阅读 · 0 评论 -
Android App及Activity回收流程分析
首先我们要找到整个内存不足然后回调回收activity的入口,在哪里呢?在ActivityThread里,通过之前的源码阅读我们发现,当一个新的app启动的时候,系统将从Zygote进程fork一个子进程出来,当然我们知道App不一定只存在一个进程,只要定义了Activity进程要游离,我们也可以将其游离,但本质上都是由核心Android 进程 Zygote 进程去启动,但app进程启动之后,A...转载 2019-08-08 11:08:39 · 866 阅读 · 0 评论 -
Android GLSurfaceView模糊效果
import android.content.Context;import android.graphics.Bitmap;import android.graphics.drawable.Drawable;import android.opengl.GLException;import android.opengl.GLSurfaceView;import android.suppor...原创 2019-07-09 15:03:25 · 865 阅读 · 0 评论 -
LeakCanary原理分析
很久没有写博客了,最近年关将近,也有时间去回顾和温习一下之前的技术笔记,突然发现了之写的一篇,温故了一遍,感觉没有描述清楚,于是去网上又查了一下,千篇一律的都是这么几个步骤:1.通过Application.registerActivityLifecycleCallbacks()方法注册Activity生命周期,在onDestroy的时候进行watch2.将Activity通过弱引用KeyedW...原创 2019-01-23 15:38:55 · 259 阅读 · 0 评论 -
移动平台游戏网络重连方案
1、背景 移动网络信号波动频繁,给移动游戏开发者带来诸多困扰,处理不好会造成较差的用户体验以及重复扣道具等严重问题。因此弱网络问题在TDR技术评审中作为客户端重点挑战项,并且弱网络专项测试达标后方能上线。本文就过往项目中遇到的问题给出一种比较通用解决方案。 2、网络连接方式 通常游戏客户端都是通过创建socket与服务器取得连接,但也会根据使用场景划分成两种连接方式:TCP连接和HTT...转载 2019-02-01 15:34:31 · 528 阅读 · 0 评论 -
Netty 粘包、半包解决
Netty和Mina一样是NIO通讯工具框架,有一定区别也有一定相似之处。Netty和Mina在数据包处理、传输时都有可能会出现粘包和断包的情况,下图对粘包、断包进行描述。以下是网上对粘包的解决方式:1、消息定长,例如每个报文的大小为固定长度200字节,如果不够,空位补空格。2、在包尾增加回车换行符进行分割,例如FTP协议。3、将消息分为消息头和消息体,消息头中包含消息长度的字段,通常设...转载 2018-10-16 20:38:40 · 747 阅读 · 1 评论 -
基于Netty的Android长连接实现
1. 协议的确定协议头——4字节,标识协议体的长度协议体——包括4字节扩展信息+传参,其中扩展信息里包括协议加密类型,传参为key,value键值对类型的数据,数据格式为4字节key长度+key+4字节value长度+value2.协议加解密客户端随机生成16位密钥,通过RSA非对称加密方式将密钥同步给服务器密钥同步后,使用该密钥通过AES对称加密的方式对协议进行加密,然...原创 2018-08-06 23:03:26 · 5389 阅读 · 3 评论 -
基于aapt实现全尺寸解析apk图标
package com.xunlei.app.tools;import java.awt.image.BufferedImage;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;imp原创 2013-08-15 17:15:00 · 3952 阅读 · 1 评论