DartDart是一种即时编译(Just-in-Time Compilation,JIT)语言, 在Dart中,代码可以通过两种方式运行: 开发模式(Debug Mode):...
DartDart是一种即时编译(Just-in-Time Compilation,JIT)语言, 在Dart中,代码可以通过两种方式运行: 开发模式(Debug Mode):...
传统的原生开发一般都要维护Android、iOS两个开发团队,版本迭代时,无论人力成本,还是测试成本都会变大。使用Flutter开发,真正的一套代码多端使用,增加代码复用...
viewpage+fragment 比如下面有navitation 的menu有五个itme T1 T2 T3 T4 T5 什么是缓存页面?什么是预加载? 缓存是开辟一个空间...
this 对象锁 syn method 当前类.class 锁 static syn method syn 你不需要管,内部全部实现了,灵活很差,自由? lock Reent...
ThreadLocal定义 线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。ThreadLocal可以让每个线程拥有一个属于自己的变量的副本,不会和其他线程的变量副...
rxjava它就是一个实现异步操作的库.同样是做异步,为什么人们用它,而不用现成的 AsyncTask / Handler / XXX /异步操作很关键的一点是程序的简洁性....
可将整个绘制过程分为三部分:Measure - Layout - Draw 自定义ViewGrop onMeasure() onLayout() 自定义View则 onMe...
一个线程如何保证只有一个Loop? tip(什么是threadlocal? 是一块线程的内部的存储类,可以指定线程内存数据。这块数据只能线程内使用 )实际是它的静态内部类Th...
你了解Android系统启动流程吗? A:当按电源键触发开机,首先会从ROM中预定义的地方加载引导程序BootLoader到RAM中,并执行Bootl oader程序启动Li...
首先需要清楚相关的概念,IPC是一种概念,即进程间通信;其它几个都是Android里的概念;Binder是对IPC的具体实行,是IPC的一种具体实现;AIDL是Binder机...
H5和Native的竞争 体验方面 界面风格 适配操作系统风格(游戏无需考虑可跨平台) 为什么Webview要使用跨进程?webview出现问题不影响主进程 为什么要针对We...
TODO CPU核心数和线程数的关系 ==================================== TODO 以前 六个核心数 以前 1:1 一个核心 就是一个线...
业务代码与技术代码耦合,主业务和增值业务代码指责耦合,多余的依赖关系。对程序来讲是不健康的。如上图网络框架可以进一步优化。 1.门面设计模式 定义:要求一个子系统的外部与其内...
复制算法(Copying) 将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间...
虚拟机中的对象 对象的分配 虚拟机遇到一条new指令时,首先检查是否被类加载器加载,如果没有,那必须先执行相应的类加载过程。 类加载就是把class加载到JVM的运行时数据区...
内存抖动指段时间内大量对象创建和销毁,伴随着频繁的gc 具体在androidstudio中用分析内存,找到频繁gc的对象修改代码。 预防抖动 1.避免循环中创建对象 2.避免...
Java Virtual Machine JVM 全称 Java Virtual Machine,也就是我们耳熟能详的 Java 虚拟机。它能识别 .class后缀的文件,并...
数据结构层面的优化,能够达到加快响应速度以及减小内存。 ArrayList,是对数组的封装,数组便于修改和查看。对于增加和删除arraylist的add 和remove方法中...