鸿蒙和Android知识点
鸿蒙知识点
- 鸿蒙OS与Android OS的主要区别是什么
- har、hsp、hap和app文件的区别
- ArkTs 和 Ts 有什么区别
- 介绍下页面组件的生命周期
- 如何进行数据持久化
- 父子组件的通讯方式有哪些
- AppStorage和LocalStorage的区别是什么,使用时有何注意事项
- Navigation和Router的区别
- 鸿蒙有哪些后台任务类型
- 什么是ability,ability的启动方式有哪些
- List加载大量数据时,如何优化
- 箭头函数和普通函数的区别
- V1和V2版本有什么区别,V2解决了V1中的哪些问题
- HarmonyOS和OpenHarmony的区别
- 异步和线程的区别
- 创建线程的方式有哪些
- 如何对不同屏幕进行适配
- 什么是Stage模型,说说对Stage的理解
- 如何配置多渠道包
- 如何动态设置打包名称
- 开发好的功能,如何打包给测试进行验证
- 打包时,配置的target和prodect是什么
- 当应用发生故障时,如何获取系统日志
- 进程间和线程间如何进行通讯
- 应用、元服务和卡片是什么关系
- 应用没有获取到定位、存储权限,该如何获取位置信息并保存在公共目录下
- 如何实现AOP(代码插桩)能力
- 如何解析JSON字符串为实例对象
- 如何将Map转换为JSON字符串
- A持有B,B引用A的场景会不会导致内存泄漏
- 对于网络请求这类I/O密集型任务是否需要使用多线程进行处理
- 如何判断是否为主线程
- 如何解决滑动冲突
- 如何实现事件透传
- 如何监听组件的显示和隐藏
- 有哪些方式实现沉浸式页面
- 如何实现点9图效果
- @Style 和 @Extend 是否支持export导出
- 项目中的resfile和rawfile有什么区别
- @Builder和@LocalBuilder有什么区别
Android知识点
- equals与==、hashCode区别与使用场景
- String s = new String(“xxx”);创建了几个String对象,String为什么要设计成不可变的
- finally中的代码一定会执行吗?try里有return,finally还执行么
- Java异常机制中,异常Exception与错误Error区别
- 序列Parcelable,Serializable的区别
- 注解是什么?有哪些使用场景
- 假如只有一个cpu,单核,多线程还有用吗
- sychronied修饰普通方法和静态方法的区别?什么是可见性?
- CAS无锁编程的原理
- AQS原理
- ReentrantLock的实现原理
- Synchronized的原理以及与ReentrantLock的区别。
- volatile关键字干了什么?(什么叫指令重排)
- volatile 能否保证线程安全?在DCL上的作用是什么?
- volatile和synchronize有什么区别?
- 创建线程池的方式有哪些?线程池的参数有哪些?
- ArrayList和LinkedList的区别,HashMap和Hashtable的区别,线程安全的集合有哪些?
- 包体积优化有哪些方式?
- JVM内存模型
- JVM垃圾回收机制
- String、StringBuffer、StringBuilder的区别
- error和exception的区别
- 什么是死锁,如何避免死锁
- 谈谈对公平锁和非公平锁、悲观锁和乐观锁的理解
- 四大引用的区别与应用场景
- Intent传输数据的大小有限制吗,如何传输大量数据
- PathClassLoader与DexClassLoader的区别是什么?
- 什么是双亲委托机制,为什么需要双亲委托机制?
- 反射为什么慢?说说反射的应用场景,哪些框架?
- 动态代理是什么?如何实现?动态代理的方法怎么初始化的?
- 请你描述TCP三次握手与四次挥手的过程与意义
- 谈谈你对TCP与UDP的区别是什么的理解
- 谈谈你对TCP 流量控制与拥塞控制的理解
- 谈谈你对Http与Https的关系理解
- SSL握手的过程都经历过什么
- 谈谈你对Http的post与get请求区别的理解
- 输入一串URL到浏览器都经历过什么?
- Kotlin内置标准函数apply/run/also/let的原理是什么?
- kotlin的协程是什么?与线程有什么区别?如何创建一个协程
- kotlin的内联函数是什么?有什么作用?
- 使用过哪些kotlin中的高阶函数
- 列举kotlin dsl在项目中的使用场景
- View的绘制原理
- View绘制流程与自定义View注意点
- View的绘制流程是从Activity的哪个生命周期方法开始执行的
- Activity,Window,View三者的联系和区别
- 如何更新UI,为什么子线程不能更新UI?
- DecorView, ViewRootImpl,View之间的关系
- 自定义View执行invalidate()方法,为什么有时候不会回调onDraw()
- invalidate() 和 postInvalicate() 区别
- Android中多进程通信的方式有哪些?
- 描述下Binder机制原理?为什么Android要采用Binder作为IPC机制?
- Handler怎么进行线程通信,原理是什么?handler.post(Runnable) runnable是如何执行的?
- ThreadLocal的原理,以及在Looper是如何应用的?
- Handler如果没有消息处理是阻塞的还是非阻塞的?
- Activity的4大启动模式,与开发中需要注意的问题
- 请描诉Activity的启动流程,从点击图标开始。
- 一张图片100x100在内存中的大小?
- 内存优化,内存抖动和内存泄漏。
- 什么时候会发生内存泄漏?
- 启动优化有哪些方式
- UI卡顿的原因有哪些?如何解决?
- 对OOM异常可以进行trycatch吗?
- 介绍下事件分发机制
- 介绍下RecyclerView的缓存机制
- Compose重组时如何避免状态被重置
- Compose中状态提升是什么
- Compose中remember和rememberSaveable有什么区别
- 如何优化Compose的性能
- 如何处理Compose中的副作用
- DisposableEffect、SideEffect、LaunchedEffect之间的区别?
- 如何将View集成到Compose中
- 现有项目如何迁移到Compose
- CompositionLocal的作用及用法
- Compose的3个阶段分别是什么
源码分析
- livedata、lifecycle、viewmodel的源码分析
- okio、okhttp和retrofit的源码分析
- glide源码分析
- HashMap源码分析
- SharedPreferences源码分析,DataStore解决了SharedPreferences的哪些问题