当前位置: 首页 > news >正文

【郭东白架构课 模块一:生存法则】11|法则五:架构师为什么要关注技术体系的外部适应性?

你好, 我是郭东白。

前四条法则分别讲了目标、资源、人性和技术周期,这些都与架构活动的外部环境有关。那么今天我们来讲讲在架构活动内部,也就是在架构师可控的范围内,应该遵守哪些法则。今天这节课,我们就先从技术体系的外部适应性讲起。

达尔文说过:“既不是最强壮的也不是最聪明的物种,而是最适应变化的物种最终生存了下来。”从这个角度来看,企业也是一个物种。一个企业在行业内与其他企业形成了竞争关系。那么最终在竞争中胜出的,不一定是体量最大的,也不一定是技术最先进的,而会是最适应竞争环境变化的企业。

计算机行业有很多这样的例子。比如大企业 Lucent、Kodak、Compaq 都在竞争中没落了,曾经技术非常先进的 SGI、Sun Microsystems、Digital Corp 到后来也都挂了。一个正面的例子是,微软在云计算领域原本慢了大半拍,但他转身非常彻底,后来很快就追上了,成了异军突起的赢家。

那么你作为架构师,能在企业的竞争中做些什么,同时也为自己创造增量价值呢?答案是:通过技术手段为企业注入更多的外部适应性。

这就是第五条生存原则要覆盖的内容:架构师要通过优化架构方案、干预架构活动,以保证最终交付的项目不仅能满足既定目标,还能适应不断变化的外部环境。这个过程有一个总的指导原则,那就是为最终产生的架构设计不断注入外部适应性。

架构师能注入外部适应性?

外部适应性是指一个企业对外部环境变化的适应能力,以及对新机会的捕捉能力。

我特别要强调“外部”这个词。它表示适应性不是面向企业内部的,而是企业在外部环境发生变化时、在与其他企业竞争时所具备的适应能力。这是一个攘外而非安内的能力。

怎么理解呢?像苏宁和塔吉特(Target)这样的线下卖场,打磨了很多年之后,他们的效率很高。但当用户的购买行为都转到线上后,他们适应新的竞争环境的能力就不够了。也就是说,他们在互联网时代的外部适应性不足。

在企业中,不同职能所处的视角不同。那么你作为架构师,需要从自己的视角为企业注入外部适应性。同时在这个过程中,提升自己独立创造价值的能力。

不同职能之间视角的差异性

在企业中,很多职能都可以为企业注入外部适应性,举几个例子:

  • 业务同学通过商业和投资手段,来迅速捕捉外部的商业机会,从而为客户创造价值,为企业获取竞争优势。比如大公司通过兼并小公司进入一个新兴市场。
  • 运营同学通过新场景迭代效率,来提升企业的市场竞争力和市场占有率。比如阿里的大促运营,就是通过一系列营销手段来提升获客效率和销售额的,从而扩大了市场渗透率。
  • 产品经理通过不断打磨产品来提升用户体验,从而达到提升企业竞争力和市场占有率的目标。比如抖音创作者和用户端的产品优化。
  • 技术同学通过打磨技术体系来支持产品和运营,从而达到提升企业外部竞争力的目标。比如各个互联网公司都在打磨个性化算法、运营后台、数字化运营体系。

架构师是技术职能的一种,所以也是通过打磨技术体系来为企业注入外部适应性的。当然,架构师这个职能有自己的特殊性。首先,架构师与研发经理不同。后者具有人员管理的职责,因而可以通过人才招聘、培养和组织架构的调整来创造价值。

然后,架构师也不同于研发人员。研发人员可以通过优化数据模型、算法迭代、代码重构和模块升级来为企业直接注入外部适应性。而架构师仅仅可以通过组织架构活动与优化架构方案设计,来为企业注入外部适应性。

可以看到,我特别区分了几种职能所处视角的差异。为什么这么做呢?我发现,很多架构师把帮助他人创造价值与自身创造价值这两件事混为一谈,这样做,你就很难提升自己独立创造价值的能力。

举个例子。在大公司某个程序员晋升时经常会套用这样一个逻辑:“我们的大促业绩同比增长了 50%,所以我应该晋升。”

仔细想想,这个增长到底是业务方在大促期间多拓展了一倍商家带来的?还是产品同学重新设计了大促的商品圈选和反向招商逻辑,导致平台商品增长了 30% 带来的?还是你通过技术创新,用知识图谱把商品之间的语义标签做得更多更准,导致交叉售卖的量增长带来的?

