2019年终工作盘点

2019年终工作盘点

红红火火过年了,盘点一下这一年来工作中学到的和容易遗忘的重要知识点。

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

就这样,想到的就这些,接下来看今年还会有什么有意思的吧。

作者

dogballs

发布于

2020-01-13

更新于

2022-08-09

许可协议

评论