自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

马克宅只是个码农

http://zhaiyifan.cn

  • 博客(45)
  • 资源 (11)
  • 收藏
  • 关注

原创 PWA 渐进式实践 (3) - 用户体验 & 性能

为了让我们的网站能达到更高的评分(咦,为什么变成刷分了),我们最后需要进行用户体验和性能的优化。

2017-02-06 12:00:41 3094

原创 PWA 渐进式实践 (2) - Service Worker

通过完善 Service Worker,我们的评分已经嗖嗖嗖上了80,达到了83分。

2017-02-06 11:58:36 3283

原创 PWA 渐进式实践 (1) - Lighthouse in Action

本篇中我们大致看到了哪些问题导致了我们的 webapp 的 PWA 评分不够高,下一次,我们会开始逐个开刀,解决这些问题。对本话题感兴趣的朋友,也可以使用 Lighthouse 插件,对自家的网站或者其他网站来评评分,看看做得有多好(其实我们的**66分**真的已经挺高了)。

2017-02-06 11:57:53 1459

原创 从零开始的Android新项目11 - 组件化实践(1)

我个人一直是比较反感黑科技的,其中首当其冲的就是 插件化 以及 保活。作为一个开发者,除了研究技术,提高自己以外,是否应该考虑些其他东西呢?尤其是我们这些嵌入式系统(客户端)开发者,在依赖、受哺于系统生态下,是不是应该考虑一下,怎么反哺?怎么去更好地维护这个生态环境,而不是一味破坏、消耗它呢?

2017-02-06 11:49:23 3757 5

原创 记一次 Data Binding 在 library module 中遇到的大坑

使用 Data Binding 也有半年多了,从最初的 setVariable,替换 findViewById,到比较高级的双向绑定,自定义 Adapter、Component,查看源码了解编译、运行流程,也算是小有成果,且没有碰到 Data Binding 本身实现上的问题。然而,最近在一次重构组件化(见 MDCC 上冯森林的《回归初心,从容器化到组件化》)的过程中,碰到了一个比较严重的 BUG。

2017-02-06 11:48:05 3608 2

原创 React Native 0.31 Bundle 预加载优化

使用 React Native 开发混合应用的过程中,我们在打完 bundle 进 release 包后,会发现第一次进入页面(React 的 Activity)会有一个短暂的白屏过程(在真机上近 1秒,在模拟器上比较快,在 200毫秒 左右),而且在完全退出后再进入,仍然会有这个白屏。仔细查看加载过程(其实猜猜都能知道)后可以发现,这个过程就是在加载我们的 js bundle,通常即便是一个小的

2016-08-22 11:14:29 5341

原创 从零开始的Android新项目10 - React Native & Redux

本篇来讲讲 React Native 和 Redux,和其他一上来就啪啪啪丢上来一堆翻译的东西不同,本文会从简单的例子入手,让大家能快速地明白 React Native 是什么,Redux 和常见的 MVC、MVP 等有什么区别,怎么去组织一个 Redux 架构的 React Native 项目。为避免大家还没入门就放弃,下一篇才会从我们项目中的实践出发,讲讲更复杂的应用场景。

2016-08-18 10:28:20 7042 1

原创 从什么都不懂开始(四)——Git掌握时空之力

看到这篇标题是不是有种很叼的感觉!?在Git的工作流程中,不仅能往前走,当然也可以后退。不仅能提交 文件,当然也能删除或者修改了。而且你想回到哪个提交节点就回到哪个提交节点, 是不是觉得自己体内的洪荒之力快抑制不住了?别急,容我短话长说,一一道来。在这真正讲这些也需要普及一个概念:工作区和暂存区工作区和暂存区如果有同学对这些概念感觉很懵逼,也没什么关系,不影响你的使用,只要扫一眼接下来的两个标题

2016-07-29 11:15:21 2523 1

原创 Data Binding Component详解 - 换肤什么的只是它的一个小应用!