所以说,你负责大促的商品模块,不代表大促中所有商品售卖赚来的钱都是你挣来的。这个时候,你就需要展示自己从技术视角上创造的价值,这才是你独立创造的增量价值。如下图所示,展示了业务、产品和技术视角的差异性。

在这里插入图片描述
业务、产品和架构师所处的技术视角,分别代表研发活动的三个不同层次。

第一个层次,研发活动由业务驱动,直接在业务人员的指挥下响应外部机会。我们把这一组研发人员称为业务线研发。在一些公司里,这些人一般直接向业务部门汇报。比较常见的是增长的产品和技术人员同时汇报给增长业务部门,以迅速响应新的业务机会。

第二个层次,研发活动由产品规划驱动。产品把业务活动抽象为一组产品,沉淀出产品矩阵,并通过产品运营不断打磨用户心智。在这个过程中,相应的技术人员会不断提升自己对产品的理解,并通过技术手段放大产品提供给用户的增值。

比较常见的产品有营销产品、供应链产品、物流产品等。除了产品特性本身外,一些纯技术手段,比如营销的资金池优化、反作弊、供应链优化、物流调拨等等,也会为产品带来新的增值手段。

第三个层次,研发活动就是由架构师主导的架构活动。架构师和研发同学对业务、产品做了一系列的抽象,最终形成由技术驱动的技术产品。比如工作流引擎、风控引擎、策略引擎、算法的特性引擎和标签引擎,都属于这一类产品。

案例指引

我拿一个物流领域的场景来举例。如图所示:

在这里插入图片描述
假设你所在的企业有比较复杂的物流场景,那么业务团队经常会找新的物流供应商, 为平台提供物流的外包服务,或者是覆盖一个新场景,也或者是覆盖一个新路线。那么相应的业务线物流团队,就需要与供应商对接,迅速完成接入。

但是随着时间的推进,团队在物流上的经验变得更丰富了,物流线路也越来越多,单个供应商对接的方式只会越来越低效。这个时候,就需要有一个产品团队,把企业内部与物流相关的服务抽象成一组产品,让产品替代人力完成供应商的接入需求。

这时候,产品和技术同学可能抽象了一组物流的自动接入 API,定义了要交换的数据和相应的交换标准,甚至提供了沙箱环境,为第三方软件服务提供商提供便利。他们甚至可以介入,帮助物流供应商迅速接入。

随着产品和技术能力的进一步提升,技术同学可能会看到更多机会。比如对不同物流提供商的履约能力、履约时效、服务质量、用户满意度等做评分,形成一个供应商的信用系统。这个信用分可以用来控制履约成本,保障履约质量,以及提升供应商的合作意愿。

事实上,这个系统的很多设计都可以抽象出来,提供给物流之外的供应商使用。比如品控的供应商、仓储的供应商、安装维修的供应商等等,这就形成了一套供应商信用管控、供应商管理,以及根据供应商服务能力与成本做成的动态路由的体系。

之后,这个技术体系还可以在多个领域重复使用。那么自顶向下,一个公司的外部适应性就逐渐得到了提升。从最顶层对单个业务场景的直接响应,到下一层多个业务场景对单个产品的抽象,使得该产品和相关技术能够直接服务到多个业务场景。最后,多个产品被架构活动抽象成了一组底层技术产品。而这些技术产品,就可以在多个领域的产品中得到复用,使得多个产品领域和这些产品支持的多个业务领域,都能提升自己的外部适应性。

通过以上分析我们就比较清楚了,架构师需要在技术层面为整个企业的技术体系注入外部适应性,这才是你独立于其他职能所创造的长期价值,是你有底气的自尊的源泉。

那么架构师怎么做才能为企业的技术体系注入最大的外部适应性呢?想逼近这个问题的答案,就必须理解削弱一个技术体系外部适应性的因素都有哪些。

影响技术体系外部适应性的因素有哪些?

我们可以从三个角度来分析。

企业内部压力的影响

先从职能角度来分析。技术之外的同学,比如业务和产品同学,几乎不关注技术体系的外部适应性。一来他们不擅长,二来这也不是他们工作的优先级。遗憾的是,业务线的技术同学,以及与产品密切配合的技术同学,往往也很少关注技术体系的外部适应性。这里面的原因比较复杂,主要有三个。

第一,业务交付时间的压力。技术同学经常受到来自业务和产品同学交付时间的压力,这样一来,技术质量都很难保障,更不用说技术的外部适应性了。

