注册
环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

环信FAQ

环信FAQ

集成常见问题及答案
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有
0
评论

Android开发杂记--打包release(发行版)App,并将其体积压缩至最小 Android

技术精选王二蛋和他的张大花 发表了文章 • 1350 次浏览 • 2021-05-06 16:17 • 来自相关话题

#Android开发杂记--打包 release(发行版)App,并将其体积压缩至最小 引言 生成签名文件 配置build.gradle文件 执行 Release 打包脚本 引言 &... ...查看全部
0
评论

RecyclerView 动画原理 | 如何存储并应用动画属性值?(2) Android RecyclerView

技术精选柳天明 发表了文章 • 1028 次浏览 • 2021-05-06 15:52 • 来自相关话题

RecyclerView 动画原理 | 如何存储并应用动画属性值?(1)存预布局动画属性值 InfoRecord中除了postInfo还有一个preInfo,分别表示后布局和预布局表项的动画信息。想必还有一个addToPreLayout()与addToPost... ...查看全部
0
评论

RecyclerView 动画原理 | 如何存储并应用动画属性值?(1) Android RecyclerView

技术精选柳天明 发表了文章 • 1045 次浏览 • 2021-05-06 15:51 • 来自相关话题

RecyclerView 表项动画的属性值是怎么获取的,又存储在哪里?这一篇继续通过 走查源码 的方式解答这个疑问。 通过上两篇的分析得知,为了做动画 RecyclerView 会布局两次:预布局+后布局,依次将动画前与动画后的表项填充到列表。表项被填充后,就... ...查看全部
0
评论

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(2) Android RecyclerView

技术精选柳天明 发表了文章 • 1276 次浏览 • 2021-05-06 15:49 • 来自相关话题

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(1)4. mCachedViews 中缓存的表项被删除 表项移出屏幕后,立刻被回收到mCachedViews结构中。若恰巧该表项又被删除了,则表项对应的 ViewHolder 从mCach... ...查看全部
0
评论

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(1) Android RecyclerView

技术精选柳天明 发表了文章 • 1015 次浏览 • 2021-05-06 15:48 • 来自相关话题

缓存是 RecyclerView 时间性能优越的重要原因。缓存池是所有缓存中速度最慢的,其中的ViewHodler是脏的,得重新执行onBindViewHolder()。这一篇从源码出发,探究哪些情况下“表项会被回收到缓存池”。 缓存池结构 在分析不同的回收场... ...查看全部
0
评论

RecyclerView 动画原理 | pre-layout,post-layout 与 scrap 缓存的关系 Android RecyclerView

技术精选柳天明 发表了文章 • 877 次浏览 • 2021-05-06 15:46 • 来自相关话题

RecyclerView 缓存之一的 scrap 结构中缓存的是什么?为什么需要 scrap 缓存?pre-layout 及 post-layout 过程中 scrap 缓存内容会如何变化?这一篇继续通过 走查源码 + 断点调试的方式解答这些疑问。引子 这一篇... ...查看全部
0
评论

RecyclerView缓存机制 | scrap view 的生命周期 Android RecyclerView

技术精选柳天明 发表了文章 • 1281 次浏览 • 2021-05-06 15:45 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制。第一篇中遗留的一个问题还没有解决:复用表项时优先级最高的scrap view是用来干嘛的?这篇文章试着通过阅读源码来解答这个问题。scrap view对应的存储结构是final ArrayLis... ...查看全部
0
评论

RecyclerView 缓存机制 | 回收到哪去? Android RecyclerView

技术精选柳天明 发表了文章 • 1018 次浏览 • 2021-05-06 15:45 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,上两篇已经分析了 RecyclerView 缓存机制会回收哪些表项,及如何从缓存中获取表项。本篇在此基础上继续走读源码,分析“回收的表项是以怎样的形式存放”。回收入口 上一篇以列表滑动事件为起点... ...查看全部
0
评论

RecyclerView 缓存机制 | 回收些什么? RecyclerView Android

技术精选柳天明 发表了文章 • 916 次浏览 • 2021-05-06 15:44 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,上一篇分析了“如何从缓存中复用表项?”,这一篇继续以走读源码的方式探究一下“哪些表项会被回收?”回收场景 在众多回收场景中最显而易见的就是“滚动列表时移出屏幕的表项被回收”。滚动是由Motion... ...查看全部
0
评论

RecyclerView 缓存机制 | 如何复用表项?(2) RecyclerView Android

技术精选柳天明 发表了文章 • 811 次浏览 • 2021-05-06 15:39 • 来自相关话题

