- 博客(210)
- 资源 (46)
- 收藏
- 关注
原创 Navigation的基本使用
利用Navigation的三大组件,我们可以自由控制管理fragment的切换和数据传递和回退栈,不要再想以前一样通过FragmentManager进行replace或者show了,以及事务的提交,在数据传递方面,也不会通过fragmentID和接口回调的方式进行传递,大大方便了我们的代码编写。在应用中导航时,您告诉 NavController,您想沿导航图中的特定路径导航至特定目标,或直接导航至特定目标。NavController 便会在 NavHost 中显示相应目标。
2023-09-01 18:24:24
2558
原创 Room的基本使用
Room也同样如此,逐渐取代竞品成为最主流的数据库ORM框架。这当然不仅仅因为其官方身份,更是因为其良好的开发体验,大大降低了SQLite的使用门槛。通过Database获取DAO,然后通过DAO查询并获取entities,最终通过entities对数据库table中数据进行读写。Android Jetpack的出现统一了Android开发生态,各种三方库逐渐被官方组件所取代。
2023-08-31 16:26:09
238
原创 DataBinding的基本使用
特别注意:MVVM模式下的ViewModel(VM)和 Jetpack的ViewModel 不是同一东西,MVVM中的ViewModel是层次结构,而Jetpack的ViewModel是组件库。缺点:Activity不仅要做View的事情还要做控制和模型的处理,导致Activity太过臃肿,管理混乱,没有单一职责,耦合度、扩展性都不太好。MVVM: 适用于界面更新很频繁,比如网易云音乐。MVP:适用于大型项目、业务很重、项目很大。MVC: 适用于小型项目,够灵活,缺点:出现接口过多、接口地狱问题。
2023-08-28 09:30:11
1395
原创 ViewBinding的基本使用
通过gradle插件会生成对应的binding文件,比如布局xml文件名为activity_main.xml,对应生成的binding文件名为ActivityMainBinding。:开发人员可能会在类中导入其他xml布局文件的控件属性,从而导致不易察觉的错误。
2023-08-25 17:31:17
283
原创 Android中tools属性的使用
Android Studio在tools命名空间中支持一些XML属性来开关设计功能和编译时行为。当构建应用时,构建工具会删除这些属性,从而不会影响APK的大小和运行行为。
2023-08-11 10:52:56
2849
1
原创 kotlin 和 java 的区别
Kotlin 的编译时间比 Java 更快,这意味着在开发过程中你可以更快地看到你的代码的效果。泛型:Kotlin 的泛型支持更加丰富,它支持声明类型参数的上界,并且可以在编译时进行类型检查。Kotlin 支持密封类,这是一种特殊的类,可以限制它的子类数量。这可以帮助你在编译时捕获潜在的错误,并且还可以让你的代码更加清晰。Kotlin 支持扩展函数,这使得你可以为现有类添加新的函数,而无需修改原来的代码。Kotlin 支持实例初始化,这使得你可以在创建类的实例时直接初始化它的属性。
2023-06-20 21:27:56
1046
原创 子模块交互方式
方式三:使用隐式意图方式,缺点是:在AndroidManifest.xml里面配置xml写的太多了。方式一:使用EventBus的方式,缺点是:维护成本太高,不好去管理;方式五:使用全球Map的方式,缺点是:要注册很多的对象。方式二:使用广播,缺点是:不好管理,都统一发出去了。方式四:使用类加载,缺点是:容易写错包名类名。方式六:使用ARouter。
2023-06-16 14:05:23
100
原创 Android应用启动过程优化
在ActivityThread里面有一个函数handleResumeActivity(),在这个函数中我们执行会间接的调用activity的onResume函数,当onResume函数执行完成后会在handleResumeActivity中如下的一段代码1。在上面的代码中,会执行WindowManager的addView函数,在这个函数里面会调用ViewRootImpl的函数,进而调用WMS的方法,将decor这个view显示到Window上,decor。第二阶段:应用Application执行过程。
2023-03-16 20:55:24
1172
原创 内存泄露(十)-- KOOM(高性能线上内存监控方案)
周期性查询Java堆内存、线程数、文件描述符数等资源占用情况,当连续多次超过设定阈值或突发性连续快速突破高阈值时,触发镜像采集镜像采集采用虚拟机supend->fork虚拟机进程->虚拟机resume->dump内存镜像的策略,将传统Dump冻结进程20s的时间缩减至20ms以内基于shark执行镜像解析,并针对shark做了一系列调整用于提升性能,在手机设备测即可执行离线内存泄露判定与引用链查找,生成分析报告。
2023-03-15 13:27:34
3255
Android相关学习资料,包含源码和FrameWork内核j解析
2022-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人