第二,技术岗的供给压力。最近几年技术岗的供给比较缺乏,很多技术同学频繁跳槽,在一家企业的工作时间较短,因而他们在客观上就不太关注自己的技术口碑。

第三,考核的压力。不少企业把技术岗的考核内容、考核周期都与业务线牢牢绑定。而需要长期打磨的技术能力,既不能被关注和度量,也没有资源被孵化。结果就是短期效应非常明显,自然,技术同学就很少关注技术的长期适应性了。

除了团队内部的压力外,企业也面临着不少压力。首先,时间对于所有的职能而言都是稀缺资源,大多数互联网企业都采用了小步快跑的迭代方式,很少有企业是先把问题研究清楚才入场的。大家都是边打边学。不论是业务岗、产品岗,还是技术岗,都是摸着石头过河,这就不可避免地导致所有职能都被自己的认知局限所羁绊。

比如你经常听到技术同学说“产品同学不靠谱,一天到晚改需求”。产品呢,则每天抱怨业务同学从早到晚变方向,朝令夕改。

事实上,这种行为在越是高速增长、竞争激烈的行业越是常见。等你完全看清楚一个行业,新的商业机会早就不在了。

你可以观察下社区团购,在短短半年多的时间里,就有数百亿的投资注入到这个模式之中。等你花半年时间准备好大举进入的时候,不但战局大变,就连监管环境也发生变化了。这个时候,由社区团购这个新模式带来的市场渗透机会就完全不存在了。

这有点儿像打猎,你不可能说:“你别动,让我打死你!”你距离猎物越近,与此同时你失去这个猎物的概率也就越大。

可以说,在时间的压力下,大家都不会在完全看清楚一个市场才行动。因此处在最底层的技术体系,在外部适应性上不太可能有充足的时间和精力去做到完美。

企业外部环境的影响

最常见的削弱一个技术体系外部适应性的外在因素就是竞争。竞争会打乱企业的部署和节奏,迫使企业不得不响应市场环境的变化,而不是有规划有节奏地做自己的业务和产品。

在这种情况下,不但技术体系不能提升外部适应性,甚至连产品和业务也没办法通过自己的方式提升企业的外部适应性。因为竞争会打乱企业的节奏,给企业各个层面带来影响:

  • 有的影响是业务层面的。比如多个企业对流量渠道的竞争,大促和营销力度和时长,履约和服务的人群和地区性优势,等等。
  • 有的影响是产品层面的。比如不同的用户体验和用户心智,不同的产品定位和功能,等等。
  • 也有的影响是技术层面的。比如对长尾设备的覆盖,对创新技术的支持,商业生态、产品技术和 API 的开放性和兼容性,等等。

竞争对手在业务、产品和技术层面的动作,都会迫使企业做出相应的应对动作,很少有企业能我行我素的。

还是用打猎的比方来解释。哪怕你起得再早,准备得再好,总会有其他猎人在那里捣乱。这些猎人哪怕打不到猎物,也会放一枪把猎物吓跑。否则你打到了,他就再也没机会了。

除了竞争外,还有其他环境因素也会影响技术体系的外部适应性。比如用户需求的流行趋势、宏观经济周期、监管环境、资源供给、技术趋势等等,无时无刻不在发生变化,这些也可能导致企业原有的外部适应性的计划失效。

举个宏观经济环境的例子。在大多数风险投资充足的地区,尤其是中国和美国,大多数企业其实并不具备对外部适应性做长期规划的条件。因为一旦某个外部环境的变化被市场感知到,这种变化如果不能被已有玩家高速响应的话,那么资本市场,尤其是风险投资,必然会迅速入场。

就像在国内,很少有明显的机会能够在半年内都没被资本深入挖掘的。往往是机会一旦出现,资本会在一两个月内迅速集结力量做出响应。

企业组织结构的影响

最后一类削弱技术体系的外部适应性的因素,与企业的组织结构有关。不论是业务线研发、产品研发,还是基层技术的研发,这些同学的本能反应,都是先维持自己的生存空间。

另外,因为各个领域的内部目标、具体挑战和资源环境都不相同,所以每个领域的研发人员设计出来的软件架构自然也存在差异。

也就是说,研发人员由于自身认知局限、沟通的局限,或者是为了保护自己团队的利益,导致他们的设计都是局部最优,而不是全局最优。这种局部和全局的冲突,在一个跨团队的大型架构活动中很容易外化出来,导致整体的外部适应性随着组织复杂度的提升而被削弱。

