- 博客(17)
- 收藏
- 关注
原创 android性能优化知识点
1.开机启动流程 了解2.冷/热/暖启动冷启动流程启动后立即为该App显示一个空白启动窗口创建App进程创建主Activity加载布局,绘制解决黑白屏1.在主题中:windowDisablePreview true//取消预览屏windowIsTranslucent true //透明2.把默认空白启动窗口改为符合自己需求的然后把Splash主题设置为和空白窗体一样。代码...
2020-04-09 10:44:56
173
1
原创 并发中的变量可见性问题
并发的线程能不能看到变量的最新值,这就是并发中的变量可见性问题方式一 synchronized1.进入同步块,先清空工作内存中的共享变量,从主内存中重新加载2.解锁前必须把修改的共享变量同步回主内存方式二 volatilevolatile可用于限制局部代码指令重排序1.使用volatile变量时,必须重新从主内存加载,并且read,load是连续的2.修改volatile变量后,必...
2020-04-09 10:41:33
236
原创 EventBus手写简单实现
package com.demo.administrator.eventbus.eventbus;import java.lang.reflect.Method;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import j...
2019-05-05 15:42:23
319
原创 Android 6.0动态权限概述
Android6.0以后权限分为:危险权限,普通权限,特殊权限危险权限列表 普通权限列表特殊权限 SYSTEM_ALERT_WINDOW: 允许在所有的app之上弹出对话框(设置悬浮窗) //判断系统是否拥有SYSTEM_ALERT_WINDOW权限 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {...
2019-05-05 14:04:38
186
原创 Java创建一个包含多级目录的空文件
public class Main { public static void main(String[] args) { try { createFile(); } catch (IOException e) { System.out.println(e.getMessage()); } ...
2019-04-27 17:22:10
409
原创 Android Paint基础方法详解
Paint常用方法mPaint = new Paint();初始化画笔mPaint.setColor(Color.RED);// 设置颜色颜色可以为0xffffff形式,或者通过Color.parseColor("#ffffff");mPaint.setARGB(255, 255, 255, 0);设置 Paint对象颜色,范围为0~255mPaint.setAlpha(...
2019-03-25 13:45:12
1598
转载 Java常用四大线程池用法以及ThreadPoolExecutor详解
为什么用线程池?1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率2.线程并发数量过多,抢占系统资源从而导致阻塞3.对线程进行一些简单的管理在Java中,线程池的概念是Executor这个接口,具体实现为ThreadPoolExecutor类,学习Java中的线程池,就可以直接学习他了对线程池的配置,就是对ThreadPoolExecutor构造函...
2019-03-14 11:25:15
207
原创 java反射面试
1.反射中getMethods 与 getDeclaredMethods 的区别?public Method[] getMethods()只返回当前类和其父类的所有public方法。public Method[] getDeclaredMethods()返回当前类的所有方法,包括public、protected、default(包)访问和private方法,不包括父类的方法。 &nb...
2019-03-14 11:24:59
1141
转载 关于Java反射
1.反射中getMethods 与 getDeclaredMethods 的区别?public Method[] getMethods()只返回当前类和其父类的所有public方法。public Method[] getDeclaredMethods()返回当前类的所有方法,包括public、protected、default(包)访问和private方法,不包括父类的方法。 &nb...
2019-03-13 16:43:20
183
原创 RecyclerView倒计时系统休眠View复用的解决方案
场景1:RecyclerView item 倒计时的时候,如果系统休眠或者应用切换到后台,由于当前应用被挂起,计时器会停止工作,返回应用计时器才开始继续工作,导致时间不对,这个计时器控件是用Timer写的。 解决方案:把Timer替换为CountDownTimer,系统休眠或者应用切换到后台后再返回时间依然准确,具体参考CountDownTimer源码,核心就是运用了SystemClock...
2018-08-30 14:32:26
1171
原创 java中关于try、catch、finally的总结
结论:1、在任何情况下,finally块中代码都会执行,包括try和catch中有return的情况; 2、finally中最好不要包含return,否则返回值都为finally中return的返回值,没有意义。 3.在finally中没有return的情况下:finally是在return后面的表达式运算之后执行的,此时并没有返回运算之后的值,而是把值保存起来,不管finally对该值做...
2018-05-10 16:01:55
295
原创 Android布局优化(二) ViewStub源码解析
public ViewStub(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context); final TypedArray a = context.obtainStyledAttributes(attrs, R...
2018-04-28 13:46:28
302
原创 Android布局优化(一) ViewStub详解
1.ViewStub继承关系public final class ViewStub extends View java.lang.Object ↳ android.view.View ↳ android.view.ViewStub官网对ViewStub的定义:A ViewStub is an invisible, zero-sized View th...
2018-04-28 11:04:41
458
原创 java中的instanceof用法、原理
1.用法表达式 result = objinstanceof class result:布尔类型。 obj:必选项。任意对象表达式。 class:必选项。任意已定义的对象类。 例:String s = "123"; if(s instanceof String){ System.out.println("s的类型为String类...
2018-04-27 13:01:46
7983
原创 getDimension()、getDimensionPixelSize()和getDimensionPixelOffset()的区别
在Android代码中获取res资源dimens.xml文件中定义的尺寸大小,可以通过如下三个方法: • getDimension •getDimensionPixelOffset •getDimensionPixelSize在资源中的定义:<dimen name="dp_20">20dp</dimen><dimen name=...
2018-04-13 15:22:22
317
原创 关于LayoutInflater的总结
首先先看一下Android Studio Lint的警告: Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element) less... (Ctrl+F1)When inflating a layout, avoid passing in null as the parent view, since otherwise any lay
2017-04-07 14:53:01
1532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人