2019年终工作盘点
红红火火过年了,盘点一下这一年来工作中学到的和容易遗忘的重要知识点。
- Google jetpack–>Room,LiveData,ViewModel,Paging,Navigation等。jetpack这个香啊,Android将来的开发趋势啊。
- Java泛型的操作,如何避免泛型的擦除,获取对象携带的泛型,使用泛型+Interface+Type实现灵活多态化接口。通过对接口的组合、实现,完成对旧接口的兼容。
- AIDL对方法重载的限制,传递数据的上限,是很容易被忽略的点。 尤其是上限,根据网络搜索结果来看,默认1M是上限。但实际在我这个项目平台上,700-800K就会触发限制。根据我对平台方的了解,他们不会去修改这个默认限制大小。所以个人人为这1M限制的不是单次而是带宽。 或者数据是700k,而同时为传递数据占用的其他内存超过了300k。没有深究,总之是有限制。因此传递前需要检查要传递数据的大小,太大需要分批传递。
- AIDL的延迟绑定,绑定成功后返回一个代理binder,待service准备好后,返回对应配置的binder,connection再向上通知绑定成功。
- 动态代理香啊。
- 使用fat-aar合并aar,并上传源码和文档到maven私服。上传文档时遇到个坑,上传方法都是百度上copy来的,文档乱码,百度不到原因。经过我一番瞎研究发现,options只设置了encoding,还需要设置charSet才可以。加上options.charSet = “UTF-8”就可以了。
- Scanner的实现,配置化。文件少量的时候,使用Java扫描较快,文件越多,使用C扫描的优势越明显。最耗时的在于根据文件名中英文数字排序,以及解析保存专辑图。但是专辑图有了使用glide的更好方案。
- glide自定义模块,看源码了解了一下ModelLoader,DataFetcher,Decoder等glide模块作用,可以自定义一个Decoder解析MP3的专辑图,这样应该可以减少Scanner很多扫描时间,岂不是很香。
- 使用javapoet实现APT。能做的事,比动态代理多很多。
- kotlin这个香啊,还有很多java没有的特性,用起来比Java爽啊。就是还有很多特性尚未掌握,内联,类型投影等等。还有协程,看起来用着简单,要熟练掌握还是有难度的,今年再接再厉吧。
就这样,想到的就这些,接下来看今年还会有什么有意思的吧。