在Python开发中,我们经常需要使用第三方模块。为了自定义一些行为,我们可能需要对第三方模块进行扩展。本文将介绍两种常见的扩展方式:Composition(组合)
和Monkey Patch(猴子补丁)
,并比较两者的优缺点。
Composition的核心思想是,不直接修改第三方模块,而是将其封装在一个新类中,通过组合的方式实现扩展。
Redis,全称为 Remote Dictionary Server,是一款开源的内存数据库,它以其出色的性能和多样化的数据结构支持而著名。Redis主要被用于缓存、消息队列以及应用程序内部的数据存储。它属于非关系型数据库(NoSQL),为计算机系统提供了快速、可扩展和高安全性的数据库服务。
Android 系统采用了内容提供器(ContentProvider)
机制来管理不同应用的数据访问。内容提供器为不同应用间的数据共享提供了接口,它们像是一个中央数据仓库,各个应用可以通过内容 URI 来存取数据。
每条短信都会被存储在内容提供器的SMS ContentProvider
中。SMS ContentProvider
的内容 URI 地址是content://sms/inbox
。所以通过操作这个内容 URI,我们可以获取存储在系统中的短信信息。
adb(Android Debug Bridge)是Android调试桥的缩写,它提供了一系列命令,可用于控制Android设备或模拟器。利用adb,我们可以通过命令行实现自动化拨打电话等操作。
adb拨打电话的原理是
可以启动目标设备上的拨号程序,并向其传递电话号码参数,使拨号程序自动填充号码并拨打。这样就避免了手动输入电话号码的麻烦。短信作为一种重要的移动通信方式,在APP测试中也经常需要验证短信功能的正确性。为了避免大量手动操作设备发送短信的低效率,我们可以利用ADB命令达到自动发送短信的目的。
短信的发送需要手机短信APP的支持。命令行通过启动短信APP并传入参数,让APP负责发送。整个过程不需要实际操作设备。
自动发送短信主要有两种发送方式: