日常一周:4月5日 -> 4月11日

229 阅读3分钟

周一 4月5日

1. gradle构建的知识

(1)基础知识

groovy语法:

  • 定义变量和函数:def
  • 遍历链表:list.each{it.……} gradlew的含义:

gradle版本、gradle的Android插件版本、buildVersion给自含义:

(2)gradle构建的三个生命周期:

  • 初始化
  • 配置
  • 执行 具体体现在函数://可以写在setting.gradle脚本中实现
project.add……Listener(new AdapterListener{
    1.初始化方法(){};
    2.配置方法(){};
    3.执行方法(){};
})

(3)二进制插件 新建module:buildSrc,继承Plugin{ apply(project ……)}

周二 4月6日

1. 在自定义插件中

MyPlugin : Plugin{

apply(p : Project){
    
    //使自定义闭包在开发者工程中生效
    project.getExtensions().create("extensionName",MyExtension)

} } 思考这句的实现方式?

周三 4月7日

1.今天又在kotlin扩展函数的使用上,被教做人了。

有两点:

(1)在kotlin里,函数可以像面向对象的class文件一样独立存在,只需要调用者在自己的import里写清楚函数的包名路径,就完全不用像java一样冗余的靠依附于一个class文件被调用者使用,这点让我联想到lambda表达式:至少在调用层面看起来,完全像是可以抛开声明一个匿名函数神马的,才能使用回调函数。

(2)扩展函数可以提供给开发者“扩展Android原生方法”的能力, 如:

fun TextView.setXXX(){

//实现

}

(3)Kotlin库提供的_Collections.kt中的api函数阅读一下,今天用到了:

  • XXXList.getOrNull()

2.Kotlin协程是应用层面的,编译器实现的。

除此之外,其他基本没看懂。。。

还要再接再厉,花更多时间了。


周五 4月9日

一.常见的框架都是怎么玩的

1. 一个队列Quene:

或者用一个功能更强大的队列LinkedBlockedQuene,用来接收任务,"任务"可以抽象成这样一个东西:

  • 1.一个对象实体;
  • 2.有自己的执行逻辑。 ok,很明显,可以用Runnable实现

2. 一个线程池

用来从队列里面轮询式的获取任务,并让任务执行。 上述逻辑可以单独开一个线程去执行,可以把这个永不销毁(app生命内)称作:核心线程

二.知识储备

  1. 写一段最基础的网络请求的函数 Uri(myUrl).getConnection().getInsputStream()

  2. okhttp的拦截器是怎么玩的?我后续要用它来实现一个具备自定网络请求的sdk

周六 4月10日

  1. 回顾了一遍JetPack整套组件 Activity和Fragment能实现被小E自定义实现的Observer观察生命周期的原理, 或者说为什么它俩可以称为LifecycleOwner。

  2. 数据库组件 Room数据库组件也是我这次关注的重点,因为我的sdk里会有数据持久化的需要。

周日 4月11日

  1. AS设置背景颜色 因为AS4.0设置路径的变化,我不得不每次重装AS都要查一遍已经不匹配的3.0的设置方式,所以今天总结一下: 设置 -> Editor -> Color Scheme -> General: 在右侧设置栏: Text -> Default text,在BackGround中设置颜色,护眼色的RGB大致是:200,230,200

2.今天要把sdk的框架搭出来。