文章 2022-12-03 来自:开发者社区

Android 内存缓存框架 LruCache 的实现原理,手写试试?

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。前言大家好,我是小彭。在之前的文章里,我们聊到了 LRU 缓存淘汰算法,并且分析 Java 标准库中支持 LUR 算法的数据结构 LinkedHashMap。当时,我们使用 LinkedHashMap 实现了简单的 LRU Demo。今天,我们来分析一个 LRU 的应用案例 —— Android 标准库的 ....

Android 内存缓存框架 LruCache 的实现原理,手写试试?
文章 2022-09-26 来自:开发者社区

Android | App内存优化 之 内存抖动解决实战

本文的精简总结在文首的Pre、文末的小结以及解决技巧处!!!Pre定义:内存频繁分配和回收导致内存不稳定**明显特征:频繁GC、Memory Profiler 内存分配图形曲线呈锯齿状、CPU Profiler的Call Chart 栏下 反复出现 的绿色条形**危害:导致卡顿、OOM内存抖动导致OOM**频繁创建对象,!!!!!导致内存不足或者产生内存碎片!!!!!(内存碎片即内存不连续,有 ....

Android | App内存优化 之 内存抖动解决实战
文章 2022-06-10 来自:开发者社区

Android内存分配/回收的一个问题-为什么内存使用很少的时候也GC

Android应用建立在Java虚拟机之上的,Google为了保证同时多个APP运行并及时唤醒,就为每个虚拟机设置了最大可使用内存,通过adb命令可以查看相应的几个参数,* [dalvik.vm.heapgrowthlimit]: [192m] * [dalvik.vm.heapmaxfree]: [8m] * [dalvik.vm.heapminfree]: [512k] * [dalvik.....

Android内存分配/回收的一个问题-为什么内存使用很少的时候也GC
文章 2022-06-10 来自:开发者社区

Android窗口管理分析(4):Android View绘制内存的分配、传递、使用

前文Android匿名共享内存(Ashmem)原理分析了匿名共享内存,它最主要的作用就是View视图绘制,Android视图是按照一帧一帧显示到屏幕的,而每一帧都会占用一定的存储空间,通过Ashmem机制APP与SurfaceFlinger共享绘图数据,提高图形处理性能,本文就看Android是怎么利用Ashmem分配及绘制的:View视图内存的分配前文Window添加流程中描述了:在添加窗口的....

文章 2022-05-18 来自:开发者社区

Android内存性能测试

原理在讲OOM之前我们先来弄清楚几个概念:内存泄漏、内存抖动、内存溢出内存泄漏:内存泄漏是指没有用的对象资源仍与GC-Root保持可达路径,导致系统无法进行回收;内存抖动:内存抖动是因为大量的对象被创建又在短时间内马上被释放,导致频繁 GC;内存溢出:我们需要一定的内存大小,但是系统无法分配给我们,满足不了我们的需求,所以会导致OOM;既然我们知道了什么是内存溢出,那它是什么时候发生的呢?答案是....

Android内存性能测试
文章 2022-05-17 来自:开发者社区

安卓内存监控工具,Android自定义View详解,灵魂拷问

前言前不久,几个朋友聚会,谈到了现在的后辈,我就说起了那个大三就已经拿到网易offer的小学弟。这个学弟是00后,专升本进入我们学校的。进来后就非常努力,每次上课都是第一个到教室的,每次都是坐第一排,不是演,而是实实在在的非常认真的在听讲,也是班上为数不多的上课会额外带一个专门的笔记本的学生之一。半个月前,我看见他的空间上传了网易offer的照片,就私下和他交流了一下。他说,他们公司不远的地方就....

安卓内存监控工具,Android自定义View详解,灵魂拷问
文章 2022-02-09 来自:开发者社区

【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | dvmDexFileOpenPartial | dexFileParse | 脱壳点 | 获取 dex 文件在内存中的首地址 )

文章目录前言一、DexPrepare.cpp 中 rewriteDex() 方法分析二、DvmDex.cpp 中 dvmDexFileOpenPartial() 方法分析 ( 脱壳点 )三、DexFile.cpp 中 dexFileParse() 方法分析 ( 脱壳点 )前言上一篇博客 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmC....

文章 2022-02-08 来自:开发者社区

【Android 逆向】函数拦截 ( 修改内存页属性 | x86 架构插桩拦截 )

文章目录一、修改内存页属性二、x86 架构下的插桩拦截一、修改内存页属性实际函数 的 函数指针为 unsigned char* pFunc , 拦截函数 的函数指针为 unsigned char* pStub , 在执行 pFunc 函数时 , 无条件跳转到 pStub 函数中 ;要修改 pFunc 函数 , 要先设置该函数所在的内存页的访问 属性 , 否则如果用户没有相关内存访问权限 , 强行....

文章 2022-02-07 来自:开发者社区

【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )

文章目录一、使用 IDA 分析要修改的内存特征二、根据内存特征搜索修改点三、修改进程内存一、使用 IDA 分析要修改的内存特征在前的博客 【Android 逆向】逆向修改游戏应用 ( 分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 ) 中 , 已经分析过该动态库 ;修改的动态库的位置是 如下 , 将 0x354A8 地址处的 0x59 字节数据 修改为 0....

【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )
文章 2022-02-07 来自:开发者社区

【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

文章目录一、Android 命令行中获取要调试的应用进程的 PID二、进程注入调试进程内存的 so 库一、Android 命令行中获取要调试的应用进程的 PID前置博客 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system ) 先安装 Android 模拟器....

【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等