dataBinding使用
需要在使用 dataBinding 的模块的 build.gradle 文件中添加 dataBinding 配置
在布局文件中 , 选中根布局的标签 , 按住Alt + 回车键 , 点击 Convert to data binding layout , 即可转化成 dataBinding的布局
dataBinding 也支持在布局文件中使用数组、List、Set 和 Map , 且在布局文件中都可以通过 list[index] 的形式来获取元素 , 因为xml 的特性 , 在声明List<String>之类的数据类型时 , 需要使用尖括号 的转义符
JetPack下的MVVM
JetPack下的MVVM . ViewModel + LiveData 组件结合 .
这样做的目的既能保证数据不会无缘无故丢失 , 还能自动关联宿主的生命周期 , 避免空指针的问题 .
Activity , Fragment UI 逻辑和用户交互控制就可以了 .
数据的绑定可以交给DataBinding .
Android 项目架构 传统MVVM
● 双向绑定 : 数据变更UI会自动刷新 , UI变化了数据也会自动同步到最新的值 .
● 数据驱动UI : 比如 User中的字段 , 数据变化了, 可以做到自动刷新UI .
● UI同步数据 : 比如 EditText、checkBox、toggleButton 具有状态的View , 当状态变化后 , 数据模型中与之关联的字段值也会自动同步最新状态 .
Android 项目架构 MVP架构
为了解决Activity任务过于繁重 , 数据层和视图层交织在一起的问题就此诞生了mvp架构模式 .
● 让宿主专注UI逻辑和用户交互的处理 . 把宿主中的业务逻辑分离出来 , 所有跟Android API无关的业务逻辑由Presenter 层来完成 . 但是缺点就是增加了代码量 .
● Activity 和 Fragment 视为View 层 , 负责处理UI和用户交互 .
● Presenter 为业务处理层 , 负责处理业务逻辑 , 发起请求数据 .
● Model 层中包含着具体的数据请求 , 数据源. 但是这一层在 retrofit , restful 的场景下可以被弱化 . 三层之间调用顺序为 view -> presenter -> model , 为了调用安全着想不可反向调用 ! 不可跨级调用 !
Python Flask构建微信小程序订餐系统 (十二)
Python Flask构建微信小程序订餐系统 (十二)
Android 项目架构 MVC
在维基百科里是这样定义的: 软件架构是一个系统的轮廓 . 软件架构描述的对象是直接构成系统的抽象组件.
面试的过程中会问到如何设计架构 ? 应用从哪几方面进行考虑 ? 架构的职责是什么 ? 你会发现这样的问题并不好回答 . 这里可以通过如下三点回答 :
● 为了解决特定的问题而提出 .
● 有特定的原则将系统整体进行角色划分 .
● 约定角色间的沟通机制 (有分层、有联系才能形成框架 ; 就像mvp、mvc、mvvm为解决特定问题而提出来的 ) .
其实我们日常开发中的Activity , Fragment和XML界面就相当于一个MVC的架构模式 , 但往往Activity中需要处理绑定UI , 用户交互 , 以及数据处理 .
Python Flask构建微信小程序订餐系统 (十一)
Python Flask构建微信小程序订餐系统 (十一)
Python Flask构建微信小程序订餐系统 (十)
Python Flask构建微信小程序订餐系统 (十)
Python Flask构建微信小程序订餐系统 (九)
Python Flask构建微信小程序订餐系统 (九)
Python Flask构建微信小程序订餐系统 (八)
Python Flask构建微信小程序订餐系统 (八)
Python Flask构建微信小程序订餐系统 (七)
Python Flask构建微信小程序订餐系统 (七)
Android JNI线程的同步 (十三)
Android JNI线程的同步 (十三)
Android JNI线程的创建 (十二)
Android JNI线程的创建 (十二)
Android JNI 异常处理 (十一)
Android JNI 异常处理 (十一)
Android JNI引用类型管理 (十)
Android JNI引用类型管理 (十)
Android Java代码与JNI交互 JNI访问Java构造方法(九).zip
Android Java代码与JNI交互 JNI访问Java构造方法(九).zip
Android Java代码与JNI交互 JNI子线程访问Java方法 (八)
Android Java代码与JNI交互 JNI子线程访问Java方法 (八)
Android Java代码与JNI交互 JNI访问Java类方法 (七)
Android Java代码与JNI交互 JNI访问Java类方法 (七)
Android Java代码与JNI交互 JNI方法Java类字段 (六)
Android Java代码与JNI交互 JNI方法Java类字段 (六)
Android Java代码与JNI交互 引用类型转换(五)
Android Java代码与JNI交互 引用类型转换(五)
Android Java代码与JNI交互字符串转换(四)
Android Java代码与JNI交互字符串转换(四)
Android Java代码与JNI交互 (三)
Android Java代码与JNI交互 (三)
Python Flask构建微信小程序订餐系统 (六)
Python Flask构建微信小程序订餐系统 (六)
Python Flask构建微信小程序订餐系统 微信小程序工程文件
1、微信小程序登录态保存
2、登录创建拦截器AuthInterceptor
3、实现退出登录的功能
4、 编辑和修改登录信息
5、修改登录密码
6、信息编辑和修改密码Tab切换
Python Flask构建微信小程序订餐系统 (四)
Python Flask构建微信小程序订餐系统 (四)
Python Flask构建微信小程序订餐系统 微信小程序工程文件
Python Flask构建微信小程序订餐系统 微信小程序工程文件
Python Flask构建微信小程序订餐系统 管理员登录和列表界面
Python Flask构建微信小程序订餐系统 管理员登录和列表界面
Flask构建微信小程序订餐系统 模版文件(templates)、静态资源文件(static)
Flask构建微信小程序订餐系统 模版文件(templates)、静态资源文件(static)
Python Flask构建微信小程序订餐系统 (二)
Python Flask构建微信小程序订餐系统 (二)
flutter + SpringBoot + MySql 实现高德地图定位获取位置信息插入数据库并计算出经纬度之间的距离
flutter + SpringBoot + MySql 实现高德地图定位获取位置信息插入数据库并计算出经纬度之间的距离
Flutter + SpringBoot 实现个人头像上传和资料编辑
Flutter + SpringBoot 实现个人头像上传和资料编辑
flutter dio 登录获取token实现存储到应用内存中......
flutter dio 登录获取token实现存储到应用内存中......
SpringBoot+MySql 实现简单注册
spring-boot-starter-web 大多数 Web 应用程序使用该spring-boot-starter-web 模块来快速启动和运行。
mysql-connector-java MySQL提供的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该依赖。
mybatis-spring-boot-starter 引入 MyBatis 场景启动器,包含其自动配置类及 MyBatis 3 相关依赖。
Flutter 实现了登录界面
Flutter 实现了登录界面
JNI 函数动态注册
JNIDynamicLoad
JNI 函数动态注册
JNIDynamicLoad
Kotlin 四则运算 (加、减、乘、除)
Kotlin 四则运算 (加、减、乘、除)
Kotlin 基础数据类型
Kotlin 基础数据类型
NDK CMake入门基础
NDK CMake入门基础