- 博客(11)
- 收藏
- 关注
原创 Android虚拟机参数
[dalvik.vm.heapgrowthlimit]: [128m] 每个应用程序最大内存可分配到128m,超过就会出现OOM崩溃。[dalvik.vm.heapsize]: [256m]单个虚拟机可分配的最大内存256m,影响到整个系统对RAM的使用程序和程序在运行一段时间后的反应速度。值越大,系统消耗RAM则越快,但是程序会运行的非常稳 定,尤其是游戏和视频程序的内容加载速度可以大幅度提升。值越小,系统的RAM剩余则越多,但是程序会很卡,尤其是游戏在切换场景Loading的时候会 花费很.
2021-07-31 13:49:37 788
原创 [LBS]LocationManagerService的启动
SystemServer的startOtherServices()启动LocationManagerService,具体流程如下:private void startOtherServices(@NonNull TimingsTraceAndSlog t) {....mSystemServiceManager.startService(LocationManagerService.Lifecycle.class);....}进入SystemServiceManager的startServi
2021-07-31 12:08:26 800
原创 KeyguardServiceWrapper
KeyguardService作为锁屏的服务供系统进程调用。KeyguardService在systemui进程,在system进程KeyguardServiceWrapper是其代理类。系统有相关Keyguard相关的事情要做,都是让KeyguardServiceWrapper去通知KeygaurdService做的。那么KeyguardServiceWrapper是做到代理KeyguardService呢?通过追踪代码发现在,当系统SystemServer 的 startOtherServices
2021-07-07 16:34:53 280
原创 java线程同步机制:关键字volatile
volatile是Java虚拟机提供的最轻量级的同步机制。当一个变量A被定义成volatile后,可以保证此变量对所有线程的可见性,这里的可见性是指,当一条线程修改了A的值,A的新值对于其他线程来说是可以“立即”得知的。如下代码创建的5个线程,每个线程根据shutdownRequested的状态来切换执行的流程。public class VolatileTest { private static final int THREADS_COUNT = 5; volatile static b
2021-07-02 11:20:02 145
原创 java 虚拟机的类加载机制
一、类的加载是指把描述类数据的class文件加载到内存,并进行数据校验、转换解析和初始化,形成可以被虚拟机直接使用的Java类型,成为虚拟机的类加载机制。java中类型的加载和连接都是在程序运行期间完成的。这样在加载时会增加一些性能开销,但是却为java程序提供了高度的灵活性。二、类的生命周期七个阶段加载(Loading)----验证(Verification)----准备(Preparation)----解析(Resolution)----初始化(Initialization)----使用(U
2021-07-01 14:44:06 97
原创 java 虚拟机性能监控与故障处理工具
一、命令工具1.jpsJVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程2.jstatJVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据3.jinfoConfiguration Info for Java,显示虚拟机配置信息4.jmapMemory Map for Java,生成虚拟机的内存转储快照(Heapdump文件)5.jhatJVM Heap Dump Browser,用于分析hea
2021-07-01 10:12:34 93
原创 Java 虚拟机垃圾搜集
serial搜集器parnew搜集器parallel Scavenge搜集器吞吐量优先的搜集器-XX:+UseAdaptiveSizePplicy 这个参数打开后,就不需要手工指定新生代的大小(-Xmn),Eden与Survivor区的比例、晋升老年代对象的年龄(-XX:PretenureSizeThreshold)等参数细节了,虚拟机会根据当前系统的运行情况搜集性能监控信息,动态调整这些参数来提供最合适的停顿时间或者最大吞吐量,这种调节方式成为GC自适应调节策略。如果对搜集器的工作原理不太了解
2021-06-29 17:11:28 53
原创 Java 虚拟机运行时的五大数据区域
Java虚拟机在执行java程序的过程中会它所管理的内存划分为若干个不同的数据区域。主要有程序计数器、java虚拟机栈、本地方法栈、java堆和方法区五个区域。1、程序计数器一块较小的内存空间,属于线程私有的内存,他的作用可以看作是当前线程作执行的字节码的行号指示器。字节码解释器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。因为线程之间经常存在切换,所以每个线程都需要一个独立的程序计数器。如果正在执行一个java方法,它记录的是在正在执行的虚拟机字节码指令的地址;如果正在执
2021-06-23 16:14:37 316
原创 一个使用HttpURLConnection的demo
1、使用HttpURLConnection获取热门视频的工具类NetworkUtil private static final String HOT_VIDEO_URL = "http://XXX"; private static final String HOT_VIDEO_KEY = "XXXX"; private static final String HOT_VIDEO_TYPE = "XXXX"; public static String getHotVi...
2021-06-22 18:13:16 417
原创 java常见创建线程的三种方式
创建线程的方法主要有如下三种:方式1]继承Thread类创建线程 //使用方法1:继承Thread,重写其run()方法 new MyThread().start(); //使用方法2:创建匿名内部类Thread,重写其run()方法 new Thread() { @Override public void run() { System.out.println(...
2021-06-11 16:19:03 1573
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人