Jetpack组件化实战项目
第一章 Jetpack基础本章节所有代码地址:https://gitee.com/evancola/jetpack-study.git
1.1 Lifecycle
LifeCycle 是一个可以感知宿主生命周期变化的组件。常见的宿主包括 Activity/Fragment、Service 和 Application。LifeCycle 会持有宿主的生命周期状态的信息,当宿主生命周期发生变化时,会通知监听宿主的观察者。
Jetpack提供了两个接口:
LifecycleOwner 被观察者
LifecycleObserver 观察者
被监听的系统组件需要去实现 LifecycleOwner 接口,观察者需要实现 LifecycleObserver 接口
使用场景
监听activity生命周期
监听service生命周期
使用ProcessLifecycle监听应用生命周期
监听activity生命周期声明一个类实现LifecycleObserver,并重写相关生命周期方法,方法名可以随便定义,通过注解来绑定生命周期,这样这个方法就相当于生命周期的回调方法
12345678910 ...
Dart知识总结与技巧
Dart知识总结与技巧第一章 List第一节 List常用方法
增加:4个方法 add(), addAll(),insert(), insertAll()删除:6个方法 remove(), removeAt(), removeLast(), clear(), removeWhere(),removeRange(start,end)含头不含尾修改:5个方法 list[index],其他四个很少用,这里不介绍查询:20个方法 elementAt(), contains(), indexOf(), lastIndexOf(), where(), indexWhere(), lastIndexWhere(), where():根据指定条件,函数筛选每个元素,符合条件的元素组成一个新的 Iterable join():用指定字符连接数组中每个元素,返回 String generate,shuffle
1.1 forEach12345///forEach 作用: 遍历数组void forEach() { var list = [1, 3, 5]; ...
Flutter自定义view
Flutter自定义View第一章 入门案例我们来画一个饼状图
1234567891011121314151617181920212223242526272829303132///第一个自定义view,需事先两个方法/// paint方法,在这里实现绘制逻辑/// shouldRepaint() 是否需要重绘class WheelView extends CustomPainter { @override void paint(Canvas canvas, Size size) { double wheelSize = min(size.width, size.height) / 2; //取宽高的最小值 double count = 6; double radius = 2 * pi / count; //角度 Rect rect = Rect.fromCircle( center: Offset(wheelSize, wheelSize), radius: wheelSize); //每次画 1/6 个圆弧 ...
Android实战开发
Android实战开发1.1 Android模拟器识别使用三方库CacheEmulatorChecker
仓库地址:https://github.com/happylishang/CacheEmulatorChecker
添加依赖:
1implementation 'com.snail:antifake:1.4'
检测模拟器:
1EmulatorDetectUtil.isEmulator(context)
Flutter思考与心得
Flutter思考与心得第一章 Dart1.1 Dart中的const和final有什么区别?1.2 Dart中的var,Object,dynamic三者之间的区别?1.3 Dart中有无发射?Flutter是否支持dart反射?1.4 Dart支持扩展方法吗?1.5 请说明?. ??= ?? 三者之间的却别?第二章Flutter2.1 说一下StatelessWidget和StatefulWidget的生命周期?2.2 说一下Widget,Element,RenderObject这三者之间的理解?2.3 为什么会设计Element,而不是直接widget操作renderObject?
Flutter常用插件
Flutter常用插件第一章:官方插件1.1 url_launcher作用:打开第三方应用
仓库地址:https://pub.flutter-io.cn/packages/url_launcher
1.2 image_picker作用:从相册/相机中获取图片
仓库地址:https://pub.flutter-io.cn/packages/image_picker
1.3 shared_preferences作用:用于简单数据的持久化存储
仓库地址:https://pub.dev/packages/shared_preferences
第二章:三方插件1.1 flutter_swiper一款轮播图组件
pub地址:https://pub.flutter-io.cn/packages/flutter_swiper
Flutter实战开发
Flutter实战开发1.1 冷启动优化冷启动分为安卓和iOS两个平台,我们主要针对安卓平台的冷启动优化,优化方式主要是通过在启动主题进行设置
打开安卓项目下的清单文件会看到默认的启动主题
1android:theme="@style/LaunchTheme"
12345<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar"> <!-- Show a splash screen on the activity. Automatically removed when Flutter draws its first frame --> <item name="android:windowBackground">@drawable/launch_background&l ...
Gradle笔记
第一章 Gradle 必备基础1.1 Gradle常用命令检查依赖是否冲突
1gradle dependencies
检查清单文件是否有重复或者其他问题
1gradlew processDebugManifest --stacktrace
Android studio常见问题
第一章 Android Studio常用快捷键
ctrl + shift + (+-) 代码伸展收缩
第二章 Android Studio常用插件快速添加依赖
1地址:https://github.com/wuyr/GoogleLibraryVersionQuerier
第三章 常用配置3.1 基础配置1. AndroidStudio打开的类显示多行右击类-去掉 Show Tabs In single Rowhttp://blog.csdn.net/shayubuhuifei/article/details/78281220
2. code template模板个性化12345678910参考博客地址:https://blog.csdn.net/denglxsc/article/details/51188444step1: 点击 setting>>Editor>>File and code Templates step2: 选中includes标签step3: ...
Android知识总结
第一章:常用技巧1.1 常用adb命令查看当前Activity
1234568.1之前window 通过adb shell dumpsys activity | findstr “mFocus”Linux 通过adb shell dumpsys activity | grep “mFocus”8.1之后window 通过adb shell dumpsys activity | findstr “mResume”Linux 通过adb shell dumpsys activity | grep “mResume”
连接模拟器
12345adb connect 127.0.0.1:21503 //逍遥浏览器//网易木木浏览器adb connect 127.0.0.1:7555 (Windows上)adb connect 127.0.0.1:5555 (Mac上)
指定设备安装apk
1adb -s 设备id install xxx.apk
第二章 基础知识
在本章节,主要包括如下内容
shape,layer-list
2.1 shape基础属 ...