那么你作为一个架构师,就要通过技术抽象为一个企业创造出经得起时间考验的整体设计,从而为企业的整个技术体系注入外部适应性。那么如何做到这一点呢?我们下节课就来讨论这个问题。

小结

这节课我们聊到了一个很重要的话题:你作为独立于其他职能的架构师,可以创造什么价值?有些 leader 认为自己创造的价值就是被自己管理和影响的人的创造的增量价值之和。也就是说,这些 leader 是间接创造价值的。架构师当然可以通过参与架构活动的每个人间接创造价值。 但是在此之外,你要通过为软件系统注入外部适应性而为企业直接创造价值。

我认为架构活动是企业软件进化的一个特殊节点。在这个节点上,所有参与者都在重新审视现有架构体系的不足,然后引入新的设计和技术。在这个过程中,你其实在为企业注入新的技术基因。

从这个视角来说,上帝经由你的手来改变企业这个物种。那么你就要抓住这个机会,运用我们前几个法则中传递的知识:逼近正确的目标、尊重人性、最大化商业价值,以及利用好技术生命周期,然后通过你的架构设计和对架构活动的决策来最大化企业的外部适应性。

思考题

  • 请列举一个通过某种技术为企业注入外部适应性的例子,并着重描述:外部环境发生了什么样不连续的变化?这个技术为什么可以帮助到企业?你是如何识别这个技术的价值?还有其他选项吗?
  • PC 互联网到移动互联网过渡的时候,很多技术由于没能适应这个变化而逐渐被淘汰。你有类似的经历吗?比如在外部环境发生变化后,你开发的原本很受市场欢迎的技术,一下子就被大幅削弱了?为什么很难适应这种外部变化呢?你认为什么样的技术可以适应这种变化呢?
  • 外部适应性是面向未来的。你有没有见到过某个技术选型看似万无一失,似乎绝对能保证企业的外部适应性,但后来却在竞争中落败了?而你发现竞争对手的选型非常成功。你认为是什么原因导致你们做出错误的选型,但是竞争者却能作出正确的技术选型呢? 当然,你也可以分析开源的技术。

相关文章:

【郭东白架构课 模块一:生存法则】11|法则五:架构师为什么要关注技术体系的外部适应性?

你好, 我是郭东白。 前四条法则分别讲了目标、资源、人性和技术周期,这些都与架构活动的外部环境有关。那么今天我们来讲讲在架构活动内部,也就是在架构师可控的范围内,应该遵守哪些法则。今天这节课,我们就先从技术体…...

Mindspore安装

本文用于记录搭建昇思MindSpore开发及使用环境的过程,并通过MindSpore的API快速实现了一个简单的深度学习模型。 什么是MindSpore? 昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景覆盖三大目标。 安装步骤 鉴于笔者手头硬…...

C++010-C++嵌套循环

文章目录C010-C嵌套循环嵌套循环嵌套循环举例题目描述 输出1的个数题目描述 输出n行99乘法表题目描述 求s1!2!...10!作业在线练习:总结C010-C嵌套循环 在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 嵌套循环 循环可以指挥计算机重复去…...

设计模式之迭代器模式与命令模式详解和应用

目录1 迭代器模式1.1 目标1.2 内容定位1.3 迭代器模式1.4 迭代器模式的应用场景1.5 手写字定义的送代器1.6 迭代器模式在源码中的体现1.7 迭代器模式的优缺点2 命令模式2.1 定义2.2 命令模式的应用场景2.3 命令模式在业务场景中的应用2.4 命令模式在源码中的体现2.5 命令模式的…...

【QA】[Vue/复选框全选] v-model绑定每一项的赋初值问题

发生场景:不只是复选框的状态改变,还有的功能要用到复选框的选中状态,比如:购物车计算总价,合计等等。 引入:复选框 checkbox 在使用时,需要用v-model绑定布尔值,来获取选中状态&…...

python基于django+vue微信小程序的校园二手闲置物品交易

在大学校园里,存在着很多的二手商品,但是由于信息资源的不流通以及传统二手商品信息交流方式的笨拙,导致了很多仍然具有一定价值或者具有非常价值的二手商品的囤积,乃至被当作废弃物处理。现在通过微信小程序的校园二手交易平台,可以方便快捷的发布和交流任何二手商品的信息,并…...

设计模式之观察者模式

