Android 开发面试题集合整理(内含答案)(3)

参考答案:

DataBinding的使用,请戳这里,本文主要是介绍DataBinding原理

1. DataBinding作用,实现一个MVVM

2. DataBinding使用的主要技术点,Java APT,观察者,注解等

3. DataBinding关键类

ActivityMainBindingImpl 具体实现了绑定

ViewDataBinding 持有activity或者fragment和View的引用,主要作用一次遍历View,实例化所有子View,并存储在数组中,这里解决了findviewbyid性能问题,同时为我们省去了findviewbyid的操作

BR 类似Android R文件

DataBinderMapperImpl 提供了布局文件layoutid到ViewDataBinding类对象的映射,主要用于加载layout返回对应的ViewDataBinding对象

4. DataBinding如何实现双向绑定的

如图:

DataBinding在编译时会生成一个ViewDataBinding的子类xxBinding,例如ActivityMainBinding,ActivityMainBinding默认持有了View和Model和Activity/Fragment,在ActivityMainBinding里面有个关键方法,excuteBinding(),在这里为View设置值,同时设置了BindingAdapter和InverseBindingLinstener,如上图所示。BindingAdapter主要是提供了View的set get方法和状态Linstener。

想参考学习更多Android面试题可直接去我 GitHub地址:https://github.com/733gh/Android-T3 查阅。

5. 消息推送的方式


  • 方案1、使用极光和友盟推送。

  • 方案2、使用XMPP协议(Openfire + Spark + Smack)

  • 简介: 基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。

  • 优点: 协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值