上一篇从零开始的Android新项目8 - Data Binding高级篇中,我们提到了使用Component来进行注入,以方便进行测试的功能,有一些朋友说写的不够清楚,还有些疑惑,所以本篇就来详细说说Component。作为例子,我们的实现目标是使用Data Binding Component,让应用全局的TextView的文本都能随时变成test,还能进行全局换肤。

2016-07-27 17:30:57 2772 1

原创 从什么都不懂开始(三) 实践带你飞之Branch操作

本篇将介绍一下Git中经常需要操作到的东西,以及项目中运用到的场景,会稍微带一点基础知识,笔者觉得阮一峰老师的Git入门讲的非常到位了,我就不班门弄斧了,就讲一下项目中遇到的一些情况。若是Git大牛就可以点击返回或者关闭啦~ 此文多图预警~用流量的童鞋注意哦。Repository介绍在版本管理中,Repository翻译成中文就是仓库的意思,每个提交到本地,或者push到远程服务器的Project

2016-07-27 16:54:55 7987 1

原创 从什么都不懂开始(二)——创建Project提交到Github需要做什么

背景接上篇,在理解什么是git后,总需要动手操作一下,还是那句话~针对Git很熟练的大牛们可以点击返回或者关闭啦~在看这篇文章之前你得准备好什么?1、注册好的你Gihub账号 2、在setting里的SSH里有你电脑的SSHKey了。 3、准备好你自己需要放在git的文件夹 如果不会以上1、2两点的同学,请自行Google或者Baidu。将你的Project初始化成GitProject以下将以

2016-07-27 16:53:23 3236

原创 从什么都不懂开始(一)——什么是Git

前言背景用了Git蛮久了,也没有怎么系统地学习过,大部分情况也是比较依赖编译器,所以想从头梳理一下Git基础,就想写一篇从没用过Git的人也能看懂,并能入门,再渐渐成长。 一些运用git很熟练的大牛们可以点击返回或关闭啦~简介在了解Git之前,你得先了解什么是版本控制系统,如果不知道什么是版本控制系统,你可以先简单的理解成“可以追踪每次文件修改的系统,如果你某次修改出错,想回退,那么可以回退到某次

2016-07-27 16:52:11 4607

原创 从零创建项目实践

背景大帅MarkZhai的从零系列火遍大江南北,奈何大帅最近要做爸爸了,忙得没有时间出demo,文章中一些细节部分没有上代码,一些粉丝肯定看的不知所措,所以做小弟的就替大哥为大家整理了个demo。接下来会结合大帅的理论为大家讲述一下如何实践,在本文的最后会附上Demo地址。关于本实践的说明本实践是为了方便,调用github的api,抓取了我们moduth组的repo热身运动先要补充一点知识的细节才能

2016-07-27 16:51:11 898

原创 微信热修复开源库 Tinker imitator 原理篇

参考资料:微信Android热补丁实践演进之路 简单来说,在编译时通过新旧两个Dex生成差异patch.dex。在运行时,将差异patch.dex重新跟原始安装包的旧Dex还原为新的Dex。这个过程可能比较耗费时间与内存,所以我们是单独放在一个后台进程:patch中。为了补丁包尽量的小,微信自研了DexDiff算法,它深度利用Dex的格式来减少差异的大小。它的粒度是Dex格式的每一项,可以充分利

2016-07-27 13:06:24 9026

原创 从零开始的Android新项目9 - 前端用后台接口设计

这回来讲讲后台接口的设计。可能有同学会觉得后台的接口和我们大前端开发有什么关系?试想一下,在碰到一些不合理的接口设计的时候,你们开发是否觉得很别扭——需要为了坑爹的接口写很多脏代码引坑?甚至,这么开发出来的页面,体验也会很差?我们不是说硬无理要求后端接口按照前端业务去封装,而是说为了项目更好地发展,为了用户能有更棒的体验,应该有讨论商量的空间。一些差劲的设计,应该被拒绝。本文使用前端来指代 Andr

2016-07-27 12:39:36 5483 1

原创 从零开始的Android新项目8 - Data Binding高级篇

