作者:京东物流 卢旭
什么是RPA
RPA全称是机器人流程自动化(Robotic Process Automation),是一种利用软件机器人实现自动化业务过程的技术;RPA系统通过模仿用户在电脑、手机等智能设备上的手动操作方式,在无需改变现有IT系统或应用程序代码的情况下,提供了一种新的自动化业务流程的方法。
有什么优势,解决什么问题
•降低成本:RPA可完成基于流程化的重复性工作,将人从每日的重复工作中解放出来,准确高效地实现业务流程自动化;同时,可无人值守,让大家专注于价值更高和创造性的任务。也将提高员工满意度;
•速度更快,效率更高:机器人的工作速度比人类更快,更灵活,可定时工作,可7*24工作;它们使您的业务流程更加高效;消除人为误差;
•非侵入式技术:RPA 不需要大量资源来整合多个应用程序,它不需要更换现有的 IT 系统。它很容易适应公司不同部门的 IT 系统;
•改善客服服务:机器人全天候服务,能更快地解决客户的疑问,从而提高服务质量和整体客户满意度;
•模拟人机交互:可完成获取屏幕上的内容,理解屏幕上的内容,编辑屏幕上的内容,从而进行更智能的交互。
RPA不仅解决了人力成本、效率、准确性等问题,还为企业数字化转型提供了有力支持。通过RPA的实施,公司可以更加专注于核心业务的发展,提升整体运营效率和竞争力。同时,RPA产品还具备强大的可扩展性和可定制性,能够满足不同的个性化需求。
常见RPA应用领域
•企微私域运营:获取消息、发送消息、回复消息、群管理、建群、拉人、踢人、加好友、识别垃圾消息等等;
•人力资源:需要处理和管理大量数据,并详细记录组织内每位员工的情况。RPA 工具可以自动计算福利、存储文件、审核工时表、管理入职等,从而提高人力资源部门员工的工作效率;
•数据分析:RPA 有收集和分析数据的能力。自动化工具可以收集有关问题、成本、效率、生产力等任何方面的数据。这是企业发现改进领域和监控绩效的好方法。毕竟,数据是战略决策的关键;
•采购业务:采购团队通常要花费大量时间执行行政任务,这也是RPA可以应用的领域;它能够简化运营、降低人员成本并增加服务价值。发票处理和请购单审批只是使用自动化工具可以实现自动化的部分任务;
•电商领域应用场景:AI智能客服,评论回复,营销推广,商品订单,物流仓储,财务运营等;
•其它应用场景:财务、政务、银行、保险、物流等领域应用也很广泛。
私域业务场景
•2023年初,物流火种项目-私域启动,对于如何运营私域是一个问题,如何通过私域支持快递业务和其它业务;在业务发展中也有很多痛点;如何快速建群?如何给群发消息?如何运营这些群?如何保证ROI?如何达成结果目标?随着群发展到数十万,群粉丝规模达到数百万,难以避免群内不产生非法消息和不合规消息,如何管理也是一个问题?基于业务需求和已知问题,我们调研了很多方案,最终决定主要依靠自研,才能更快更稳更好的满足业务需求;随着业务需求的增多,产品需求的完善,整体系统也逐渐成熟。后面将从业务架构和基本原理大致介绍我们的解决方案。
业务架构流程
•SCRM系统从业务架构上主要包括:SCRM后台运营系统、后台服务的指令服务和AI服务、机器人平台、企微助手、微信小程序等,如下图所求;运营同学在SCRM后台进行日常运营,配置各种任务,通过后台服务计算生成具体指令下达到企微小助手;企微小助手解析指令,不同指令执行不同操作,将消息发送到企微群里或个人,或将企微上获取的数据上传到后台服务;C用户打开链接到微信小程序,用户在微信小程序也会触发一些指令(如建群),此时调用后台服务接口生成相关指令,然后再执行。
•经过不断的发展,目前服务全国数十万个社群,管理数百万用户粉丝,产生数十万的订单,每天处理数百万条消息,消息准确触达率99.6%以上;面向社群的RPA主要功能包括:微信群发消息、建群、改群名、获取群码、加好友、删好友、群管理功能,其中消息类型包括:纯文本、图文、小程序卡片等,群管理功能包括拉人、踢人、群管理员、智能识别非法信息及警告回复等;覆盖业务场景从拉新、裂变、入群、促活、交易下单、风险监测等整个生命周期,将粉丝沉淀到私域,从私域中获取利益产生订单。目前只需要3人左右就能满足运营,简单重复的工作都由RPA完成。
技术架构简介
◦业务APP:企微小助手,我们可以基于通用组件和基础服务实现其它小助手的功能
◦业务组件:企微监控服务包括定时服务、监控消息、解析消息、建群、获取群码、群管理、拉人踢人等,大部分服务与远程指令服务功能一一对应,如发送消息、回复消息、群管理、拉人踢人、建群、获取群码;
◦基础服务:无障碍解析服务包括解析节点、解析登录、解析窗口、执行点击、进退页面、解析滚动、权限处理等;网络服务包括基础库封装、日志拦截、版本管理等;日志服务包括日志打印,日志存储,日志分析,日志上传等。对于安卓无障碍服务基本原理,将在后面介绍。
无障碍服务基本原理
•安卓无障碍功能实现的主要构成 , 可以分为以下三个部分:辅助的小助手APP、被辅助的企微APP和系统服务AccessibilityManagerService,三者关系如下图所示,小助手APP不需要直接跟被辅助的APP通信,而是通过SystemService中转通信,如下图所示:
•无障碍事件执行流程,主要分为以下几个关键步骤:
◦获取操作节点AccessibilityNodeInfo
◦执行操作事件:通过AccessibilityNodeInfo.performAction执行,通过无障碍服务(AccessibilityService)中的方法如 getRootInActiveWindow() 获取当前界面布局,然后使用 findAccessibilityNodeInfosByText 或 findAccessibilityNodeInfosByViewId 等方法进行过滤和定位。事件传递给到对应的Activity。
◦事件传递分发给给具体View:事件到达Activity,Activity会进一步进行事件分发到PhoneWindow,再分发到具体的View;与普通模式下的事件分发类似,无障碍事件分发也依赖于三个重要方法:
▪dispatchHoverEvent(MotionEvent event)
:用来进行事件的分发,返回值取决于当前View的onHoverEvent()
方法和子View的dispatchHoverEvent()
方法的影响。
▪onInterceptHoverEvent(MotionEvent event)
:仅ViewGroup拥有的方法,用来判断是否拦截某个事件。
▪onHoverEvent(MotionEvent event)
:在dispatchHoverEvent()
方法中进行调用,用来处理hover事件。
◦最终无障碍事件的执行:经过上述分发过程后,最终的无障碍事件会被传递给具体的View进行处理;performAction 方法返回一个布尔值,表示操作是否成功执行。成功执行通常返回 true,否则返回 false;
总体来说,无障碍事件执行流程主要包括获取操作节点、执行操作事件、事件传递分发给给具体View以及最终执行和结果等步骤。这一流程确保了无障碍服务能够准确地捕获和处理用户的输入事件,从而提供有效的辅助功能。主要流程图如下:
•安卓辅助功能服务Accessibility Service的基本原理流程:AccessibilityService是Android系统提供给的一种服务,继承系统Service类;运行在后台并监听系统发出的事件;大致系统原理如下:
◦服务启动与注册:
▪当Android系统启动时,会启动大量系统服务,其中就包括AccessibilityManagerService
(AMS)。
▪AMS在创建时会注册一些系统广播,如应用状态变化广播PackageMonitor
。当有应用安装、卸载或更新时,PackageMonitor
会收到广播。
▪AMS会获取对应应用中注册的AccessibilityService,并保存该服务的信息。如果设置中开启了该服务,AMS会启动该服务,并返回服务的代理AccessibilityService.IAccessibilityServiceClientWrapper
。
◦事件传递与通信:
▪应用进程的UI变化、获取焦点、点击按钮等事件都会通过AccessibilityManager
发送给AMS。
▪AccessibilityManager
是AMS的代理,它负责将这些事件通过IAccessibilityServiceClientWrapper
(模拟点击服务在AMS中的代理)的onAccessibilityEvent()
方法发送给AccessibilityService。
◦事件处理:
▪AccessibilityService接收到UI信息后,会根据开发者的实现进行判断与处理。这通常包括解析事件类型、查找对应的UI元素(如按钮、文本框等),并执行相应的操作(如模拟点击、获取文本等)。
◦部分代码:
public class MyAccessibilityService extends AccessibilityService {
@Override
public void onCreate() {
super.onCreate();
// 初始化代码
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
int eventType = event.getEventType();
switch (eventType) {
case AccessibilityEvent.TYPE_VIEW_CLICKED:
// 处理点击事件
break;
// 其他事件类型...
default:
break;
}
}
@Override
public void onInterrupt() {
// 当服务被中断时调用
}
// 可能还有其他辅助方法,如查找UI元素、模拟点击等
}
同时,还需要在应用的res/xml/
目录下配置一个accessibility_service_config.xml
文件,来声明AccessibilityService的相关属性,如监听的事件类型、反馈方式等。
◦安全性与进程间通信:
▪由于不同的应用运行在各自的进程中,Android使用AIDL(Android Interface Definition Language)来实现进程间通信(IPC)。这确保了AccessibilityService能够安全地与AMS和其他系统组件通信。
总结来说,Android AccessibilityService通过监听系统事件、与AMS进行通信,并允许开发人员自定义事件处理逻辑,为那些有操作障碍的用户提供了更好的设备使用体验。
未来展望规划
经过一年多的发展,不管从产品体验上还是技术架构上存在着一些不足,需要面向用户优化用户体验,优化技术架构和性能,不断提升用户体验,满足业务运营需求。将借助AI提升RPA软件机器人的自主学习和决策能力,提升机器人的工作效率,使其能够处理更深层次的业务流程;与AI技术等深度融合,实现更深度的自动化和智能化,提供更智能的私域运营服务。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。