生活中的Design.

生活中的Design.

it's better to burn out than to fade away

LiveData
简介 LiveData是androidx.lifecycle-livedata包下的一个抽象类,实现了一种关联了生命周期的简单观察者模式,主要的功能就是用于视图层与数据间的单向一对多通知,一个LiveData会持有一个可观察的Data对象,一开始是处于NOT_SET状态,当用户通过setValue方法更新后,LiveData会遍历所有的observer(处于Active状态的),通知他们Data的更新.LiveData的行为会在Lifecycle范围内,避免很多Activity Leak和空指针 本文代码样例都是kotlin,LiveData的源码是java LiveData的使用...
AndroidDevMetrics
AndroidDevMetrics 项目地址 https://github.com/apm29/AndroidDevMetrics Usage 1234567891011 public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); //Use it only in debug builds if (BuildConfig.DEBUG) { AndroidD...
CustomPaint
CustomPaintThe interface used by [CustomPaint] (in the widgets library) and[RenderCustomPaint] (in the rendering library).To implement a custom painter, either subclass or implement this interfaceto define your custom paint delegate. [CustomPaint] subclasses mustimplement the [paint] and [shouldR...
Dart 语法
Dart 学习数据类型 Dart中所有东西都是对象,包括数字、函数等 它们都继承自Object,并且默认值都是null(包括数字)因此数字、字符串都可以调用各种方法 Numbers Strings Booleans List(也就是数组) Maps 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647void main(){ //Dart 语言本质上是动态类型语言,类型是可选的 //可以使用 var 声明变量,也可以使用类型来声明变量 //一个变量...
DataBinding in kotlin
DataBinding in kotlinDataBinding 引入 Gradle引入1234567891011121314apply plugin: 'kotlin-kapt'//需要使用kapt作为注解 处理器kapt { generateStubs = true} android{ .... dataBinding { enabled = true } } dependencies{ ///... kapt "com.andr...
Gradle与Groovy
Gradle与Groovy Gradle是用来构建的一个框架 Gradle的编译周期 每个项目的编译至少需要一个Project,一个Build.Gradle就代表一个Project里面包含多个Task,Task中包含很多Action,Action是一个代码块,里面是需要执行的代码 在编译过程中, Gradle 会根据 build 相关文件,聚合所有的project和task,执行task 中的 action。因为 build.gradle文件中的task非常多,先执行哪个后执行那个需要一种逻辑来保证。这种逻辑就是依赖逻辑,几乎所有的Task 都需要依赖其他 task 来执行,没有被...
Jetpack
Jetpack1. Components Dependencies AppCompat 依赖于原先的support v4包,包含了ActionBar,AppCompatActivity,cardview,gridlayout,recyclerview等支持 2. 迁移到AndroidX 需要AndroidStudio3.2+ 在gradle.properties中加入12android.useAndroidX=trueandroid.enableJetifier=true sync 下Gradle后需要把原有项目中的support库中的类重新import,谷歌的develope...
PDFViewer on Android
Android中显示PDFiOS的WebView能从线上url直接显示pdf,而Android的WebView不能直接显示,Android的WebView要显示pdf需要拼接url到google的一个url显示,国内需要翻墙…所以这条路肯定走不通了 12urlWebView.loadUrl("http://docs.google.com/gview?embedded=true&url=" + "YOUR_DOC_URL_HERE"); github上有一个控件形式的PDF显示器PDFViewhtt...
Navigation初探
Navigation初探Usage Gradle引入 写的时候版本还是1.0.0-alpha1 1implementation "android.arch.navigation:navigation-fragment:$versions.navigation" 1implementation "android.arch.navigation:navigation-ui:$versions.navigation" 修改Layout文件 新增一个Fragment,指定道航文件的定义app:navGraph="@navigati...
RxCache
RxCache123456789101112131415161718/** * 此为RxCache官方Demo */public interface CacheProviders { @LifeCache(duration = 2, timeUnit = TimeUnit.MINUTES) Observable<Reply<List<Repo>>> getRepos(Observable<List<Repo>> oRepos, DynamicKey userName, EvictDynamicKey evi...
avatar
Apm29
It's better to burn out than to fade away
FRIENDS
juejin