yawen

新APP的targetSdkVersion必须26

关于更新应用软件API等级的通知 尊敬的开发者您好: 为保障用户合法权益,促进移动应用软件预置与分发服务规范有序发展,应《移动应用软件高API等级预置与分发自律公约》及其他相关法律法规的要求,请各单位按如下要求更新自应用版本: 1、自2019年5月1日起,新上市Android 9.0及以上版本智能手机所预置应用应基于Android 8.0 (API等级26 )及以上开发。自2019年8月1日起,已上市Android 9.0及以上版本智能手机预置应用的更新应基于Android 8.0 (API等级26)及以上开发。 2、自2019年5月1日起,新上架应用应基于Android 8.0 (API等级26)及以上开发。自2019年8月1日起,现有应用的更新应基于Android 8.0 (API等级26)及以上开发。

ViewBinding 和 DataBinding 都有什么区别

ViewBinding 和 DataBinding 都有什么区别。 ViewBinding: 仅仅支持绑定 View 不需要在布局文件中添加 layout 标签 需要在模块级 build.gradle 文件中添加 viewBinding = true 即可使用 效率高于 DataBinding,因为避免了与数据绑定相关的开销和性能问题 相比于 kotlin-android-extensions 插件避免了空异常 DataBinding: 包含了 ViewBinding 所有的功能 需要在模块级 build.gradle 文件内添加 dataBinding = true 并且需要在布局文件中添加 layout 标签才可以使用 支持 data 和 view 双向绑定 效率低于 ViewBinding,因为注释处理器会影响数据绑定的构建时间。 ViewBinding 可以实现的, DataBinding 都可以实现,但是 DataBinding 的性能低于 ViewBinding,DataBinding 和 ViewBinding 会为每个 XML 文件生成绑定类。   –   Activity, Fragment 使用viewbinding注意: Fragment中,onDestroyView时要将_binding置空,对于binding的操作时机靠自己保证,时序自己保证。  

databinding使用可能导致UI闪烁

  databinding使用的时候,直接在xml里面让数据变化驱动UI,如果UI是图片imageview的话,会导致界面闪烁。 避免方法: 在逻辑代码中根据data变化改变UI即可。

流式布局

1.Google官方出品 https://blog.csdn.net/weixin_39397471/article/details/90257522 2.第三方的配合recycleview使用 https://github.com/xiangcman/FlowLayoutManager 3.第三方自定义viewgroup com.nex3z:flow-layout

Dart可空声明和非空断言-kotlin

https://youkmi.blog.csdn.net/article/details/108728322?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7EPayColumn-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7EPayColumn-1.pc_relevant_paycolumn_v3&utm_relevant_index=1   可空声明 类型?变量名称      与kotlin一样 非空断言 变量名称!          kotlin是2个!!   初始化非空变量 required 关键字 或者参数加默认值, late final关键字也一样

添加flutter到已有工程

https://docs.flutter.dev/development/add-to-app/android/project-setup#add-the-flutter-module-as-a-dependency option 1: 打包flutter工程为aar倒入已有工程(方便没有dart-sdk的开发) Option A – Depend on the Android Archive (AAR) This option packages your Flutter library as a generic local Maven repository composed of AARs and POMs artifacts. This option allows your team to build the host app without installing the Flutter SDK. You can then distribute the artifacts from a local …

添加flutter到已有工程 Read More »

网络连接不了

使用阿里的: maven { url ‘http://maven.aliyun.com/nexus/content/repositories/google’ } maven { url ‘http://maven.aliyun.com/nexus/content/repositories/jcenter’ } maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/’ } maven { url “https://jitpack.io” } mavenCentral() google()

Livedata基本原理和股票行情数据

UI作为lifecycleowner,datasource作为lifecycleobserver; 反之datasource发生变化则version++并且dispatch给active的UI;   UI和datasource可以是多对多; 基于上述原理,任意object实现lifecycleowner就能成为一个可观察生命周期对象; 任意object实现lifecycleobserver,并且实现以下功能:1.根据lifecycleowner生命周期变化处理是否发送数据。2.当lifecycleowner生命结束时解除观察绑定。 glide的生命周期管理lifecyclelistener,以及 eventbus的订阅管理注册都是类似原理和实现。 股票行情数据:Datasource变化后version自增长,但是没有history data概念,可以自定义value对象为(数组,链表,队列)来实现history data。 股票分时数据:每天交易时间为241分钟,value对象为数组[241]即可。 股票历史k线数据:链表或者arraylist都可以当value。