周一 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生命内)称作:核心线程
二.知识储备
-
写一段最基础的网络请求的函数 Uri(myUrl).getConnection().getInsputStream()
-
okhttp的拦截器是怎么玩的?我后续要用它来实现一个具备自定网络请求的sdk
周六 4月10日
-
回顾了一遍JetPack整套组件 Activity和Fragment能实现被小E自定义实现的Observer观察生命周期的原理, 或者说为什么它俩可以称为LifecycleOwner。
-
数据库组件 Room数据库组件也是我这次关注的重点,因为我的sdk里会有数据持久化的需要。
周日 4月11日
- AS设置背景颜色 因为AS4.0设置路径的变化,我不得不每次重装AS都要查一遍已经不匹配的3.0的设置方式,所以今天总结一下: 设置 -> Editor -> Color Scheme -> General: 在右侧设置栏: Text -> Default text,在BackGround中设置颜色,护眼色的RGB大致是:200,230,200
2.今天要把sdk的框架搭出来。