![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 76
猎羽
My name is feather!
展开
-
Android系统启动流程 源码解析
Android启动流程全解析原创 2023-08-27 02:14:55 · 5649 阅读 · 0 评论 -
Kotlin Lambda和高阶函数
Kotlin 高阶函数深入探究原创 2023-08-17 21:18:54 · 6021 阅读 · 0 评论 -
Kotlin协程
Kotlin协程解析原创 2023-08-10 03:14:54 · 196 阅读 · 0 评论 -
The label parameter should be set so this animate*AsState can be better
Compose动画原创 2023-08-09 07:38:08 · 170 阅读 · 0 评论 -
Compose基础入门
Android Compose 入门原创 2023-08-07 09:15:31 · 214 阅读 · 0 评论 -
JVM 类文件结构(class文件)
10、JVM中方法句柄和方法类型是指什么?9、JNI中方法描述符(Method Descriptor)1、属性表的主要属性 ===> APT ===> ASM。8、方法的描述符 ==> JNI方法描述符。6、常量池 = 入口 + 常量池。2、class文件是大段字节序。3、class文件的组成部分。11、JVM中的动态调用点。1、class文件的组成。方法的参数类型和返回类型。12、JVM中的动态常量。7、常量池中存放的内容。2、Code属性的结构。2、特征签名是什么?原创 2023-08-05 10:38:17 · 900 阅读 · 0 评论 -
Jetpack深度探索
3、事件派发:Activity->ReportFragment(派发六大事件)->LifecycleRegisry(五大状态处理)->拆包装(state和mState同步->onStageChange->反射调用Map(key=Event,Value=Method))3、数据粘性 ====================================================> Hook、反射、封装。4、为什么Activity能够被感知?6、状态同步是什么意思?2、注册:装饰者模式。原创 2023-08-04 00:20:52 · 83 阅读 · 0 评论 -
Compose手势
本文链接:点击拖动滑动锚点。原创 2023-08-02 02:01:02 · 524 阅读 · 0 评论 -
Android 热修复
1、实现类:BootClassLoader、PathClassLoader、DexClassLoader、InMemoryClassLoader。3、Tinker是差分包 + Bug Dex = 修复后Dex。4、后续拿到的都是修复后的Method.class类对象。5、什么时候热修复?1、PathClassLoader是哪里创建的?4、热修复思路 => 将补丁Dex放到数组前面。2、下面类的ClassLoader是什么?2、如何拿到补丁包的有注解Method?1、关键词:DexDiff、增量更新。原创 2023-08-01 23:28:36 · 443 阅读 · 0 评论 -
MVX总结
汽车要运载人,人还要携带物品,汽车和人直接交互==要有限的和其他对象交互(不要了解其内部细节,不和不直接对象交互):迪米特原则,最少知识原则。View:视图,不同架构中充当角色不同 xml(java)/composable/kotlin。Android平台的实现中,有大量的View的操作在COntroller(Activity)中。思考:如果Presenter可以操作View和Model,不就等于是之前的Activity吗?MVI流程:ui,intent,viewmodel,uistate,ui。原创 2023-07-31 20:17:32 · 675 阅读 · 0 评论 -
重学ARouter
注解处理器出好了每个Element(判断好类型)构造出数据集合用于后面构建Group类和Root类构造出RouteMeta(Class、path、group等),存放到所属的中(add)把PathGroup放入到GroupMap中GroupMap存放到RootMap中构造Group类文件 * N构造Provider文件构造Root类文件。原创 2023-07-30 14:15:37 · 214 阅读 · 0 评论 -
DataBinding原理深度研究
2、type="com.personal.tax.User"这里全类名是使用的反射吗?8、DataBinding中报错,95%是布局xml错误。1、目前安卓常用设计模式有MVC、MVP、MVVM。翻遍了整个安卓开发文档,都没有说安卓是mvc的。3、MVVM中VM和ViewModel什么关系?1、DatBinding的布局是如何处理的?2、DataBinding会将原有布局拆分。3、variable的作用是什么?4、DataBinding的作用是什么?7、为什么会有待处理的绑定请求?原创 2023-07-19 22:18:15 · 105 阅读 · 0 评论 -
ViewModel原理深入探究
ViewModel作用:保证数据的稳定性,可以避免用户填写了很多EditText数据接个电话数据没了。ViewModelProvider构造: 存储ViewModelStoreOwner和Factory。2、NonConfigurationInstances是如何做到横竖屏切换还能保存数据的?1、Activity等Owner需要实现getViewModelStore()1、NonConfigurationInstances是什么。ViewModelStore中是HashMap。原创 2023-07-19 22:13:31 · 74 阅读 · 0 评论 -
ViewBinding的基本概念
本文链接:https://blog.csdn.net/feather_wch/article/details/131797482。Koltin绑定机制:不再需要findViewById。Kotlin绑定机制和ViewBinding用哪个?ViewBinding 轻量级。DataBinding 重量级。ViewBinding原理。原创 2023-07-18 22:09:08 · 443 阅读 · 0 评论 -
LiveData使用和原理
本文链接:https://blog.csdn.net/feather_wch/article/details/131797422。原创 2023-07-18 22:06:20 · 1238 阅读 · 0 评论 -
Lifecycle原理和机制
本文链接:https://blog.csdn.net/feather_wch/article/details/131797308。原创 2023-07-18 22:00:38 · 225 阅读 · 0 评论 -
OkHttp原理和机制讲解
本文链接:1、OkHttp的原理和机制包括哪些部分?2、Http 1.1和Http2.0的区别3、OkHttp请求整体流程4、分发器(调度机制)5、调度机制,异步请求流程6、拦截器+责任链。原创 2023-07-17 15:22:02 · 1566 阅读 · 0 评论 -
Gradle Transform和ASM
本文链接:https://blog.csdn.net/feather_wch/article/details/131753544。原创 2023-07-16 18:46:27 · 393 阅读 · 1 评论 -
Matrix代码零侵入自动埋点
应用启动流程与卡顿监控的关系卡顿监控原理分析与缺陷微信是如何实现卡顿监控的无侵入埋点技术实践。原创 2023-07-13 00:38:14 · 247 阅读 · 1 评论 -
线上APM
1、讲到so,就要讲兼容性问题,写了一套自己的动态加载库(ReLink),讲原理和思路。1、Tinker的so加载原理/流程 => dex加到数组前面。1、so动态加载库 KeepSafe/ReLinker。11、如何计算开机到Activity首帧的时间?10、FPS高 60帧/s 能代表不卡吗?4、IdleHandler有什么用?4、so加载的路径有哪些?7、FPS两种方案,区别是什么?3、厂商魔改ROM改的是什么?6、FPS代码写在哪儿?8、要看到每个方法的耗时。2、错误日志,动态上传。原创 2023-07-12 23:37:51 · 104 阅读 · 1 评论 -
Android Apk瘦身
本文链接:1、Apk内容2、只有AndroidManifest文件,没有dex和res文件都是合理合法的,只是没有意义3、插件 Android Size Analyzer 的使用4、资源缩减把没用的资源变得非常小,删除了内容,可能几十Bytekeep.xml5、自定义keep资源配置6、Lint工具7、备用资源是什么?8、移除无用的备用资源原创 2023-07-12 08:10:17 · 367 阅读 · 1 评论 -
Andorid 屏幕适配
1、dpi是什么?2、dp和px转换3、适配策略(宽度百分比,高度长宽比)原创 2023-07-12 01:38:34 · 205 阅读 · 0 评论 -
MMKV:线程和进程处理
/ 属性初始化 pthread_mutexattr_settype(&attr, PTHREAD_MUTEXT_RECURSIVE);// 设置为递归锁/可重入锁 pthread_mutext_init(&mutext, &attr);operation: 锁的类型 LOCK_SH 共享锁(读锁) LOCK_EX 排他锁(写锁) LOCK_UN 释放锁 LOCK_BN 非阻塞请求,默认都是阻塞的,可以:LOCK_SH|LOCK_BN,类似于JUC Lock的tryLock()Lock Lock(tl);原创 2023-07-11 23:21:23 · 347 阅读 · 0 评论 -
MMKV实现:数据存储和读取
>value < 0 => writeInt64(value) // 负数作为64 int 写入 ->while() ->if(value < 0x7f) ->writeByte(value) ->else ->writeByte(value & 0x7f | 0x80) //取低7位,在最高位赋1(标记位) ->value >>= 7 //每次处理七位数。-> value = buf->readInt32() // 解析出int。23、Java中如何把float转为int?4、负数为什么要用补码存储?原创 2023-07-11 23:19:52 · 919 阅读 · 0 评论 -
MMKV使用和原理
需要是整数页个字节 byte[] m_ptr = (int8_t *) mmap(0, m_size, PROT_READ | PROT_WRITE, MAP_SHARED, // 向m_ptr写入数据可以同步到文件,就要用MAP_SHARED m_fd, 0);var mmkv = MMKV.defaultMMKV() // 全局对象 mmkv.encode("bool", true) // put var bValue = mmkv.decodeBool("bool") //get。原创 2023-07-11 08:08:11 · 600 阅读 · 0 评论 -
存储优化和Protobuf
1、Protobuf相比于json、xml优点使用简洁体积小:大小只有xml 10%~33%(可变编码)速度快:比xml快60~100倍Protobuf编译系统,编译成Java代码兼容性好:更好线上线下兼容缺点:可读性差。原创 2023-07-10 22:42:02 · 718 阅读 · 0 评论 -
Android ANR
zygote爸爸init发现zygote的死亡信号,会杀死所有zygote的子进程并且重启zygote。1、并发synchronized原理、renentrantlock、CAS、AQS(CLH)4、Hadnelr、ASM(startActivity 从整体结构去讲解)9、线程底层的状态 -1~9 11种,Java层面上层 6种状态。6、网络 http版本区别、https认证过程(一定安全吗?5、性能优化:内存优化(Bitmap)、卡顿优化。7、数据结构:链表、二叉树。20、ANR问题如何定位。原创 2023-07-10 21:41:14 · 476 阅读 · 0 评论 -
Android Crash监控
2、build.gradle中defaultConfig中externalNativeBuild->cmake和ndk的区别是什么?7、minidump文件是微软开发的用于崩溃上传的文件格式,需要工具minidump_stackwalk工具处理。4、为什么系统的Handler会kill app,我们还能做保存文件的工作?8、用addr2line工具将trace文件中的寄存器地址转为对应的符号。5、上传的日志信息,要结合混淆的Mapping文件进行分析。5、BreakPad的源码分析。原创 2023-07-10 21:39:54 · 536 阅读 · 0 评论 -
Android 电量优化
36、设计和编码时如何进行电量优化(避免)阻止手机休眠经常唤醒手机后台频繁运行过度绘制37、WakeLock使用} wakelock . acquire(timeout) // 可以多少毫秒后,自动释放 wakelock . setRefrenceCounted(false) // 可以直接关闭引用计数,一次release就直接完全释放WakeLock适合熄屏后还要执行的任务(音乐)WakeLock acquire和release要配对使用,一一对应。原创 2023-07-10 21:38:16 · 557 阅读 · 0 评论 -
Android启动流程优化 中篇
12、EventBus、Arouter启动和初始化很耗时,可以采用接入插件来减少初始化时间,优化启动速度。5、如何查看App启动耗时时长?8、StrictMode 严苛模式 setThreadPolicy()/setVmPolicy()6、CPU Profile/TraceView(废弃)相关图表。16、字节 multidex 优化启动速度 => 误导读者。15、启动速度和内存优化也有关系?10、如何减少inflate的时间?14、应对面试的处理步骤!13、启动优化项的几个方面。2、启动方式(官方)原创 2023-07-06 23:07:33 · 400 阅读 · 0 评论 -
Android启动流程优化 上篇
存在,因为bindApplication和handleLaunchActivity,使用了非阻塞的oneway修饰的IBinder异步通信,可能存在相反情况,有保护机制:performLauncherActivity()中newActivity()后还会LoadedApk去makeApplicaiton()该图片在AndroidManifest.xml中设置Application的主题Theme,设置了styles.xml中自定义主题的`android:windowSplashscreenContent`原创 2023-07-06 08:15:12 · 267 阅读 · 1 评论 -
Android 性能优化 内存抖动 内存泄漏
Shallow Size = [类定义] + 父类fields所占空间 + 自身fields所占空间 + [alignment]5、Memory Profiler的Record java/kotlin allocations的作用?4、Memory Profiler的Capture heap dump的作用?CPU、内存、电量,网络赚到了Network Inspector。11、Glide LruArrayPool怎么实现的?10、byte数组的对象池需要满足的条件。1、内存泄漏用什么工具监控?原创 2023-07-04 23:37:27 · 850 阅读 · 1 评论 -
协程receiver版本startCoroutine和手写挂起和恢复
对于限定了MyScope作用域方法,1-非挂起方法都可以 2-suspend的都需要时MyScope作用越。startCoroutine具有 Receiver 版本的定义。传统startCoroutine是无Receiver版本。代码实例:startCoroutine。1、消费者执行并不会动。原创 2023-07-04 00:33:29 · 154 阅读 · 0 评论 -
Android性能优化-数据结构
云笔记链接:https://note.youdao.com/s/84OhDByE。原创 2023-07-04 00:29:30 · 86 阅读 · 0 评论 -
Android 自定义View和事件分派 图解
Android 自定义View和事件分派 图解_猎羽的博客-CSDN博客。原创 2023-07-01 09:13:40 · 91 阅读 · 1 评论 -
Android 图形系统-图解和初步探究
屏幕上的内容需要需要不断的更新,如果在同一个Buffer进行读取和写入(合成)操作,将会导致屏幕显示多帧内容。准备更新显示画面或其它UI的信息变化时,首先调用MessageQueue::invalidate方法,其中会去请求一次vsync callback;显示屏上的内容,是从硬件帧缓冲区读取的,大致读取过程为:从Buffer的起始地址开始,从上往下,从左往右扫描整个Buffer,将内容映射到显示屏上。第⼀步:CPU:Measure,Layout,纹理和多边形⽣成,发送纹理和多边形到GPU。原创 2023-07-01 08:12:25 · 436 阅读 · 1 评论 -
Android(四) Activity布局初步(一)
布局的初步介绍。包含布局的基础属性上的知识点 例如:id,text,textSize,background等等 包含如下布局介绍: LinearLayout TableLayout布局xml的基础属性xml命名空间xmlns:android="http://schemas.android.com/apk/res/android"<!-- 这是xml注释的格式-->布局原创 2015-12-15 13:19:30 · 394 阅读 · 0 评论 -
[Learn Android Studio 汉化教程]第一章 : Android Studio 介绍
从安装JDK、Andorid Studio到如何建立一个简单的HelloWorld工程。转载 2016-01-18 19:15:06 · 1923 阅读 · 0 评论 -
Android Studio下载,SDK下载以及代理
请点击这个网站:http://www.androiddevtools.cn/donate.html 能够通过其设置免费的代理原创 2016-01-18 19:09:01 · 550 阅读 · 0 评论 -
Acitivity原理详解
activity生命周期内的7个函数 参考自Android API关于activity的详细介绍生命周期1.七个函数public class Activity extends ApplicationContext { protected void onCreate(Bundle savedInstanceState); protected void onStart();原创 2015-12-14 23:06:13 · 676 阅读 · 2 评论