1-Flutter分享 Flutter简介Flutter 是 Google 推出并开源的移动应用开发框架,帮助开发者通过一套代码库高效构建多平台应用,支持 iOS、Android、Web、Windows、macOS、Linux、Fuchsia 优点 跨平台:增加代码复用,降低开发成本 性能:Flutter直接将Dart代码编译为本地代码运行,再调用skia绘图引擎代码,和原生一样,这就少了像reactnative和wee 2025-12-16 其他语言 > flutter
6.AsyncTask 原理 AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,AsyncTask其实使用handler来实现异步任务的,它是一个抽象类,AsyncTask的execute在主线程中首先调用了onPreExecute做预备工作,在子线程中调用了doInBackground方法去做耗时操作,返回的数据通过Message.obtain(handler, ON_POST_MSG, re 2025-12-16 源码
5.ThreadLocal 总结默认成员变量是共享的 ThreadLocal 是一种以空间换时间的做法,在每个 Thread 里面维护了一个 ThreadLocalMap Map 和 Thread 绑定,所以虽然访问的是同一个 ThreadLocal 对象,但是访问的 Map 却不是同一个,所以取得值也不一样。 也不会影响其他线程。在这个线程是独享的,也没有线程安全方面的问题。 用途:通过它可以在指定的线程里存储数据 2025-12-16 源码
4.IdleHandler 源码当 MessageQueue 没有消息的时候,就会阻塞在 next 方法中,其实在阻塞之前,MessageQueue 还会做一件事,就是检查是否存在 IdleHandler,如果有,就会去执行它的 queueIdle 方法。 1234567891011121314151617181920212223242526272829303132333435363738394041 private Id 2025-12-16 源码
2.Handler 里的各种消息 同步屏障和异步消息其实在 Handler 机制中,有三种消息类型: 同步消息。也就是普通的消息。 异步消息。通过 setAsynchronous (true) 设置的消息。 同步屏障消息。通过 postSyncBarrier 方法添加的消息,特点是 target 为空,也就是没有对应的 handler。也是通过屏障的时间,确定屏障消息插入的位置 这三者之间的关系如何呢? 正常情况下,同步消息 2025-12-16 源码
1.Handler消息机制 Handler 被设计出来的原因?有什么用? Handler 的意义就是切换线程 作为 Android 消息机制的主要成员,它管理着所有与界面有关的消息事件,常见的使用场景有: 跨进程之后的界面消息处理。 Binder 线程到主线程比如 Activity 的启动,就是 AMS 在进行进程间通信的时候,通过 Binder 线程将消息发送给 ApplicationThread 的消息处理者 Ha 2025-12-16 源码
9-Android构建流程 Android 构建流程AAPT ( Android 资源打包工具, Android Asset Packaging Tool) 是一种编译工具, 供 Android studio 和 Android Gradle plugin 用于编译和打包应用资源。而 AAPT2是在 AAPT 上做了优化。 Android Gradle Plugin0.0或者更高版本默认开启AAPT2。AAPT2会解析资源、 2025-12-16 源码 > Framework
8-Launcher学习 android12.0(S) Launcher3 导入 AndroidStudio 调试编译验证环境 aosp 12.0 - 掘金 概述launcher其实就是一个app,从功能上说,是对手机上其他app的一个管理和启动,从代码上说比其他app多了一个属性,就是在AndroidManifest.xml文件中多了一个“android:name=”android.intent.categor 2025-12-16 源码 > Framework
7-INPUT INPUT当用户触摸屏幕或者按键操作,首次触发的是硬件驱动,驱动收到事件后,将该相应事件写入到输入设备文件中(dev/input/)。接着,输入系统取出原生态的事件,经过层层封装后成为 KeyEvent 或者 MotionEvent ;最后,交付给相应的目标窗口 (Window) 来消费该输入事件。 在屏幕接收到触摸信息后,会把这个信息交给 InputServiceManage 2025-12-16 源码
6-系统源码 SurfaceViewSurfaceView 的绘制原理 在 WMS 中会为这个 Window 分配 Surface,并确定显示层级,可见负责显示界面的是画布 Surface,而不是窗口本身,WMS 将他管理的 Surface 交由 SurfaceFlinger 处理,SurfaceFlinger 将这些 Surface 合并后放入到 buffer 中,屏幕会定时从 buffer 中获取显示数据, 2025-12-16 源码 > Framework