Android
文章平均质量分 75
lixintyw
这个作者很懒,什么都没留下…
展开
-
framework学习(1)——源码的角度分析handler(1)
大前提Android中更新Ui必须在主线程,在子线程更新Ui会报子线程不能修改UI异常如果任意线程都可以更新UI的话,线程安全问题处理起来会相当麻烦复杂,就会出现页面错乱。所以就规定了Android的是单线程模型,只允许在UI线程更新UI操作。那如果有许多需要耗时的操作都放在UI主线程中执行的话,必然会造成主线程的卡顿,会阻塞掉UI线程,导致手机不再显示或者接受用户新的操作,给用户一种死机的感觉。因此最好的方法是将用户耗时较长的操作放到另一个线程中去,并且用监听者模式来监听操作的完成。这里handler原创 2021-01-17 18:00:15 · 66 阅读 · 0 评论 -
Android中使用mvvm(三)
部分内容学自https://www.jianshu.com/p/fc7d53d32096基于DataBinding与LiveData的MVVM在MVP模式下,随着业务逻辑的不断增加,UI也会变得越来的多样化,UI改变多样化势必会造成View层的接口case变多,View的接口类就会变得异常庞大。MVVM的方式完美的解决了MVP模式的这一痛点,它采用双向绑定的机制,实现了UI与数据的绑定操作。仅通过改变数据就可以实现对UI的更新操作。DataBinding(https://mp.csdn.net原创 2020-05-15 15:07:53 · 195 阅读 · 0 评论 -
Android中使用mvvm(二)
学习自https://www.jianshu.com/p/ef5f8d7d2caa只设置一次数据,再当数据发生变化时,让视图直接自动变化方法一、实现BaseObservable接口用我们操作的VIewModel类型去继承BaseObservable类将User类继承BaseObservable类后,其实不需要再重写什么方法,只需要1.给之前的get方法添加 "@Bindable"注解。2.给之前的set方法的最后边添加"notifyPropertyChanged(BR.对应的控件id)"原创 2020-05-14 21:24:57 · 287 阅读 · 0 评论 -
Android中使用mvvm
使用mvvm1、让android项目启用dataBinding使用mvvm,必然会用到android为我们提供的dataBinding支持包需要在我们正在编写的module中的build.gradle中添加(添加到android {} 内部) dataBinding { enabled = true }构建一下,就可以使用2、修改布局文件使用databinding框架,需要布局文件 按照 「固定的写法」 来编写。<data>原创 2020-05-14 20:38:43 · 697 阅读 · 0 评论 -
Android 使用AIDL在进程间通信
这是一种比startService更复杂的启动方式,同时使用这种方式启动的service也能完成更多的事情,比如其他组件可向其发送请求,接受来自它的响应,甚至通过它来进行IPC(Inter-Process Communication)等等。我们通常将绑定它的组件称为客户端,而称它为服务端。如果要创建一个支持绑定的service,我们必须要重写它的onBind()方法。这个方法会返回一个IBinde...原创 2020-04-27 21:28:39 · 114 阅读 · 0 评论 -
Android MVVM框架熟悉
MVVM全名是Model-View-ViewModel,MVVM可以看作MVP的升级版。降低View和控制模块的耦合,减轻了视图的压力。与MVP不同的地方是,ViewModel会跟View进行绑定。这里会用到Android的 Data Binding。MVP与MVVM区别在于ViewModel与View绑定后,ViewModel与View其中一方的数据更新都能立即通知到对方;Presenter需...原创 2020-04-26 15:14:53 · 176 阅读 · 0 评论 -
Android MVP框架熟悉
MVP全名是Model-View-Presenter,MVP 是从经典的模式MVC演变而来的。将Model与View彻底分离。解决MVC中Activity职责过多,代码臃肿的问题。通常View与Presenter是一对一的,但复杂的View可以绑定多个Presenter来处理逻辑。与MVC不同的是,一般Activty会当作View层来处理。最主要的区别就是MVP中View与Model并不直接交互,...原创 2020-04-26 14:30:37 · 103 阅读 · 0 评论 -
Android MVC框架
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种框架模式。将业务逻辑、数据、界面分离的一种代码组织方式,修改界面时无需去修改业务逻辑。Model:模型层,负责处理数据的加载或存储。View:视图层,负责界面数据的展示,与用户进行交互。Controller:控制器层,负责逻辑业务的处理。1.Vie...原创 2020-04-26 11:52:52 · 305 阅读 · 0 评论 -
框架、设计模式、架构之间的区别
框架和设计模式的区别框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获...原创 2020-04-26 11:24:51 · 652 阅读 · 0 评论 -
Android LiveData相关的学习
LiveData 是一个可以被观察的数据持有类,它可以感知 Activity、Fragment或Service 等组件的生命周期。它可以做到在组件处于激活状态的时候才会回调相应的方法,从而刷新相应的 UI。不用担心发生内存泄漏。当 config 导致 activity 重新创建的时候,不需要手动取处理数据的储存和恢复。它已经帮我们封装好了。当 Actiivty 不是处于激活状态的时候,如果你想 l...原创 2020-04-26 10:29:21 · 145 阅读 · 0 评论 -
Android lifecycle相关学习(用法2)
1.引用Lifycycle使用之前需要引入相关的依赖包,它包含在 support library 26.1.0 及之后的依赖包中,如果我们的项目基于这些依赖包,那么不需要额外的引用。// ViewModel and LiveDataimplementation "android.arch.lifecycle:extensions:1.1.0"// alternatively, jus...原创 2020-04-24 16:17:53 · 305 阅读 · 0 评论 -
Android lifecycle相关学习(用法)
Lifecycle 使得其它组件可以获取类似activity和Fragment那样响应生命周期的能力。我们可以直接在fragment和activity的相关生命周期函数中进行操作,但是这样的代码不太好维护,耦合性太高。 lifecycle-aware组件利用观察者模式,提供了构建生命周期感知型的组件的 类和相关接口,使得其它对“生命周期”感兴趣的组件能自己处理,而不必直接在fragment和act...原创 2020-04-24 15:06:15 · 124 阅读 · 0 评论 -
Android LayoutInflater学习
LayoutInflater技术广泛应用于需要动态添加View的时候。获得LayoutInflater的实例之后就可以调用它的inflate()方法来加载布局了,如下所示:layoutInflater.inflate(resourceId, root);inflate()方法一般接收两个参数,第一个参数就是要加载的布局id,第二个参数是指给该布局的外部再嵌套一层父布局,如果不需要就直接传...原创 2020-04-23 18:09:20 · 95 阅读 · 0 评论 -
Android LayoutInflater相关学习
根布局的概念:根布局就是xml文件中,ViewGroup中最外面的一层布局。加上根布局的布局属性,合起来我们统称为布局属性集合。在使用LayoutInflater中,如果root不为Null,那么LayoutInflater就会将新视图的根视图属性集合转换成适配root根布局的布局属性集合。LayoutInflater是根据布局资源文件来生成视图层级(包括子视图)的系统服务,获取实例的方式有两...原创 2020-04-23 16:43:23 · 159 阅读 · 0 评论 -
Android fragmentactivity描述
1、fragmentactivity 继承自activity,用来解决android3.0 之前没有fragment的api,所以在使用的时候需要导入support包,同时继承fragmentActivity,这样在activity中就能嵌入fragment来实现你想要的布局效果。2、当然3.0之后你就可以直接继承自Activity,并且在其中嵌入使用fragment了。3、获得Manag...原创 2020-04-23 15:55:28 · 88 阅读 · 0 评论 -
Android Context相关内容学习
概述Android程序和Java程序一个不同的地方在于Android程序不能仅仅通过一个main方法就启动起来,他还需要特定的环境,就是Context,称之为上下文环境,在这个环境下,有Activity、Service、BroadcastReceiver等系统组件,而这些组件并不是像一个普通的Java对象new一下就能创建实例的了,而是要有它们各自的Context。Context是维持Andr...原创 2020-04-23 15:52:43 · 69 阅读 · 0 评论 -
Android 学习关于intent 意图
1.实现Activity跳转的方法:1.Intent intent = new Intent(MainActivity.this,NextActivity.class);startActivity(intent);2.Intent intent = new Intent();intent.setClass(MainActivity.this, NextActivity...原创 2020-04-23 14:48:17 · 249 阅读 · 0 评论 -
Android Activity具体的学习
1.Android中的四大组件,只要你定义了,无论你用没用,都要在AndroidManifest.xml对 这个组件进行声明,不然运行时程序会直接退出,报ClassNotFindException...2. 启动一个Activity的方式,分为显示启动和隐式启动。1. 显式启动:通过包名来启动,写法如下:①最常见的:startActivity(new Intent(当前Act.thi...原创 2020-04-21 14:30:59 · 141 阅读 · 1 评论 -
Android Handler消息传递机制
多个线程并发的操作UI组件,可能会导致线程安全问题的出现,所以Android规定只允许在UI线程中修改Activity中的UI组件,当App第一次启动时,Android会同时启动一条UI线程(主线程),负责处理和UI相关的事件,比如触发事件和修改UI组件。引入Handler类让新启动的线程周期性的修改UI组件的属性值,做界面刷新都通过Handler来通知UI组件更新。UI线程:就是我们的主线程...原创 2020-04-16 15:34:33 · 111 阅读 · 0 评论 -
Android 基于监听的事件处理机制和具体实现
事件监听机制中由事件源,事件,事件监听器三类对象组成 处理流程如下:Step 1:为某个事件源(组件)设置一个监听器,用于监听用户操作Step 2:用户的操作,触发了事件源的监听器Step 3:生成了对应的事件对象Step 4:将这个事件源对象作为参数传给事件监听器step 5:事件监听器对事件对象进行判断,执行对应的事件处理器(对应事件的处理方法)归纳:事件监听机制是一...原创 2020-04-16 14:11:18 · 565 阅读 · 0 评论 -
Android 了解四大组件之一的内容提供者(Content Provider)
(1)android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。(2)只有需要在多个应用程序间共享数据才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。(3)ContentProvider实现数据共享。Co...原创 2020-04-15 18:18:35 · 385 阅读 · 0 评论 -
Android 了解四大组件之一的广播接受者(Broadcast Receive)
在Android中,广播是一种广泛运用的在应用程序之间传输信息的机制。而广播接收器是对发送出来的广播进行过滤接受并响应的一类组件。可以使用广播接收器来让应用对一个外部时间做出响应。例如,当电话呼入这个外部事件到来时,可以利用广播接收器进行处理。当下载一个程序成功完成时,仍然可以利用广播接收器进行处理。广播接收器NotificationManager来通知用户这些事情发生了。广播接收器既可以在A...原创 2020-04-15 18:09:17 · 468 阅读 · 1 评论 -
Android 了解四大组件之一的Service
service(服务)是安卓中的四大组件之一,它通常用作在后台处理耗时的逻辑,与Activity一样,它存在自己的生命周期,也需要在AndroidManifest.xml配置相关信息。服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程...原创 2020-04-15 17:13:21 · 248 阅读 · 0 评论 -
Android 了解四大组件之一的activity
Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。在Android App 中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。一个Activity通常就是一个单独...原创 2020-04-15 16:40:37 · 220 阅读 · 0 评论