Android apk 插件启动内存释放问题
时间:2019-03-30
本文章向大家介绍Android apk 插件启动内存释放问题,主要包括Android apk 插件启动内存释放问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Android apk 插件启动内存释放问题
插件中启动apk,一般情况下在apk中内存不存在问题,但在插件中可能会存在并放大这个问题,原因是在插件中重新loadclass后,原来插件的资源会重新加载,而在安装的apk中除非被系统杀掉,不然可以重新利用原来没关掉的资源;在插件中具体表现如下:
1.static定义的变量,假如是存放外部传进来的实例,记得在推出时必须置空,不然导致传入的实例无法释放;内部new出来的保存在静态变量中也一样;
2.单例中new出来的实例存放到List等容器中,在退出时记得clear()下清空容器,不然内存还会泄露:
比如类中定义
private List<ClientTaskBase> tasks = new ArrayList<ClientTaskBase>();
然后在方法中使用
ClientTaskBase task_= (ClientTaskBase) Class.forName(value).newInstance(); tasks.add(task_);
在退出时,必须的清空
另外可用类的finalize方法来检测下类是否已被释放,该方法是在垃圾回收时释放内存会调用
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
- Comet:基于 HTTP 长连接的“服务器推”技术
- 编码修炼 | 快速了解Scala技术栈
- VFS四大对象之三 struct dentry
- PHP 排序算法实现讲解
- PHP7新特性介绍
- VFS四大对象之四-struct file
- 《Redis设计与实现》读书笔记(二) ——Redis中的字典(Hash)
- 《Redis设计与实现》读书笔记(三) ——Redis中的链表
- 《Redis设计与实现》读书笔记(四) ——Redis中的跳跃表
- 解析Linux中的VFS文件系统之文件系统的注册(二)
- vivi虚拟摄像头驱动程序
- 系统架构 | 基于微服务架构,改造企业核心系统之实践
- 《Redis设计与实现》读书笔记(五) ——Redis中的整数集合
- 《Redis设计与实现》读书笔记(七) ——Redis对象综述及字符串对象实现原理
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释