承接上篇,本篇继续讲解一些Data Binding更加进阶的内容,包括:列表绑定、自定义属性、双向绑定、表达式链、Lambda表达式、动画、Component注入(测试)等。Demo源码库:DataBindingSample。列表绑定App中经常用到列表展示,Data Binding在列表中一样可以扮演重要的作用,直接绑定数据和事件到每一个列表的item。RecyclerView过去我们往往会使用L

2016-07-27 12:37:56 6239 3

原创 从零开始的Android新项目7 - Data Binding入门篇

Data Binding自从去年的Google I/O发布到至今,也有近一年的时间了。这一年来,从Beta到如今比较完善的版本,从Android Studio 1.3到如今2.1.2的支持,可以说Data Binding已经是一个可用度较高,也能带来实际生产力提升的技术了。然而事实上,真正使用到Data Binding的公司、项目仍然是比较少的。可能是出于稳定性考虑,亦或是对Data Binding

2016-07-27 12:37:04 3576 1

原创 从零开始的Android新项目6 - Repository层(下) Realm、缓存、异常处理

承接上篇 从零开始的Android新项目5 - Repository层(上) Retrofit、Repository组装,本文继续介绍Realm、缓存,以及统一的异常处理设计。RealmRealm在移动端数据库中也算是比较有名的一款了,以其跨平台和惊人的速度而闻名。啊,对了,还有文档多。这里要黑的就是文档问题,Realm虽然乍一看文档很多,但是老实说,写的挺乱的。不过总体来说,实践和应用中感觉还不错

2016-07-27 12:36:01 1992

原创 从零开始的Android新项目5 - Repository层(上)

如期而至的Repository篇,内部实现则由Realm、Retrofit,以及内存级LruCache组成。 Repository,顾名思义,即仓库,向上层屏蔽了数据来源和内部实现细节,不需要了解货物来源,只需要拿走就行了。由于篇幅问题,将分为上下两篇,本篇主要介绍Retrofit的应用和Repository层组装,下篇会讲解本地缓存(包括Realm和内存缓存)以及基于异常的设计。Why Repo

2016-07-27 12:17:07 3081

原创 从零开始的Android新项目4 - Dagger2篇

转载请注明出处Dagger - 匕首,顾名思义,比ButterKnife这把黄油刀锋利得多。Square为什么这么有自信地给它取了这个名字,Google又为什么会拿去做了Dagger2呢(不都有Guice和基于其做的RoboGuice了么)?希望本文能讲清楚为什么要用Dagger2,又如何用好Dagger2。本文会从Dagger2的起源开始,途径其初衷、使用场景、依赖图,最后介绍一下我在项目中的具

2016-07-27 12:12:49 1404 1

原创 从零开始的Android新项目3 - 谁告诉你MVP和MVVM是互斥的

去年5月左右的时候,笔者在逛GitHub的时候,看到了一个MVP的项目,叫做mosby,仔细看了源码和作者介绍的文章后,发现确实有点意思,虽然会需要多写几个类和方法,但是解决了activity/fragment过重的问题,通过V/P分离能够帮助提高可维护性。时至去年年底,今年年初,MVP才逐渐被大家所知,也不时看到些文章介绍其概念和实践。再说说MVVM (Model-View-ViewModel),

2016-07-27 12:01:47 2045 3

原创 从零开始的Android新项目2 - Gradle篇

相信大家的项目用上gradle都已经很久了,但用得如何呢?这里分享一下我的gradle脚本,大部分都是去年6月左右就开始用上的,有一部分比如签名的安全保存则是最近才自己动手,做了令自己觉得还不错的方案。module类型的区分科普小结,可能有些同学不太明白Java library module和Android library module是怎么区分的,其实就是个plugin的区别,在module的bu

2016-07-27 11:55:14 1603 1

原创 从零开始的Android新项目1 - 架构搭建篇

最近一直在忙新项目的事情,所以有的坑一直没填。。现在看来可能一时半会儿还填不了,倒不如记录一下新项目的搭建。试想一下,如果没有历史负担,没有KPI压力,去新搭建一个项目,你会怎么设计和实现呢?本系列文章不是教你怎么从0开始学Android,从0开始怎么建一个项目,而定位于零负担的情况下,在2016年怎么去创建一个好的Android项目,其中一部分技术并不太适合刚入门的初学者。Application

