- 博客(12)
- 收藏
- 关注
原创 kotlin 两目运算符
var xie = a ?: ""1这个?:是kotlin的elvis用法,属于两目运算符,就是简单的if、else缩写,当a不为null,取a的值,当a为null,取""
2022-02-11 14:18:23 1417
原创 cas 示例代码
public static AtomicInteger atomicInteger = new AtomicInteger();// int i = 0;// while (i<10){// new IncreThread().start();// i++;// } class IncreThread extends Thread{ @Override public.
2022-01-14 10:23:52 138
原创 责任链模式怎么写
拦截器接口public interface Interceptor { String interceptor(Chain chain); interface Chain{ String request(); String proceed(String request); }}实现3个拦截器public class Brid...
2019-12-06 14:21:50 141
原创 android binder驱动层
ServiceManager本身也实现为一个Server对象。这似乎形成了一个互相矛盾的现象:通过ServiceManager我们才能拿到Server的标识 ServiceManager本身也是一个Server。解决这个矛盾的办法其实也很简单:Binder机制为ServiceManager预留了一个特殊的位置。这个位置是预先定好的,任何想要使用ServiceManager的进程只要通过...
2019-08-26 15:18:48 211
原创 android powermanagerservice 笔记
在整个WakeLock机制中,对应不同的范围,有三种表现形式:PowerManger.WakeLock:PowerManagerService和其他应用、服务交互的接口;PowerManagerService.WakeLock:PowerManager.WakeLock在PMS中的表现形式;SuspendBlocker:PowerManagerService.WakeLock在向底层节...
2019-08-22 16:56:25 169
原创 Android WindowManagerService 动画
1.FrameDisplayEventReceiver 接收到Vsync信号,调用自己的方法onVsyncprivate final class FrameDisplayEventReceiver extends DisplayEventReceiver implements Runnable { private boolean mHavePending...
2019-08-20 11:37:20 256
原创 android gui系统
Android gui包括SurfaceFlinger,WindowManagerService,ActivityManagerService。由于牵涉的东西非常多,先得搞清楚他们之间的总体逻辑。它们之间的关系图:左边的BpSurfaceComposer / ComposerService属于WindowManagerService端,右边的BnSurfaceComposer...
2019-08-19 14:20:14 254
原创 PackageManagerService创建过程简略
1.SystemServer.init1,这是一个jni方法,里面启动了AudioFlinger,MediaPlayerService,CameraService等服务,最后调用到了AndroidRuntime2.AndroidRuntime.callStatic,,c++调用到了System.init23.启动了ServerThread,ServerThread的run方法创建了Pack...
2019-02-20 17:50:26 158
原创 gradle查看更多错误信息
gradlew compileDebugSource --stacktrace -infoandroid:includeFontPadding="false"
2019-01-16 11:29:37 1372
原创 PhoneWindow笔记
activity.setContentView------------------->创建了DecorView对象
2019-01-05 19:13:11 135
原创 Activitythread笔记
//activity的创建过程进程启动------->activitythread.main()------------>activitythread.bindApplication()------------->创建了Instrumentation(调用了classloader创建了Instrumentation)--------->在ActivityThread中调...
2019-01-05 19:02:47 170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人