android
文章平均质量分 92
OODeveloper
2015-6~2017-3参与Android项目开发,开发工具Android studio;
2017-3~2019-5参与C++项目开发,开发平台QT;
2019-5~2020-7 参与iOS项目开发,开发语言Object-c,开发环境Xcode。
展开
-
Android ScreenSaver分析
Android屏保启动接口:https://blog.csdn.net/szqsdq/article/details/74237967https://blog.csdn.net/weixin_42695485/article/details/81462877屏保提供了对外接口:IDreamManager mDreamManager = IDreamManager.Stub.asInterface(ServiceManager.getService(DreamService....原创 2021-01-31 12:44:38 · 2080 阅读 · 0 评论 -
Android Handler机制
Android开发中经常用到handler来发送消息,比如将消息抛到主线程去更新UI。handler机制涉及到三个核心的类:Looper:消息循环,不断从消息队列中取出消息; MessageQuenue:消息队列; Handler:管理消息队列; 为了更好的理解这三者的关系,我们可以想象成现实生活中,工厂里边的一条流水线。有一个放产品(Message)的传送带(MessageQuenue),被机器带动起来不断循环运行(Looper),而工人(Handler)需要将产品...原创 2021-01-10 18:56:00 · 227 阅读 · 0 评论 -
Java锁机制
Java锁主要是为了解决线程安全问题,当多个线程共享同一个变量时可能会出现同时修改变量的情况,这样会导致最终计算结果错误。未解决该问题,Java提供了各种锁来确保数据能够被正常修改和访问。最常用的比如synchronized。一、互斥同步 互斥同步是最常见的一种并发正确性保障手段,同步是指多个线程并发访问共享数据是,保证共享数据在同一个时刻只被一条线程使用。Java中,最基本的互斥同步手段就是synchronized关键字,该关键字经过编译之后,会在同步块的前后分别形成...原创 2020-12-31 21:17:34 · 159 阅读 · 0 评论 -
Java垃圾回收机制
Java自动内存管理归结为内存分配和内存回收。内存回收有如下算法。一、根搜索算法原理:通过一系列名为“GC Roots的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象时不可用的。 上述不可达的对象,并非立即宣告死亡,至少需要经历两次标记过程:对象进行根搜索后发现没有与GC Roots相连接的引用链,则会被第一次标记并且进行一次筛选,筛选条件是此对象是否有必要执行finalize()方法。如果对...原创 2020-12-20 14:32:16 · 183 阅读 · 1 评论 -
volatile关键字
回顾之前Java内存模型特征可以了解到该模型是围绕着并发过程中如何处理原子性、可见性和有序性这三个特征来建立的。 原子性:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和write这六个,如果应用场景需要更大范围的原子性保证,Java内存模型还提供了lock和unlock操作来满足需求,比如synchronize关键字。在synchronize块之间的操作...原创 2020-12-13 17:32:42 · 132 阅读 · 1 评论 -
Java内存模型
Android开发中,存在大量并发的情况,因此也会遇到很多线程安全问题,在查询线程安全相关资料时,通常会查到Java内存模型的知识点。Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。为了获得较好的执行效能,Java内存模型并没有限制执行引擎使用处理器的特定寄存器或缓存来和主内存进行交互,也没有限制即时编译器调整代码执行顺序这类权利。 Java内存模型规定了所有的变量都存储在主内存中。每条线程有自己的工作...原创 2020-12-06 12:19:24 · 127 阅读 · 0 评论 -
JVM内存区域划分
Java虚拟机在执行Java程序过程中会把它所管理的内存划分为以下区域: 程序计数器:一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机概念模型里,字节码解释器工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处...原创 2020-11-29 14:21:12 · 236 阅读 · 0 评论 -
最全的Android 版本号与Level API对照表
这张表比较全面的显示了android SDK 和 Level API的对应关系。原创 2015-11-08 13:54:22 · 467 阅读 · 0 评论