2016-07-27 11:54:14 2734

原创 Android逆向分析(一) - 反编译看看手Q口令红包的实现原理

本系列文章是《Android软件安全与逆向分析》的实践笔记(一些工具的版本和用法已经不同了),同时笔者希望系统性地记录一下逆向方面的文字和想法。第一篇作为开始,先讲讲简单的反编译和如何跟踪一些逻辑的实现,以便进行hack。

2016-02-09 13:21:54 3874 2

原创 在Mac 10.11编译最新的Android 6.0

背景因为只有一台可怜的256G MBPR,并没有足够的空间去装一个Ubuntu,所以之前在10.10的时候尝试编译5.0未果后(各种版本问题),就无奈放弃了。 前几天在看最新的aosp官网介绍时候https://source.android.com/source/initializing.html#branch-60x,发现master和6.0.x的编译都使用了or later来描述对mac os

2015-11-25 14:34:02 1617

原创 各大热补丁方案分析和比较

最近开源界涌现了很多热补丁项目,但从方案上来说,主要包括[Dexposed](https://github.com/alibaba/dexposed)、[AndFix](https://github.com/alibaba/AndFix)、[ClassLoader](http://bugly.qq.com/blog/?p=781)(来源是原QZone,现淘宝的工程师陈钟,在15年年初就已经开始实现)三种。

2015-11-24 16:03:15 1694

原创 OkHttp是怎么工作的 - 从介绍到分析

OkHttpRetrofit使用OkHttp,Volley支持替换底层http栈为OkHttp,甚至Google的最新源码里,都用起了OkHttp,替换了原来用的HttpClient。笔者虽然一直听说OkHttp怎么怎么好,但始终云里雾里究竟它如何优越,所以抽空瞄了瞄源码,小小分析一下。官网说了什么okhttp官网HTTP/2 和 SPDY 支持允许所有到同一个host的请求共享一个socket。

2015-10-25 11:04:39 3461

原创 Android任务流调度 - Init

Github PageInit Init帮助Android应用调度复杂的任务流(如应用初始化流程),如下一节图示的那种任务流,处理类型、优先级、多进程(像是每个进程都会执行application的onCreate),任务依赖,提高应用启动效率。尽管Init设计的初衷是为了应用(application)初始化,但并不局限于此,它可以于应用在任何复杂的初始化流程。Init不依赖于任何第三方库,使用Jav

2015-10-05 19:56:33 1445

原创 React Native for Android初探

See http://blog.zhaiyifan.cn/2015/09/16/Try-React-Native-for-Android/OverviewFacebook 今天发布了 React Native for Android,把 Web 和原生平台的 JavaScript 开发技术扩展到了 Google 的流行移动平台。Android开发者们终于也能试试React了。本文就从https://

2015-09-16 12:02:20 1501

原创 Android换肤技术总结

Android换肤技术总结背景纵观现在各种Android app,其换肤需求可以归为 - 白天/黑夜主题切换(或者别的名字,通常2套),如同花顺/自选股/天天动听等,UI表现为一个switcher。 - 多种主题切换,通常为会员特权,如QQ/QQ空间。对于第一种来说,目测应该是直接通过本地theme来做的,即所有图片/颜色的资源都在apk里面打包了。而对于第二种,则相对复杂一些,由于作为一种线上

2015-09-10 23:50:14 2368 4

原创 Facebook Rebound 弹性动画库 源码分析

Rebound源码分析今天看到了tumblr发布了基于rebound的Backboard,本想直接分析一下Backboard对rebound做了些什么,不过考虑到rebound还没有仔细分析过,所以这里做一下源码分析。对外部来说,首先接触的就是SpringSystem了,但在说它之前,先让我们

2015-09-10 10:14:56 3575

原创 intellij老是警告的SparseArray是什么 - HashMap的替代者

序言身为一个有代码洁癖的程序员,在写Android应用的时候,我总是会去注意代码规范(Google Android Guideline)能一行搞定的代码,绝不写两行决不让编译器(intellij, as)右边滚动条有黄色不重复自己当然了,实际开发中,编译器报的warning有些不太好避免,比如有些空指针,编译器从android源码来看,觉得不会出现空指针,但是实际情况下….你懂得,部分ro

2015-08-28 17:10:04 1360

原创 Java和Android中,代码块、static静态代码块的执行顺序

Java和Android中,代码块、static静态代码块的执行顺序有没有什么区别呢。

2015-08-28 11:11:54 5038

原创 关于android客户端的导航栏(toolbar)

title: 关于android客户端的导航栏 date: 2015-08-25 16:34:40 categories: - android tags: - android- toolbarbackgroundandroid客户端开发过程中,所有页面都会有的一个元素,也就是导航栏了(标题栏),尽管Google给我们提供了ActionBar和升级版的Toolbar,但是在中国的移动端设计中

2015-08-27 19:58:14 1838

原创 说说耦合(coupling)

coupling, 即两个东西之间的一种连接,使他们彼此关联。以前大学里学软件工程和面向对象的时候,就时常听到解耦和低耦合,所以现在在做开发的时候,也往往会去想,怎么降低耦合度呢。软件工程书籍中,这么写道,高内聚及低耦合可以给我们软件开发人员带来可读性、复用性、可维护性和易变更性。耦合天成软件开发过程中,耦合是不可避免的,除非做出来一个超级巨大,包含一切功能的类/模块,都放在里面做(这显然并不是高内

2015-08-27 15:25:59 2453

原创 EventBus 2.4 源码分析

EventBus简介本篇基于EventBus 2.4撰写。Android optimized event bus that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.上面是从官方repo拉来的代码,大致是说简化的组件之间的交流通信,

2015-08-20 22:39:33 1161 1

原创 EventBus, otto, LocalBroadcast的选择

EventBus, otto, LocalBroadcast的选择greenrobot的EventBussquare的ottoandroid support包里提供的LocalBroadcast三者都是类似订阅/发布的模式,降低了耦合度。与callback比起来,这种事件总线的模式使得两个类没有直接的依赖关系,对架构来说进行了解耦,把双向依赖变成了单向依赖,在大型项目中尤其显得重要。Why

2015-08-17 15:17:00 2276

原创 使用mosby框架 应用MVP模式实现邮件客户端

本文内容结合http://hannesdorfmann.com/android/mosby-playbook/前置内容http://hannesdorfmann.com/android/mosby/apk下载体验https://github.com/sockeqwe/mosby/releases/download/1.1.0/sample-mail.apk不

2015-06-29 16:00:14 1568 2

原创 Photo Sphere调查小结

去年在网上查了一下Photo Sphere和街景相关的内容,做一下小结。Photo Sphere是只有Google Camera有的一个功能,其拍摄后会将图片进行处理并保存为jpg,虽然看也能看,但是效果不是很好,且手机上目前没有独立的Viewer,这个jpg里面保存了很多metadata,解析出来看到有Google Developer上也有相关介绍http

2015-06-27 19:27:58 2896

原创 实现类似Tumblr的Title Bar跟随滑动渐变的效果

轻博客应用Tumblr中,在看他人的主页时候,可以看到顶部title bar的一个很酷炫的体验,当在最顶端,整个title bar的背景是透明的,而上面的字体和图标是白色的,随着逐渐滑下来,背景逐渐不透明变白,而图标及字体则渐渐灰起来。如下图整个滑动的效果很好,简直忍不住多滑几次。那么这个效果是怎么实现的呢。秘密自然都在listview的onScroll上。根据

2015-06-27 18:27:24 4001 2

英特尔Hadoop发行版 2.2 开发者指南

本开发者指南提供了关于英特尔® Hadoop发行版的样例代码和管理指令的实施范例,便于使用者快速熟悉英特尔® Hadoop发行版。 Hadoop为海量数据处理系统提供了超越传统内存和数据库技术的解决方案。如今,它已成为创建海量数据结构的首选工具。然而,Hadoop的社区版本由于其开源版本本身的许多缺陷,使得企业级用户不得不为解决系统一致性,安装维护,管理以及检测的难题做出许多修改补丁。这些都使Hadoop的企业级应用十分困难。 针对企业用户对 Hadoop 技术平台的需要,英特尔® Hadoop 发行版产品提供了一个稳定高效可 管理的 Hadoop 发行版。英特尔® Hadoop 发行版经过大量实际项目的在线使用验证,免去了企 业用户的后顾之忧。英特尔®还提供全面的产品技术支持和顾问服务,使得企业用户在系统规划、设计、实施和运行时都能得到专业及时的专业服务。 英特尔® Hadoop发行版能为通讯,商务,医疗,制造业等不同行业不断增长的数据处理需求提供稳定高效的技术支持。

2012-12-20

优秀论文中英文摘要模板

优秀论文中英文摘要模板 上海交通大学 ****届本科生优秀毕业设计(论文)摘要

2012-11-04

Linux 2.6内核标准 Part4 (Final)

Linux内核是Linux操作系统中最核心的部分,用于实现对硬件部件的编程控制和接口操作。本书深入、系统地讲解了Linux内核的工作原理,对Linux内核的核心组件逐一进行深入讲解。 全书共8章,首先讲解Linux系统的引导过程;然后对Linux内核的3大核心模块--内存管理、进程管理、中断和异常处理进行了深入的分析;在此基础上,对时间度量、系统调用进行了分析和讨论;最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的同步机制。 本书适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学习操作系统的参考书。

2012-03-19

Linux 2.6内核标准 Part3

Linux内核是Linux操作系统中最核心的部分,用于实现对硬件部件的编程控制和接口操作。本书深入、系统地讲解了Linux内核的工作原理,对Linux内核的核心组件逐一进行深入讲解。 全书共8章,首先讲解Linux系统的引导过程;然后对Linux内核的3大核心模块--内存管理、进程管理、中断和异常处理进行了深入的分析;在此基础上,对时间度量、系统调用进行了分析和讨论;最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的同步机制。 本书适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学习操作系统的参考书。

2012-03-19

Linux 2.6内核标准 Part2

Linux内核是Linux操作系统中最核心的部分,用于实现对硬件部件的编程控制和接口操作。本书深入、系统地讲解了Linux内核的工作原理,对Linux内核的核心组件逐一进行深入讲解。 全书共8章,首先讲解Linux系统的引导过程;然后对Linux内核的3大核心模块--内存管理、进程管理、中断和异常处理进行了深入的分析;在此基础上,对时间度量、系统调用进行了分析和讨论;最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的同步机制。 本书适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学习操作系统的参考书。

2012-03-19

Linux 2.6内核标准 Part1

Linux内核是Linux操作系统中最核心的部分,用于实现对硬件部件的编程控制和接口操作。本书深入、系统地讲解了Linux内核的工作原理,对Linux内核的核心组件逐一进行深入讲解。 全书共8章,首先讲解Linux系统的引导过程;然后对Linux内核的3大核心模块--内存管理、进程管理、中断和异常处理进行了深入的分析;在此基础上,对时间度量、系统调用进行了分析和讨论;最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的同步机制。 本书适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学习操作系统的参考书。

2012-03-19

国际软件工程知识体系SWEBOK

Guide to the Software Engineering Body of Knowledge 2004 Version SWEBOK® A project of the IEEE Computer Society Professional Practices Committee

2011-07-05

软件可靠性模型 软件测试

软件可靠性模型的基本假设: ①软件的运行剖面与可靠性测试剖面一致。 ②一旦发现错误,立即修正,并不引入新的错误。 ③错误被查处和失效是独立的。 ④每个错误被发现的概率相等。

2011-07-05

软件构架文档(在线考试系统)

E-Exam 在线考试系统 软件构架文档

2011-07-05

Winrunner介绍-进阶篇

Winrunner 工具介绍(进阶篇) 顾文炯 @ SJCU

2011-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除