简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
在Compose中,每个组件都是一个带有@Composable注解的函数,被称为Composable。Compose已经预置了很多基于MD设计规范的Composable组件。在布局方面,Compose提供了Column、Row、Box三种布局组件(感觉跟flutter差不多),类似于传统视图开发中的LinearLayout(Vertical)、LinearLayout(Horizontal)、Re
镜像构建完成后,需要将镜像推送到相关私有的镜像仓库,建议在构建时根据代码分支来写入相应的标签前缀,这样就可以根据标签前缀来选择对应环境执行自动部署了,比如开发环境、测试环境和生产环境的自动部署,这样只要控制好分支权限即可。这一步,需要使用“docker login”命令来登录私有仓库,使用“docker push”命令来推送镜像。而且如果节点实在不同的云服务商上也是不能访问的,例如:master节
Compose采取了声明式UI的开发范式。在这种范式中,UI的职责仅作为数据状态的反应。如果数据状态没有变化,则UI永远不会自行改变。如果把Composable的执行看作是一个函数运算,那么状态就是函数的参数,生成的布局就是函数的输出。
简介ButterKnife是注解中相对简单易懂的很不错的开源框架强大的View绑定和Click事件处理功能,简化代码,提升开发效率方便的处理Adapter里的ViewHolder绑定问题运行时不会影响APP效率,使用配置方便代码清晰,可读性强使用步骤在Setting->Plugins中输入butterknife添加插件“Android ButterKnife Aelezn...
当window接收到外界状态改变的通知时,就会回调其中的相应方法。比如,当用户点击某个控件时,就会回调Window.Callback中的dispatchTouchEvent方法。这个方法可以用来实现全埋点,通过activity.getWindow方法拿到这个activity对应的window对象,再通过window.getCallback方法就可以拿到当前对应的Callback对象,然后我们在代理
ProGuard简介ProGuard一共包括以下4个功能,其中每个功能都是可选的,我们可以通过配置脚本来决定执行其中的哪几个功能,ProGuard的执行流程如下图。压缩(Shrink):侦测并移除代码中无用的类、字段、方法和属性。优化(Optimize):对字节码进行优化,移除无用的指令。混淆(Obfuscate):使用a、b、c、d这样简短而无意义的名称,对类、字段和方法进行重命名。...
当我们进行一个页面跳转的时候,有哪些方法呢?大家应该十分清楚,android原生提供了两种方案:隐式跳转和显式跳转。这两种方案想必大家都非常清楚,这里就不一一举例了。而在组件化开发过程中,我们绝大多数都无法使用显式跳转来跳转页面。原因很简单,因为我们要跳转的页面可能不是在同一个library中,因此无法import对应activity的路径。因此,我们只能使用隐式跳转来完成需求。我们先不考虑使用类