RecyclerView 缓存机制 | 如何复用表项?(1)第四次尝试 ViewHolder tryGetViewHolderForPositionByDeadline(int position, boolean dryRun,... ...查看全部
0
评论

RecyclerView 缓存机制 | 如何复用表项?(1) RecyclerView Android

技术精选柳天明 发表了文章 • 1061 次浏览 • 2021-05-06 15:38 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,这一篇以走读源码的方式探究 RecyclerView 的缓存机制。引子 如果列表中每个移出屏幕的表项都直接销毁,移入时重新创建,很不经济。所以RecyclerView引入了缓存机制。 回收是为... ...查看全部
0
评论

源码篇:ThreadLocal的奇思妙想(万字图文)(二) Android

技术精选王二蛋和他的张大花 发表了文章 • 1037 次浏览 • 2021-05-06 15:38 • 来自相关话题

源码篇:ThreadLocal的奇思妙想(万字图文)(一)取index值上面代码中,用取得的hash值,与ThreadLocalMap实例中数组长度减一的与操作,计算出了index值这个很重要的,因为大于长度的高位hash值是不需要的此处会将传入的Thread... ...查看全部
0
评论

源码篇:ThreadLocal的奇思妙想(万字图文)(一) Android

技术精选王二蛋和他的张大花 发表了文章 • 999 次浏览 • 2021-05-06 15:35 • 来自相关话题

前言 ThreadLocal的文章在网上也有不少,但是看了一些后,理解起来总感觉有绕,而且看了ThreadLocal的源码,无论是线程隔离、类环形数组、弱引用结构等等,实在是太有意思了!我必须也要让大家全面感受下其中所蕴含的那些奇思妙想! 所以这里我想写一篇... ...查看全部
0
评论

View嵌套太深会卡?来用JetpackCompose,随便套——IntrinsicMeasurement Android

技术精选王二蛋和他的张大花 发表了文章 • 1186 次浏览 • 2021-05-06 15:28 • 来自相关话题

视频先行 如果你方便看视频,直接去 哔哩哔哩 或者 YouTube 看视频就好,下面的文章就不用看了。如果你不方便看视频,下面是视频内容的脚本整理稿。 开场 做 Android 开发的都知道一个规矩:布局文件的界面层级要尽量地少,越少越好,因为层级的增加... ...查看全部
0
评论

快速上手Flutter空安全 Android

技术精选王二蛋和他的张大花 发表了文章 • 1371 次浏览 • 2021-05-06 15:26 • 来自相关话题

学习最忌盲目,无计划,零碎的知识点无法串成系统。学到哪,忘到哪,面试想不起来。这里我整理了Flutter面试中最常问以及Flutter framework中最核心的几块知识,欢迎关注,共同进步。 欢迎搜索公众号:进击的Flutter或者runflutter 里... ...查看全部
0
评论

RecyclerView的滚动是怎么实现的?解锁阅读源码新姿势 Android

技术精选王二蛋和他的张大花 发表了文章 • 1009 次浏览 • 2021-05-06 15:23 • 来自相关话题

RecyclerView 是一个展示列表的控件,其中的子控件可以被滚动。这是怎么实现的?以走查源码的方式一探究竟。 切入点:滚动事件 阅读源码时,如何在浩瀚的源码中选择合适的切入点很重要,选好了能少走弯路。 对于滚动这个场景,最显而易见的切入点是触摸事件... ...查看全部
0
评论

【Jetpack篇】协程+Retrofit网络请求状态封装实战 Android

技术精选王二蛋和他的张大花 发表了文章 • 1337 次浏览 • 2021-05-06 13:58 • 来自相关话题

前言 在App中,对于网络请求状态一般性的就分为加载中、请求错误、请求成功、请求成功但数据为null。为了用户体验,不同的状态需要对用户展示不同的界面,例如网络异常的提醒,点击重新请求等。 之前项目一直都是以Retrofit+RxJava+OkHttp为网... ...查看全部
0
评论

LiveData 单元测试 Android

技术精选柳天明 发表了文章 • 1296 次浏览 • 2021-04-30 13:46 • 来自相关话题

文参考自 作者:HaroldGao链接:https://juejin.cn/post/6956588138487775240来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
0
评论

CompletableFuture使用与解读 Android

技术精选柳天明 发表了文章 • 1579 次浏览 • 2021-04-30 13:45 • 来自相关话题

1 前言 jdk8后给出的类,android需要N版本之后才能使用;提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,也提供了转换和组合 CompletableFuture 的方法; 本文会从以下方面来介绍 ... ...查看全部
0
评论

iOS-网络图片预览器(缩放,拖拽等手势) iOS开发

iOS Library九漏鱼 发表了文章 • 1743 次浏览 • 2021-04-29 15:10 • 来自相关话题

预览效果(原位置启动,放大缩小,拖拽关闭,支持长图,跳转其他界面):视图结构:present跳转一个UINavigationController,UINavigationController的根跟控制是UIViewController,在viewcontrol... ...查看全部
0
评论

Android系统开发-选择并启动默认Launcher Android

技术精选柳天明 发表了文章 • 1040 次浏览 • 2021-04-29 14:23 • 来自相关话题

如果在Android设备上又安装了一个Launcher应用,当我们返回主页的时候,Android就会弹出一个弹窗,要用户 选择要启动的Launcher应用,如下图所示: 这个是普通Android设备的正常流程,现在我们的需求是不再显示这个提示窗,在设置中增加... ...查看全部
0
评论

ART虚拟机 | 锁 Android

技术精选柳天明 发表了文章 • 1627 次浏览 • 2021-04-29 14:23 • 来自相关话题

本文基于Android 11(R) Java中对临界区的锁定通常用synchronize代码块完成,因此标题中的“锁”实际上是对synchronize关键字的剖析。Synchronize代码块使用时必须传入一个对象,这个对象可以是this对象,可以是类对象(e... ...查看全部
0
评论

Android-Jetpack-Hilt 组件 包爽攻略 Android

技术精选柳天明 发表了文章 • 1344 次浏览 • 2021-04-29 14:21 • 来自相关话题

Hilt 是啥? Hilt 就是依赖Dagger2 而来的 一个 专属android 端的 依赖注入框架。Dagger2 是啥? Dagger是以前 square 做的 依赖注入框架,但是大量使用了反射,谷歌觉得这东西不错,拿来改了一下,使用编译期注解 大幅度... ...查看全部
0
评论

Kotlin实战---使用Room封装本地数据层 Android

技术精选王二蛋和他的张大花 发表了文章 • 1051 次浏览 • 2021-04-29 13:23 • 来自相关话题

没有Kotlin基础的小伙伴先进这里→ Koltin基础文章 Kotlin网络模型的实现→ Kotlin网络模型的实现 kotlin实战---MVP模式实现登录,实现Base层封装→ kotlin实战---MVP模式实现登录,实现Base层封装 1、为什么使用... ...查看全部
0
评论

你的Android库是否还在Application中初始化? Android

Android Library王二蛋和他的张大花 发表了文章 • 1274 次浏览 • 2021-04-29 13:18 • 来自相关话题

通常来说,当我们引入一个第三方库,第一件要做的事情是在Application中的onCreate传入context初始化这个库 😞。但是为什么像一些库如Firebase🔥,初始化的时候并不需要在Application中初始化呢?今天我们就来探索一下这个问题 🧐... ...查看全部
0
评论

引入Jetpack架构后,你的App会发生哪些变化? Android

技术精选王二蛋和他的张大花 发表了文章 • 1229 次浏览 • 2021-04-29 13:14 • 来自相关话题

前言 上篇文章我给大家分享了我对Android架构的理解,从思想层面去讲述架构的演进过程。很多小伙伴读完后拍手叫好,表示还想听我讲一下对Jetpack 架构的看法,本着帮人帮到底的精神,今天我将再次动笔 尽量从本质上讲清楚Jetpack 架构存在的意义,以及解... ...查看全部
0
评论

Android系统开发-选择并启动默认Launcher Android

技术精选王二蛋和他的张大花 发表了文章 • 1603 次浏览 • 2021-04-29 13:12 • 来自相关话题

如果在Android设备上又安装了一个Launcher应用,当我们返回主页的时候,Android就会弹出一个弹窗,要用户 选择要启动的Launcher应用,如下图所示: 这个是普通Android设备的正常流程,现在我们的需求是不再显示这个提示窗,在设置中增加... ...查看全部
0
评论

在 Kotlin 序列化中使用 DataStore Android

技术精选王二蛋和他的张大花 发表了文章 • 1105 次浏览 • 2021-04-29 13:11 • 来自相关话题

我们之前已经 数据类 非常适合与 DataStore 结合使用,这是因为它们能够与 Kotlin 序列化无缝协作。DataStore 会依赖数据类自动生成的 equals 和 hashCode。数据类也会生成便于调试和更新数据的 toString 和 copy... ...查看全部
0
评论

ART虚拟机 | 锁 Android

技术精选王二蛋和他的张大花 发表了文章 • 1206 次浏览 • 2021-04-29 13:10 • 来自相关话题

本文基于Android 11(R) Java中对临界区的锁定通常用synchronize代码块完成,因此标题中的“锁”实际上是对synchronize关键字的剖析。Synchronize代码块使用时必须传入一个对象,这个对象可以是this对象,可以是类对象(e... ...查看全部
0
评论

iOS 功能丰富的 Category 类型工具库 iOS三方开源库

iOS Libraryzuyu 发表了文章 • 1222 次浏览 • 2021-04-29 11:04 • 来自相关话题

YYCategories安装CocoaPods在 Podfile 中添加  pod 'YYCategories'。执行 pod install 或 pod update。导入 <YYCategories/... ...查看全部
0
评论

iOS 异步绘制与显示的工具类 iOS三方开源库

iOS Libraryzuyu 发表了文章 • 994 次浏览 • 2021-04-29 11:02 • 来自相关话题

YYAsyncLayeriOS 异步绘制与显示的工具类。简单用法@interface YYLabel : UIView @property NSString *text; @property UIFont *font; @end @implementatio... ...查看全部
0
评论

iOS 全局并发队列管理工具 iOS三方开源库

iOS Libraryzuyu 发表了文章 • 1248 次浏览 • 2021-04-29 11:01 • 来自相关话题

YYDispatchQueuePooliOS 全局并发队列管理工具。当某个 block 所在线程被锁住时,concurrent queue 会创建大量线程以至于占用了过多资源而影响到主线程。这里可以用一个全局的 serial queue pool 来尽量控制全... ...查看全部
0
评论

iOS 键盘管理工具 iOS三方开源库

iOS Libraryzuyu 发表了文章 • 1138 次浏览 • 2021-04-29 10:58 • 来自相关话题

YYKeyboardManageriOS 键盘监听管理工具类。'兼容性该项目能很好的兼容 iPhone / iPad / iPod,兼容 iOS 6~11, 并且能很好的处理屏幕旋转。用法// 获取键盘管理器 YYKeyboardManager *manag... ...查看全部
0
评论

iOS 一个比较完美的 Growing TextView iOS三方开源库

iOS Library费城 发表了文章 • 1045 次浏览 • 2021-04-28 17:52 • 来自相关话题

iOS 一个比较完美的 Growing TextView文章缘由现在都 2019 年了,App 中使用自动增高的输入框已经很常见了,即时通讯的 Chat 界面、社交类 App 的评论功能都可以看到自增高输入框。但写出一个自增高输入框容易,写好难。现在市面上一些... ...查看全部
0
评论

线程池基本参数解析 Java Android

技术精选王二蛋和他的张大花 发表了文章 • 1103 次浏览 • 2021-04-28 10:44 • 来自相关话题

一、线程池构造方法参数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, l... ...查看全部
1
评论

线程池系列分析-线程池的拒绝策略 Java Android

技术精选王二蛋和他的张大花 发表了文章 • 1192 次浏览 • 2021-04-28 10:43 • 来自相关话题

前言 线程池系列的第二篇文章。拒绝策略的说明。技术人嘛。还是要经常归纳总结的 什么是拒绝策略 首先要明白,为什么线程池要有一个拒绝策略。也就是他出现的背景是什么。 了解过线程池的小伙伴应该都知道。线程池的构造参数中就有一个拒绝策略 public ThreadP... ...查看全部
0
评论

【Java】ArrayList实现原理浅析 Java Android

技术精选王二蛋和他的张大花 发表了文章 • 1031 次浏览 • 2021-04-28 10:41 • 来自相关话题

为什么要写这篇文章,还真不是我好奇,就是因为团队技术分享了,我也要搞一个分享的内容,我满脸写着期待(绝望)和开心(难过)。 一.ArrayList的底层数据结构 ArrayList底层的数据结构是数组,它是一个Object元素类型的数组,所有操作操作底层都是基... ...查看全部
0
评论

java开发:异常你了解多少 Java Android

技术精选王二蛋和他的张大花 发表了文章 • 1014 次浏览 • 2021-04-28 10:37 • 来自相关话题

一、异常体系1、error/exception异常是 Throwable 这个父类实现的,下面有两大子类,Error与ExceptionError表示错误,exception表示异常Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代... ...查看全部
0
评论

Android修炼系列(九),你的签名校验形同虚设.. Android

技术精选维生素C 发表了文章 • 1841 次浏览 • 2021-04-28 10:18 • 来自相关话题

声明:本文所述均为技术讨论,切勿用于违法行为。 我们知道签名是Android软件的一种有效身份标识,因为签名所使用的秘钥文件是我们所独有的,而当我们app被重新打包后,app的签名信息势必会被篡改,所有我们就可以根据软件运行时签名与发布时签名的相同与否来决定... ...查看全部
0
评论

Android修炼系列(八),你真的会写注释吗? Android

技术精选维生素C 发表了文章 • 1118 次浏览 • 2021-04-28 10:17 • 来自相关话题

本节主要介绍下我们常用的 javadoc tag ,虽然内容比较简单,但若正确使用,真的能使我们的代码高大上不少。不仅如此,只要我们按照Javadoc 注释规则,在编码完成后,Javadoc 也能够帮我们从源代码中生成相应的 Html 格式的 API 开发文档... ...查看全部
0
评论

Android修炼系列(七),方法调用,背后的秘密 Android

技术精选维生素C 发表了文章 • 941 次浏览 • 2021-04-28 10:16 • 来自相关话题

在前篇已经讲解了类是如何被加载的? 和 对象是如何被分配和回收的?,本节主要看下,方法又是如何被调用和执行的? 栈帧 栈帧是虚拟机 栈内存 中的元素,是支持虚拟机进行方法调用和方法执行的数据结构。其内存储了方法的局部变量表、操作数栈、动态连接、方法返回地址和一... ...查看全部
0
评论

Android修炼系列(六),时间与空间复杂度的概念 Android

技术精选维生素C 发表了文章 • 1077 次浏览 • 2021-04-28 10:16 • 来自相关话题

本来是想将时间复杂度和空间复杂度的内容,放到后面的算法系列,但后想想,其实复杂度的审视应该是贯彻于整个开发过程之中的,应该是属于更大概念的“代码规范”的一部分,而不应局限在某个算法上。当然本文仅是以能用能理解为主,并不会深入到推倒公式的那种程度。分析当一个问题... ...查看全部
0
评论

移动架构 (八) 人人都能看得懂的动态化加载插件技术模型实现 架构 Android

技术精选王二蛋和他的张大花 发表了文章 • 1072 次浏览 • 2021-04-27 13:41 • 来自相关话题

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻... ...查看全部
0
评论

移动架构 (七) 人人都能看得懂的组件化框架模型 架构 Android

技术精选王二蛋和他的张大花 发表了文章 • 1088 次浏览 • 2021-04-27 13:38 • 来自相关话题

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻... ...查看全部
0
评论

移动架构 (六) 轻量级进程间通信框架设计 架构 Android

技术精选王二蛋和他的张大花 发表了文章 • 1065 次浏览 • 2021-04-27 13:35 • 来自相关话题

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻... ...查看全部
0
评论

移动架构 (五) 仅仅对 Java Bean 的操作,就能完成对数据持久化 架构 Android

技术精选王二蛋和他的张大花 发表了文章 • 1421 次浏览 • 2021-04-27 13:33 • 来自相关话题

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻... ...查看全部
0
评论

移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻量级 EventBus 框架,根据 TAG 发送接收事件。 架构 Android

技术精选王二蛋和他的张大花 发表了文章 • 1083 次浏览 • 2021-04-27 13:29 • 来自相关话题

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析EventBus 我相信大家不会很默认,应该也都在项目中使用过,虽然 ... ...查看全部
0
评论

移动架构 (三) AMS 源码分析 架构 Android

技术精选王二蛋和他的张大花 发表了文章 • 1309 次浏览 • 2021-04-27 13:25 • 来自相关话题

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架AMS 介绍 ActivityManagerService 简称 AMS , 是 Android 内核中... ...查看全部
0
评论

移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架 架构 Android

技术精选王二蛋和他的张大花 发表了文章 • 1190 次浏览 • 2021-04-27 11:15 • 来自相关话题

移动架构 (一) 架构第一步,学会画各种 UML 图Android 中消息机制Android 的消息机制主要指 Handler 的运行机制,先来看下 Handler 的一张运行架构图来对 Handler 有个大概的了解。Handler 消息机制图:Handle... ...查看全部
0
评论

移动架构 (一) 架构第一步,学会画各种 UML 图 架构 Android

技术精选王二蛋和他的张大花 发表了文章 • 1331 次浏览 • 2021-04-27 11:12 • 来自相关话题

注意: 文章中 UML 图开始用是 Windows PowerDesigner 工具,后来换电脑了用的 StarUML。 UML 定义 UML 是统一建模语言, 是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开... ...查看全部