什么是观察者模式 观察者模式定义了对象之间一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都能收到通知并自动刷新。     观察者模式主要包含以下几个角色:         Subject(目标):指被观察的对…...

Java Lambda表达式

目录1 Lambda表达式1.1 函数式编程思想概括1.2 Lambda表达式标准格式1.3 Lambda表达式练习1(抽象方法无参无返回值)1.4 Lambda表达式练习2(抽象方法带参无返回值)1.5 Lambda表达式练习2(抽象方法带参带返回值&#xff…...

【1237. 找出给定方程的正整数解】

来源:力扣(LeetCode) 描述: 给你一个函数 f(x, y) 和一个目标结果 z,函数公式未知,请你计算方程 f(x,y) z 所有可能的正整数 数对 x 和 y。满足条件的结果数对可以按任意顺序返回。 尽管函数的具体式子…...

java基础学习 day41(继承中成员变量和成员方法的访问特点,方法的重写)

继承中,成员变量的访问特点 a. name前什么都不加,name变量的访问采用就近原则,先在局部变量中查找,若没找到,继续在本类的成员变量中查找,若没找到,继续在直接父类的成员变量中查找&#xff0c…...

【c语言进阶】深度剖析整形数据

🚀write in front🚀 📜所属专栏: 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我最大的激励…...

【信息系统项目管理师】项目管理十大知识领域记忆敲出(采购风险沟通干系人)

【信息系统项目管理师】项目管理十大知识领域记忆敲出(采购风险沟通干系人) 这里写目录标题【信息系统项目管理师】项目管理十大知识领域记忆敲出(采购风险沟通干系人)一.项目采购管理记忆敲出1.合同管理:2.规划采购管…...

[LeetCode 1237]找出给定方程的正整数解

题目描述 题目链接:[LeetCode 1237]找出给定方程的正整数解 给你一个函数 f(x, y) 和一个目标结果 z,函数公式未知,请你计算方程 f(x,y) z 所有可能的正整数 数对 x 和 y。满足条件的结果数对可以按任意顺序返回。 尽管函数的具体式子未知…...

6.2 构建 RESTful 应用接口

第6章 构建 RESTful 服务 6.1 RESTful 简介 6.2 构建 RESTful 应用接口 6.3 使用 Swagger 生成 Web API 文档 6.4 实战:实现 Web API 版本控制 6.2 构建 RESTful 应用接口 6.2.1 Spring Boot 对 RESTful 的支持 Spring Boot 提供的spring-boot-starter-web组件完全…...

20230218英语学习

How Italian Artist’s Mild Colors Dominate World of Design 温柔的“莫兰迪色”,如何引领设计时尚? The Morandi color scheme has become an across-the-board fashion that now prevails in the world of design.Soft and sophisticated Morandi c…...

Linux单一服务管理systemctl

基本上systemd这个启动服务机制只有systemctl命令来处理,所以全部的操作都需要使用systemctl systemctl管理单一服务 一般来说服务的启动有两个阶段,一个是开机是否启动,以及现在是否启动 systemctl【command】【unit】 command主要有&…...

【GStreamer 】 TX1中CPU和GPU解码显示海康相机RTSP流

大家好,我是虎哥,今天找了一套海康的相机,想后续测试一下DeepStream用网络相机RTSP流做输入看看后续目标识别和分类。但是还是想先实时看看视频,当然,可以选择VLC去查看,顺道我也用GStreamer 来测试了一下&…...

匿名内部类、Lambda表达式、方法引用对比分析

文章目录一、匿名内部类1. 语法格式2. 使用方法① 传统方式② 匿名内部类方式二、Lambda表达式1. 语法格式2. 使用方法① 匿名内部类方式② Lambda表达式方式三、方法引用1. 语法格式2. 使用方法① 类型的静态方法引用② 类型的构造方法引用③ 类型的实例方法引用④ 对象的实例…...

ESXi主机CVE-2021-21972漏洞复现安全处置建议

一、漏洞简介 vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi、vCenter Server 等一系列的软件。其中 vCenter Server 为 ESXi 的控制中心,可从单一控制点统一管理数据中心的所有 vSphere 主机和虚拟机。 vSphere Client(HTML5&#xf…...

研报精选230217

目录 【行业230217毕马威】奢侈品行业新气象【行业230217国信证券】医药生物行业2023年2月投资策略:持续关注疫后复苏和创新两大主线【行业230217国金证券】航空锻造:稳定格局筑专业化壁垒,顺势而为拓产业链深度【个股230217西南证券_招商轮船…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...