2020年3月工作整理

0303

Android kotlin DataBinding 之 unresolved reference: BR 坑

使用kotlin实现MVVM框架之使用Databinding的时候遇到unresolved reference: BR。由于目前kotlin开发的插件不支持跨module,所以databinding在使用apt技术BR文件时的引用没发确定目录,故造成unresolved reference:BR,那么需要kapt完成,配置如下

app下build.gradle

    apply plugin: 'kotlin-kapt'
    kapt {
        generateStubs = true
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        //版本要与gradle版本一致
        kapt  "com.android.databinding:compiler:3.5.0"
    }

0304

Error: Invoke-customs are only supported starting with Android O (–min-api 26)

    // 在build.gradle里面添加
    compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
    }

0305

韩国VS江苏

  • 韩国总面积 约10万平方公里 常住人口5164万人
  • 江苏总面积10.72万平方公里 常住人口8050.7万人
  • 意大利总面积30万平方公里人口6080万人

0306

MIUI深色模式

MIUI 11上,小米带来了全新的深色模式,还包括高级功能中的全局反色,可以将系统应用之外的第三方应用界面也调整到深色
2020年3月工作整理_第1张图片

0309

ViewModelProviders被弃用了,该怎么获取ViewModel

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IHlrloZP-1585703433667)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/31d5380f-6790-4441-9e01-00a30092f97b/Untitled.png)]

我可以在官网上找到API变更说明,
2020年3月工作整理_第2张图片

所以最后使用方式如下

fun  createViewModel(activity :FragmentActivity, cls:Class) : T {
        return ViewModelProvider(this)[cls]
}

0310

YYYY-MM-dd 和 yyyy-MM-dd的区别

  • y:year-of-era;正正经经的年
  • Y:week-based-year;只要本周跨年,那么这周就算入下一年;

例子:2019-12-31 在y下正常显示 在Y下显示的是2020-12-31

0312

NBA暂时停摆

kotlin 成员内部类使用外部类变量

在kotlin代码中,内部类变量使用外部类变量,在定义内部类时,使用关键字inner

    fun setAge(age: Int) {
        this.age = age
    }
    
    inner class A {
        fun getAge(): Int {
            return age
        }
    }

0316

ijkplayer编译

是bilibili开源的一款基于ffmpeg的播放器,引入ijkplayer到项目的方式有两种

  • 第一种 gradle引用
    # required
    allprojects {
        repositories {
            jcenter()
        }
    }
    
    dependencies {
        # required, enough for most devices.
        compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
        compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
    
        # Other ABIs: optional
        compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
        compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
        compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
        compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'
    
        # ExoPlayer as IMediaPlayer: optional, experimental
        compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'
    }

通过这种方式引入只能提供基本的编码格式以及功能,并且不支持https协议。

如果需要更多功能和编码格式支持,则需要通过编译源码实现

  • 第二种 编译源码

Ijkplayer源码编译

0317

You need the NDKr10e or later

在编译ijkplayer的时候遇到这个错误的,需要使用r10e以后的NDK版本,但是我使用的是r15c的版本,为什么还有这个错误提示?后来排查发现可能是我使用的是老的code,还没有适配到NDK15,我们可以修改ijkpayer-android/android/contrib/tools/do-detect-en.vh

11*|12*|13*|14* 改 
11*|12*|13*|14*|15*

保存就OK 了。(这里建议使用ndkr14d 版本,不然会报另一个错误“ERROR: Failed to create toolchain.”)

0319

ijkPlayer 利用系统的MediaController拖动进度条会往后退几秒

参考下面的解决办法

Android 修复ijkPlayer进行m3u8 hls流播放时seek进度条拖动不准确的问题_移动开发_Coding for Android-CSDN博客

0326

这个网址可以模拟很多网络请求

http://httpbin.org/

你可能感兴趣的:(月度工作总结,android)