
Android 架构篇
文章平均质量分 66
Android 架构篇
IT小瓯
优快云博客专家,前端领域优质创作者,安徽工程大学毕业,已获得信息系统项目管理师证书,软件设计师证书,PMP证书,领英GAI认证等。
展开
-
《安卓高级开发》知识点整理(架构篇)
第一章 架构师入门第一节 UML建模1.1.0 PowerDesigner安装1.1.1 正向工程与逆向工程在UML图中的应用1.1.2 关系(依赖,泛化,关联,实现)画法1.1.3 AOP面向切面架构设计1.1.4 集中式登录架构设计第二节 设计模式1.2.1 MVC架构设计与三层模型1.2.2 MVP思想精髓与解耦1.2.3 MVP思想实现项目基础框架搭建1.2.4 更节省的设计模式之MVVM实现数据双向绑定1.2.5 MVVM与DataBinding第三节 无死角分析Andr原创 2021-02-18 10:42:36 · 870 阅读 · 5 评论 -
Android TV端弹出的PopupWindow没有获取焦点
在 TV 开发中,焦点管理是通过实现的,默认不接受焦点,导致遥控器无法选择弹窗内的控件。这是因为默认不会将焦点传递到其内容视图上。要解决问题,可以通过以下步骤调整的焦点行为。原创 2024-12-31 18:46:41 · 591 阅读 · 0 评论 -
组件化gradle语法,抽取confg.gradle
Gradle●Gradle构建工具的出现让工程有无限可能●Gradle核心是基于Groovy脚本语言,Groovy脚本基于Java且拓展了Java。因此Gradle需要依赖JDK和Groovy库。●和ant、maven构建有区别,gradle是一 种编程思想代码+讲解样式//第1种打印字符串方式: println("hello gradle")//第2种打印字符串方式:println "hello studio"点击sync打印。抽取公共配置...原创 2022-02-22 14:45:08 · 1893 阅读 · 0 评论 -
一次对Handler的回忆~
几个热身问题一、handler内存泄漏测试1、handler的基本使用2、handler发送的过程中(休眠2s),关闭activity,消息仍然可以接收到。3、使用removeMessage的方式测试,发现没用。原因是还没有压入队列。4、destory的时候直接置空handler,发现有用。5、message.recycle方式:如果已经进消息队列了,还好说,如果还没进入消息队列,则会报异常。二、不能在子线程中创建handler1、理由是子线程中的looper还是空的三、TextV原创 2021-09-18 15:44:58 · 321 阅读 · 0 评论 -
安卓PMS、AMS介绍原理分析,App启动流程分析等大杂烩
PackageManagerService和ActivityManagerService都是Zygote进程fork出来的,我之前敲了一段文字介绍Zygote进程的,有兴趣的朋友可以先看看:初识Zygote进程。另外有位简书大佬写的文章,内容很全, 值得推荐:APK安装流程详解PMS什么是PMS?PMS类关系图有界面安装Packagelnstaller无界面安装APK安装原理AMS什么是AMSAMS的通信方式介绍Activity跨进程跳转App启动流程A原创 2021-08-04 18:21:32 · 813 阅读 · 0 评论 -
网易换肤第三篇:动态换肤实现!
脑图:https://note.youdao.com/s/DWUvTqgUDemo源码参考:这里。About网易换肤第一篇:换肤技术解密!网易换肤第二篇:本地换肤实现!网易换肤第三篇:动态换肤实现!架构师系列文章一览推荐原创 2021-06-17 17:50:16 · 418 阅读 · 0 评论 -
Rxjava2进阶使用篇
文章目录Rxjava线程切换实战RxJava背压模式背压策略背压例子RxJava之Flowable讲解RxJava配合RetrofitJava泛型的上下限Rxjava线程切换实战异步线程区域Schedulers.io() :代表io流操作,网络操作,文件流,耗时操作Schedulers.newThread() : 比较常规的,普普通通Schedulers.computation() : 代表CPU 大量计算 所需要的线程AndroidSchedulers.mainThread() :原创 2021-03-16 16:03:29 · 361 阅读 · 0 评论 -
网易换肤第一篇:换肤技术解密!
参考脑图:https://note.youdao.com/s/Q1e6r39j最终效果:Demo源码:www.baidu.com技术点分析换肤的核心思路主要是在setContentView()之前调用setFactory2()来收集控件属性,然后在Factory的onCreateView()中利用收集到的属性来创建view。不懂?没事,往下看。弄明白换肤技术的实现之前,得有上图这几个知识储备。首先得知道控件是在setContentView()方法中通过XmlPullParser解析我原创 2021-06-15 18:28:52 · 1313 阅读 · 21 评论 -
MVP思想实现项目基础框架搭建
本文用MVP思想实现项目基础框架搭建,并用登录功能做例子,供参考。框架部分代码BaseView.java// View层基类public abstract class BaseView<P extends BasePresenter, CONTRACT> extends Activity { protected P p; @Override protected void onCreate(Bundle savedInstanceState) {原创 2021-07-02 17:48:38 · 315 阅读 · 1 评论 -
Rxjava2基础概念和操作符
文章目录RxJava概念与观察者模式RxJava的上游与下游流程整理 1流程整理 2流程整理 3Rxjava创建型操作符createjustfromArrayemptyrangeRxjava变换型操作符mapflatMapconcatMapgroupBybufferRxJava过滤型操作符filter 过滤take 过滤操作符distinct 过滤重复事件elementAt 操作符RxJava条件型操作符All操作符contains操作符any操作符RxJava合并型操作符startWait操作符conca原创 2021-03-16 16:02:10 · 411 阅读 · 0 评论 -
AOP面向切面架构设计
示例原创 2021-07-09 17:08:13 · 189 阅读 · 0 评论 -
MVC架构设计与经典的三层模型
Seek first to understand, then to be understood. —— Daily English原创 2020-04-21 18:51:56 · 1140 阅读 · 1 评论 -
网易换肤第二篇:本地换肤实现!
完整脑图:https://note.youdao.com/s/V2csJmYSDemo源码:点击下载技术分析我们在换肤的第一篇介绍了换肤的核心思想。就是在setContentView()之前调用setFactory2()。第一篇的Demo利用的是AOP切面方法registerActivityLifecycleCallbacks(xxx)回调在setContentView()之前,从而在registerActivityLifecycleCallbacks的onActivityCreated()方法.原创 2021-06-17 17:13:29 · 392 阅读 · 1 评论 -
QQ换肤源码实战,一步一步教你操作
各位大佬周末快乐,没错,无聊的我又在搞事情。之前写过几篇讲解换肤原理的文章,没看过的朋友可以在文末链接点击跳转查看。本文是一个换肤的实战Demo,有兴趣的朋友可以下载参考:Demo下载地址。正文下载完成后在as中打开,项目目录如下:其中有项目module和换肤module已经在图中注明。换肤module不是用来直接运行的,而是用来打包成换肤包,放到指定位置,供主App加载,从而加载换肤包的资源,实现换肤效果。打包换肤包少时等待,打包完成后在as右下角会有提示:点击对应的locate就原创 2021-08-01 13:38:16 · 1187 阅读 · 0 评论 -
DataBinding的使用与原理
11原创 2020-04-14 00:32:52 · 1856 阅读 · 0 评论 -
MVVM实现数据双向绑定
这篇文章旨在通过一个Demo让我们对Android中的MVVM架构进行初步的认识。MVVM与DataBinding的关系很多同学会将这两者混为一谈,所以开始介绍之前,我们需要先理清楚这两者的关系。MVVM和MVC、MVP一样,是项目中的架构设计思想;DataBinding是一种工具,它可以用于MVVM,也同样可以用于MVC和MVP。所以这两者是两回事,一个是架构设计思想,一个是工具。MVV...原创 2020-04-12 17:12:00 · 7972 阅读 · 0 评论 -
集中式登录架构设计(AOP)
录屏日志:代码:class MainActivity : AppCompatActivity() { private val TAG = "lr >>> " companion object { var isLogin = false } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState原创 2021-07-14 11:45:15 · 369 阅读 · 2 评论 -
换肤实例二,可扩展类型换肤库
榨干剩余价值,这是第二个实例步骤与第一个示例类似,如果不清楚请参考:QQ换肤源码实战,一步一步教你操作!!Demo下载PPT下载About网易换肤第一篇:换肤技术解密!网易换肤第二篇:本地换肤实现!网易换肤第三篇:动态换肤实现!架构师系列文章一览...原创 2021-08-01 15:37:05 · 218 阅读 · 0 评论 -
MVP思想精髓与解耦(Kotlin)
本文用来认识MVP项目结构,第二篇会补充处理内存泄漏等注意点。理论知识,吧啦吧啦~,没兴趣可以直接 跳至Demo部分。MVP初探关系:View收到用户的操作View把用户的操作,交给PresenterPresenter控制Model进行业务逻辑处理Presenter处理完毕后,数据封装到ModelPresenter收到通知后,再更新View方式:是双向的通信方式优点:View层与Model层完全分离所有的逻辑交互都在PresenterMVP分层较为严谨MVP思想精髓View原创 2021-07-02 16:02:40 · 321 阅读 · 7 评论