自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

psq05071226csdn的博客

IT菜鸟,博客内容有问题欢迎各路大神交流~

  • 博客(11)
  • 收藏
  • 关注

原创 Android虚拟机参数

[dalvik.vm.heapgrowthlimit]: [128m] 每个应用程序最大内存可分配到128m,超过就会出现OOM崩溃。 [dalvik.vm.heapsize]: [256m] 单个虚拟机可分配的最大内存256m,影响到整个系统对RAM的使用程序和程序在运行一段时间后的反应速度。 值越大,系统消耗RAM则越快,但是程序会运行的非常稳 定,尤其是游戏和视频程序的内容加载速度可以大幅度提升。 值越小,系统的RAM剩余则越多,但是程序会很卡,尤其是游戏在切换场景Loading的时候会 花费很.

2021-07-31 13:49:37 910

原创 Android启动流程(一张图)

2021-07-31 12:13:48 468

原创 [LBS]LocationManagerService的启动

SystemServer的startOtherServices()启动LocationManagerService,具体流程如下: private void startOtherServices(@NonNull TimingsTraceAndSlog t) { .... mSystemServiceManager.startService(LocationManagerService.Lifecycle.class); .... } 进入SystemServiceManager的startServi

2021-07-31 12:08:26 922

原创 KeyguardServiceWrapper

KeyguardService作为锁屏的服务供系统进程调用。KeyguardService在systemui进程,在system进程KeyguardServiceWrapper是其代理类。系统有相关Keyguard相关的事情要做,都是让KeyguardServiceWrapper去通知KeygaurdService做的。 那么KeyguardServiceWrapper是做到代理KeyguardService呢? 通过追踪代码发现在,当系统SystemServer 的 startOtherServices

2021-07-07 16:34:53 342

原创 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 195

原创 java 虚拟机的类加载机制

一、类的加载 是指把描述类数据的class文件加载到内存,并进行数据校验、转换解析和初始化,形成可以被虚拟机直接使用的Java类型,成为虚拟机的类加载机制。java中类型的加载和连接都是在程序运行期间完成的。这样在加载时会增加一些性能开销,但是却为java程序提供了高度的灵活性。 二、类的生命周期七个阶段 加载(Loading)----验证(Verification)----准备(Preparation)----解析(Resolution)----初始化(Initialization)----使用(U

2021-07-01 14:44:06 134

原创 java 虚拟机性能监控与故障处理工具

一、命令工具 1.jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程 2.jstat JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据 3.jinfo Configuration Info for Java,显示虚拟机配置信息 4.jmap Memory Map for Java,生成虚拟机的内存转储快照(Heapdump文件) 5.jhat JVM Heap Dump Browser,用于分析hea

2021-07-01 10:12:34 137

原创 Java 虚拟机垃圾搜集

serial搜集器 parnew搜集器 parallel Scavenge搜集器 吞吐量优先的搜集器 -XX:+UseAdaptiveSizePplicy 这个参数打开后,就不需要手工指定新生代的大小(-Xmn),Eden与Survivor区的比例、晋升老年代对象的年龄(-XX:PretenureSizeThreshold) 等参数细节了,虚拟机会根据当前系统的运行情况搜集性能监控信息,动态调整这些参数来提供最合适的停顿时间或者最大吞吐量,这种调节方式成为GC自适应调节策略。 如果对搜集器的工作原理不太了解

2021-06-29 17:11:28 77

原创 Java 虚拟机运行时的五大数据区域

Java虚拟机在执行java程序的过程中会它所管理的内存划分为若干个不同的数据区域。主要有程序计数器、java虚拟机栈、本地方法栈、java堆和方法区五个区域。 1、程序计数器 一块较小的内存空间,属于线程私有的内存,他的作用可以看作是当前线程作执行的字节码的行号指示器。字节码解释器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 因为线程之间经常存在切换,所以每个线程都需要一个独立的程序计数器。如果正在执行一个java方法,它记录的是在正在执行的虚拟机字节码指令的地址;如果正在执

2021-06-23 16:14:37 406

原创 一个使用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 471

原创 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 1637

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除