- 博客(110)
- 收藏
- 关注
原创 安卓开发工程师中高级知识点 —— 系统底层安全方向
Android开发核心技术要点包括:1)AIDL跨进程通信,通过接口定义和Binder机制实现服务调用;2)JNI实现Java与C/C++交互,用于高性能计算和本地库集成;3)插件化技术通过动态加载实现模块热更新;4)Hook技术拦截系统调用;5)反编译工具如jadx分析源码;6)多开技术原理。这些技术涉及底层通信、性能优化和动态扩展等核心开发场景,是Android进阶必备知识。
2025-09-15 01:31:45
730
原创 中级安卓开发工程师的进阶知识点,适合三年工作经验的面试
本文介绍了Android开发的核心技术栈,包括系统原理、架构设计、Jetpack组件和主流框架。首先解析了Android系统从启动到APP运行的流程,然后探讨了MVP、MVVM等架构模式设计思想。详细讲解了Jetpack四大组件(ViewModel、LiveData、Room、DataBinding)的使用方法,并展示了Material Design控件的应用。最后介绍了Retrofit+OkHttp网络请求框架和Room数据库结合Flow的数据流处理方案。这些技术点涵盖了Android开发的系统层、架构设
2025-09-15 00:30:44
934
原创 初级开发工程师要懂的六大原则和设计模式,中级安卓开发更需要懂得如何融入Android源码灵活架构业务场景
Android开发中的设计原则与模式 六大SOLID原则在Android开发中广泛应用:单一职责原则(如Activity与Fragment分工)、开闭原则(通过继承扩展View)、里氏替换原则(如Window继承体系)、接口隔离原则(分离点击监听器)、依赖倒置原则(如Context抽象)和迪米特法则(Intent机制减少耦合)。组合优于继承原则体现在ViewGroup等设计中。 常用设计模式包括:单例模式(系统服务管理)、观察者模式(LiveData数据同步)、工厂模式(Bitmap创建)、适配器模式(Re
2025-09-13 22:00:01
714
原创 Android 系统启动到 APP 运行原理 —— 中级安卓开发工程师进阶必看
Android系统架构分为五层:应用层、框架层、本地库层、HAL层和内核层。系统启动流程包括Bootloader加载内核、Init进程启动Zygote、SystemServer初始化核心服务,最终启动Launcher。应用启动时,AMS通过Zygote孵化新进程,完成Activity初始化和界面渲染。系统运行时包含1个Binder驱动、1个ServiceManager进程,以及Zygote、SystemServer等核心进程。AIDL通过自动生成Stub和Proxy类实现跨进程通信,客户端通过transac
2025-09-13 16:28:26
1233
原创 裸辞一年后面试记录------MetaApp旗下233乐园安卓开发
好感度拉满的文案,婉拒并且没有否定你的能力,只是说和岗位综合匹配度欠缺,综合素质和工作能力都非常优秀。还附带一句有能帮忙的地方可以随时联系,太暖心了这顶级面试反馈。邮箱里面有公司详情链接。次元味很浓,人事头像还是明日香,都是卡通头像,不愧是做游戏的。视频发言也很中二,恩不错稀饭。有三轮面试,晕,吓人,上。
2025-06-23 21:13:49
276
原创 开发Android更基础小白的官方入门教程 含图文 新手友好
本文将指导您安装Android开发工具。官方教程提供了详细的图文步骤,从环境配置到工具安装,手把手帮助您完成整个过程。教程包含清晰的截图和说明,确保即使零基础用户也能轻松跟随操作。通过该教程,您将准备好Android应用开发所需的基本工具和环境。点击文中链接即可访问完整安装指南。
2025-05-25 16:20:43
352
原创 MaterialButton 图标相关属性设置不生效,均为调用的顺序问题,要先设置方位样式等,最后塞图标
MaterialButton 里面的文字被莫名挤出布局,动态设置的 iconGravity 有生效原因:xml 静态设置的 iconGravity 将图标在布局上占位了;动态设置的代码顺序是先设置图标 icon,再调整方位,就导致图标先把文字挤出去了。解决方法:先动态设置方位,再设置图标 icon
2024-04-30 15:11:42
258
原创 Activity 布局加载失败,Caused by: java.lang.RuntimeException: view must have a tag
相同模块不同项目竟然跑不起来,原因就是用了 ViewBinding,报错项目有个同名的布局文件。。。
2024-04-26 10:27:43
592
2
原创 RxJava 复刻简版之四,线程切换
1、执行subscribe,老规矩,通通回调到 subscribeActual 的具体实现。2、subscribeOn、observeOn,声明处理的观察者。1、just(777) ,声明数据处理器。
2023-09-13 10:12:57
336
原创 RxJava 复刻简版之三,map 多次中转数据
案例代码:https://gitee.com/bobidali/lite-rx-java/commit/292e9227a5491f7ec6a07f395292ef8e6ff69290。
2023-08-13 12:10:38
556
原创 RxJava 复刻简版之二,调用流程分析之案例实现
接上篇:https://blog.youkuaiyun.com/da_ma_dai/article/details/131878516代码节点:https://gitee.com/bobidali/lite-rx-java/commit/05199792ce75a80147c822336b46837f09229e46。
2023-08-02 23:04:50
290
原创 AndroidStudio 使用 redmi 一直 install 安装不上
1、进入开发者模式(一般的手机都是查看手机Android信息,然后点7下左右版本号开启)2、滑到很后面,关闭纯净模式…
2023-08-02 22:51:08
485
原创 AS 识别不了项目,rebuild报错:unable to find gradle tasks to rebuild
AndroidStudio 跑不起来
2023-07-28 15:39:22
998
原创 RxJava 复刻简版之一,调用流程分析之案例一
因此,代码 emitter.onNext(1);执行回调到 CreateEmitter,又回调返回给代码调用 public void onNext(@NonNull Object o) {/// 4 ConstKt.myLog(TAG +“onNext”);创建的 CreateEmitter 回调给 subscribe,也就是 emitter.onNext/onComplete/onError。根据以上流程,模仿一个。
2023-07-23 14:29:14
278
原创 csdn 机器人回答 Spring 设计模式
模板方法模式:Spring框架中的JdbcTemplate和HibernateTemplate就是模板方法模式的应用,它们封装了常用的数据库操作,使得应用程序更加简洁。控制反转(IoC)模式:IoC模式是DI模式的一种实现方式,它通过将对象的创建和管理交给框架来实现对象之间的解耦。观察者模式:Spring框架中的事件机制就是观察者模式的应用,它通过观察者和被观察者之间的关系来实现事件的处理。单例模式:Spring框架中的Bean默认是单例的,这样可以减少对象的创建和销毁,提高应用程序的性能。
2023-07-23 12:55:16
304
原创 taskAffinity、launchMode 与 flag
此外,设备一次只能保留一个 “singleInstance” activity 实例,而 "singleInstancePerTask activity 在 FLAG_ACTIVITY_MULTIPLE_TASK 或 FLAG_ACTIVITY_NEW_DOCUMENT 已设置的情况下,在不同的任务中可以多次实例化。否则,如果 “singleTop” activity 的一个现有实例在目标任务中,但不在堆栈顶部,或者它位于堆栈顶部,但不在目标任务中,则系统将创建一个新实例并将其推送到堆栈中。
2023-06-18 17:25:12
339
原创 设计模式之部分 Android 源码 api29
使用clone,减少重复new 对象的消耗,但有浅拷贝和深拷贝的区别,使用时也必须注意数据复用的影响。
2023-06-18 13:49:10
341
原创 API 32 源码看多线程创建流程
参考资料 https://blog.youkuaiyun.com/MarketAndTechnology/article/details/130772687。
2023-06-07 20:54:16
506
原创 chitGPT 回答 volatile 关键字
在 Android 中,SurfaceFlinger 是一个用来管理显示系统的服务,它会将多个应用程序的图形数据进行合成后输出到屏幕上。Android 系统中的事件分发机制是通过一个事件队列来实现的,当有事件到达时,会先将该事件插入到事件队列中。事件队列是一个共享的数据结构,因此在实现时需要使用 volatile 关键字来保证多个线程对事件队列的读取正确性。总之,在 Android 源码中,volatile 关键字广泛应用于多线程编程中,用于保证共享数据的读取正确性。
2023-06-07 20:52:36
276
原创 AndroidStudio 运行报错 Changes are not tracked, unable determine incremental changes.
AndroidStudio报错
2023-02-23 22:59:34
2176
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