需求
随着版本迭代越来越多,我们需要每次手动修改 ChangeLog,多人维护项目则容易忘记填写,并且组件化后每个模块多人维护,容易忘记填写.Module 里填写了 ChangeLog 但是 App 壳项目也要填写相同内容,也是比较麻烦的事.所以需要引入自动化来降低我们手动维护的成本.
你知道 Android 里有个叫blink的 ViewGroup 吗?惊讶吗?我第一次知道它时和你是同样的表现.
当我正在阅读LayoutInflater的源码,我对 xml 如何转换成 object 特别感兴趣,所以我没有从头开始阅读这个类,而是直接阅读inflate(layoutRes,parent方法.
经过一段时间的阅读,我在View createViewFromTag(View parent, String name, Context context, AttributeSet attrs, boolean ignoreThemeAttr)方法前停了下来,这个方法签名没有特别之处,但是以下的情况很奇怪,并且注释也是.
Let's party like it's 1995!
上一篇介绍怎样新建一个插件工程,本篇分析 EventBus 插件的实现.
此插件涉及较多的 Java GUI 代码,但是自己也不是很熟悉,只能做大概分析,重点在于分析扫描引用点.
我们项目对于 EventBus 有特殊的封装,就需要插件可以扫描出XXX.send(new NotifyEvent())(XXX 类也可能会有子类),可以找出这个 Event 所有的接收点,并且对于继承了 Sender 的类页都应该支持.
1 | public static void notify(){ |
Intellij 有很多优秀的开源插件,让我们更加高效的编程.EventBus 虽然可以很好的解耦,但是对于使用者来说不那么方便找到发射点和接收点.EventBus Plugin 帮我们愉快的解决了这个痛点.但是由于我们项目自己封装 EventBus,所以其插件无法生效,只能通过站在巨人的肩膀上,修改轮子让他重新跑起来.
开发插件可以使用收费旗舰版也可是使用免费社区版本.


本文中的灰名单指的是 Aandroid 规定的深灰名单
我们应用使用了 Pandora 1.3.2 版本 库,方便测试环境里查看界面元素、网络、数据库之类的数据.在使用 Aandroid 9.0 时发现会弹出下面这样的提示框.需要探寻下是什么原因引起的,在那里调用的,能不能去掉这个强制提示.
应用的 targetSdkVersion 是 27,compileSdkVersion 是 28
Pandora 2.0 版本目前已经规避了这个问题,都使用了浅灰名单里的方法或字段.
项目中需要核验身份信息,所以模拟支付宝的身份证 OCR 界面,做一个类似的功能.但是又有不同的地方,我们需要拍下照片而不是不断的扫描获取图像.
由于项目最低支持 4.0 系统为了方便起见使用 Camera 而不是 Camera2 接口,因为 Camera2 是 5.0 以后加入的 api.
使用 DownloadManger 进行应用内更新然后当下载成功时调起安装界面,感觉挺简单调用系统 api 就可以完成,但是里面适配的坑真的是很多.