安卓to鸿蒙系列:ButterKnife(一)
本文是关于ButterKnife的移植的第一篇:
先介绍基础知识,理解apt是什么,最终输出一个乞丐版BufferKnife注入工具。
这是读懂BufferKnife源码的基础。
第二篇占坑:具体讲解BufferKnife的移植。
本文是关于ButterKnife的移植的第一篇:
先介绍基础知识,理解apt是什么,最终输出一个乞丐版BufferKnife注入工具。
这是读懂BufferKnife源码的基础。
第二篇占坑:具体讲解BufferKnife的移植。
本文基于https://gitee.com/openharmony-tpc/logger 分析Logger的源码,及移植到鸿蒙需要做的工作。
本文基于https://gitee.com/andych008/timber_ohos 分析Timber的源码,及移植到鸿蒙需要做的工作。
之前写过一篇 程序员怎么做“竞品分析”:抓包工具的使用。如果不实践,这些内容在网上都能查到,但是自己尝试往往会失败。刚好昨天帮朋友解决一个小问题,抓包一款应用:http://app.xiaomi.com/detail/1295834。
我们经常接入一些第三方服务,一般使用相应服务的前提都是通过app_id,app_key获取access_token,然后每个请求带着access_token来执行。
通常,我们的做法可能是先判断有没有access_token,并且在有效期内,然后执行请求。但是,请求一定能成功吗?很有可能还会提示access_token过期或无效(比如:客户端时间修改。或者“单点登录”导致本机token失效)。所以,我们有可能会在请求的返回结果中判断是否有token失效的错误,然后重新请求token,重新执行业务请求。
Android开发教程(2019最新版,使用JetPack)
横向对比Jetpack、RxJava、Glide框架中对组件生命周期Lifecycle感知原理
ViewModel(持有页面数据)
以注重生命周期的方式管理界面相关的数据。
1 ViewModelProviders.of(act)创建ViewModle原理: 通过添加一个 fragment 到 activity 中,这个 fragment 便能够接收到各个生命周期回调。
比ViewModel活得长一些,可以处理因为系统内存不足等引起的act被清理。
等价于自己处理
onSaveInstanceState()
LiveData(通知页面数据to视图)
感知数据的变化,通知视图
使用:
1
2
3 调用 liveData.observe(),让界面监听数据的改变
liveData.setValue()设置数据(必须主线程)
liveData.postValue()设置数据理解:观察者模式;可以感知生命周期(如:act destroy后就不通知了)。
实践:LiveData通常会配合ViewModel来使用,ViewModel负责触发数据的更新,更新会通知到LiveData,然后LiveData再通知活跃状态的观察者。
原理:依赖于Lifecycle,所以可以感知
LifecycleOwner
生命周期的变化。
App的启动流程简单来讲包括以下内容:fork进程、启动binder、loop循环、App和AMS双向通信的建立、生命周期回调、App和WMS双向通信的建立。
把这些串起来,是这篇博客的目标。
对于移动端开发,抓包应该是必备技能之一了。
比如,做一个新业务,接口设计可以参考一下竞品。这样可以少走弯路,还能在竞品的基础上做出优化。
抓http?真没必要写这篇博客。咱们今天聊一聊抓https。