ArgoCD 简明教程
OSC编辑部观察系列直播第二期《神秘的大厂开源办公室》下周一19点准时上线>>> 1 Argo CD 简介 Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署(CD)工具,它的配置和使用非常简单,并且自带一个简单易用的 Dashboard 页面,并且支持多种配置管理/模板工具(例如 Kustomize、Helm、Ksonnet、Jsonnet、plain-YAML)。 Argo CD 被实现为一个 Kubernetes 控制器,它持续监控正在运行的
Elasticsearch 多种跨机房灾备方案对比与实战解读
OSC编辑部观察系列直播第二期《神秘的大厂开源办公室》下周一19点准时上线>>> 1 引言 Elasticsearch 集群的高可用,保证服务的连续性是企业最关注的需求。通常当企业达到一定规模时,不管是在云上还是线下都会有多个机房做异地灾备,确保在某个机房不可用时,还能持续对外提供业务。本文将会介绍几种 Elasticsearch 常见的灾备方案,同时提供了 Demo 案例方便大家动手体验。 2 方案概要 方案 定期快照 跨机房部署集群 应用双写 借助消息队列实现双写 CCR 跨集群复制 极限
Android性能优化一绘制原理分析
Android应用启动慢,使用时经常卡顿,是非常影响用户体验的,应该尽量避免出现。1.卡顿的分类按照场景分可以分为:UI绘制绘制刷新应用启动安装启动冷启动热启动页面跳转页面间切换前后台切换事件响应按键系统事件滑动2.卡顿的原因这4种卡顿场景的根本原因可以分成两大类:界面绘制:主要原因是绘制的层级深、页面复杂、刷新不合理,由于这些原因导致卡顿的场景更多出现在UI和启动后的初始界面以及跳转到页面的绘制上。数据处理:导致这种卡顿场景的原因是数据处
Android-插件化三插桩实现广播的加载
本篇是在实现Activity的基础上做的,插件apk的加载这块没有变化,所以本篇之介绍关于Broadcast加载的内容1.宿主apppublic class ProxyBroadCast extends BroadcastReceiver { private String mClassName; private MSInterfaceBroadcast msInterfaceBroadcast; public ProxyBroadCast(String className,C
Android-Rxjava 常用操作符
Rxjava的优势提高工作效率能优雅的解决复杂的业务场景1.Rxjava原理RxJava 的原理就是创建一个 Observable 对象来干活,然后使用各种操作符建立起来的链式操作,就如同流水线一样,把你想要处理的数据一步一步地加工成你想要的成品,然后发射给 Subscriber 处理。2.使用Rxjava需要添加的依赖 implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'io.reactivex.
Android-插件化二插桩实现Service的加载
Android-插件化一插桩实现Activity的加载本篇是在实现Activity的基础上做的,插件apk的加载这块没有变化,所以本篇之介绍关于Service加载的内容1.宿主apk内定义插桩Servicepublic class ProxyService extends Service { public static final String KEY_SERVICE_NAME="serviceName"; String serviceName; MSInterfaceSe
Android 系统源码以及结构
1.系统源码目录结构art 全新的ART运行环境bionic:Goolgle开发系统C库,以BSD许可形式开源(c++)bootable系统引导相关代码build 存系统编译规则以及generic等基础开发包配置cts android兼容性测试套件标准dalvik Dalvik虚拟机developor 开发者目录development 与应用程序开发相关device 设备相关配置docs 参考文档目录external 开源模组相关sqite:轻量级关系型数据库SQLite(c+
Android-Rxjava在项目中的应用
Android-Rxjava 常用操作符1.应用场景 延时执行操作 默认是子线程 可以通过observeOn 切换的是观察者的执行线程Observable.just(1).delay(2000,TimeUnit.MILLISECONDS) // .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<Object>() { @Override public void a
Android ASM 字节码插桩 实战
字节码插桩:就是由class到dex之前修改class文件,达到增强现有类的功能。1.Android工程的构建过程1.Android Resources–>通过aapt–>R.java2.aidl Files–>通过aidl–>java interface3.(R.java、Android Resouce code、java interface)–>java compile–>.class Files4.(.class Files、3rd Par
Android Jetpack-ViewBinding
Android标准化项目架构:MVVM+Jectpack助力研发,本篇将对Jectpack 中的ViewBinding进行简要分析1.ViewBinding是什么?ViewBinding可以理解为轻量级的DataBinding,使用ViewBinding之后,不再需要使用findViewById等,可以大幅度提升开发效率。2.ViewBinding是通过APT注解处理器实现的吗?ViewBinding不是通过注解处理器实现的,是一个即时的小组件,只要在xml布局声明控件之后,马上就能引用到,不需要
Android Jetpack-DataBinding
Android标准化项目架构:MVVM+Jectpack助力研发,本篇将对Jectpack 中的DataBinding进行简要分析1.什么是DataBinding?DataBinding是Google在2015年推出的组件库。Databinding支持双向绑定,可以大大减少绑定App逻辑于Layout的胶水代码。双向绑定,指的是将Model数据与界面绑定起来,当数据发生变化会直接体现在界面上,反过来界面发生变化也会同步到数据结构,使用DataBinding可以轻松实现MVVM模式。2.开启DataB
Android-并发基础二
Android-并发基础一1.线程启动的方式启动线程的方式只有两种:继承Thread,实例化,调用start方法实现Runnable接口,并交给Thread去执行2.线程状态java中线程有2种状态初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java 线程中将**就绪(ready)和运行中(running)**两种状态笼统的称为“运行”。CPU未给分配时间片的状态称为就绪状态拿到CPU的时间片称为运行中阻塞(BLOCKED
Android-NDK 接入Fmod库,变声操作
Android-NDK 接入Fmod库,变声操作fmod是音效引擎库,游戏引擎cocos2d、unity3d 等都是默认集成了 fmod 来做音效。fmod官网1.下载Fmod资源可以在官网下载,也可以直接访问百度云盘下载:链接:https://pan.baidu.com/s/1Ypqlgk8WWacstURNMw2ETw提取码:pkom2.接入Fmod在main路径下新建jniLibs文件夹,增加需要的架构库,根据项目来选择。并讲libfmod.so、libfmodL.so这两个so库
Android adb 常用命令总结
1.获取设备idadb shell settings get secure android_id2.获取设备名称adb shell getprop ro.product.model 13.得到电池的使用信息adb shell dumpsys batteryCurrent Battery Service state:AC powered: falseUSB powered: trueWireless powered: falseMax charging current: 500000
Android-并发基础三
文章目录1.线程池1.1为什么需要使用线程池?1.2线程池相关的类分析:1.3线程池的构造方法:1.4线程池的工作机制1.5线程池任务的提交1.6线程池的关闭1.7合理位置线程池2.AQS3.CLH队列锁4.ReentraintLock5.可见性6.原子性7.Volatile关键字8.synchronized实现原理1.线程池1.1为什么需要使用线程池?降低资源消耗:通过服用已经存在的线程,降低创建线程和销毁线程对资源的消耗。提高相应速度:任务来了,不需要等待线程的创建,直接使用线程执行任务
android-UI性能分析工具systrace
文章目录1.systrace介绍2.systrace使用3.systrace 添加flag3.1收集应用启动的systrace数据3.2在Fragment的onViewCreate方法的前后添加flag,可以方便分析fragment的view加载耗时。3.3如果RecyclerView的滑动卡顿,在onBindViewHolder方便前后添加编辑,可以方便分析item的绘制耗时。4.分析systrace报告5.UI绘制分析1.systrace介绍systrace是一款UI性能数据采样和分析工具,它可
Android-布局优化
文章目录1.减少层级1.1页面层级查看1.2页面层级优化1.2.1合理使用RelativeLayout和LinearLayout1.2.2合理使用Merge2.提高显示速度ViewStub的使用2.1ViewStub介绍2.2ViewStub的加载方式:2.3ViewStub应用场景2.4ViewStub使用注意事项3.布局复用include4.避免过度绘制4.1过度绘制介绍4.2过去绘制的原因4.3过度绘制的检测4.4过度绘制的优化4.4.1布局文件过度绘制优化:较少页面层级,减少不必要的背景设置4.4.
今日推荐
周排行