作者:京東物流 盧旭
什么是RPA
RPA全稱是機(jī)器人流程自動(dòng)化(Robotic Process Automation),是一種利用軟件機(jī)器人實(shí)現(xiàn)自動(dòng)化業(yè)務(wù)過程的技術(shù);RPA系統(tǒng)通過模仿用戶在電腦、手機(jī)等智能設(shè)備上的手動(dòng)操作方式,在無需改變現(xiàn)有IT系統(tǒng)或應(yīng)用程序代碼的情況下,提供了一種新的自動(dòng)化業(yè)務(wù)流程的方法。
有什么優(yōu)勢(shì),解決什么問題
?降低成本:RPA可完成基于流程化的重復(fù)性工作,將人從每日的重復(fù)工作中解放出來,準(zhǔn)確高效地實(shí)現(xiàn)業(yè)務(wù)流程自動(dòng)化;同時(shí),可無人值守,讓大家專注于價(jià)值更高和創(chuàng)造性的任務(wù)。也將提高員工滿意度;
?速度更快,效率更高:機(jī)器人的工作速度比人類更快,更靈活,可定時(shí)工作,可7*24工作;它們使您的業(yè)務(wù)流程更加高效;消除人為誤差;
?非侵入式技術(shù):RPA 不需要大量資源來整合多個(gè)應(yīng)用程序,它不需要更換現(xiàn)有的 IT 系統(tǒng)。它很容易適應(yīng)公司不同部門的 IT 系統(tǒng);
?改善客服服務(wù):機(jī)器人全天候服務(wù),能更快地解決客戶的疑問,從而提高服務(wù)質(zhì)量和整體客戶滿意度;
?模擬人機(jī)交互:可完成獲取屏幕上的內(nèi)容,理解屏幕上的內(nèi)容,編輯屏幕上的內(nèi)容,從而進(jìn)行更智能的交互。
RPA不僅解決了人力成本、效率、準(zhǔn)確性等問題,還為企業(yè)數(shù)字化轉(zhuǎn)型提供了有力支持。通過RPA的實(shí)施,公司可以更加專注于核心業(yè)務(wù)的發(fā)展,提升整體運(yùn)營效率和競爭力。同時(shí),RPA產(chǎn)品還具備強(qiáng)大的可擴(kuò)展性和可定制性,能夠滿足不同的個(gè)性化需求。
常見RPA應(yīng)用領(lǐng)域
?企微私域運(yùn)營:獲取消息、發(fā)送消息、回復(fù)消息、群管理、建群、拉人、踢人、加好友、識(shí)別垃圾消息等等;
?人力資源:需要處理和管理大量數(shù)據(jù),并詳細(xì)記錄組織內(nèi)每位員工的情況。RPA 工具可以自動(dòng)計(jì)算福利、存儲(chǔ)文件、審核工時(shí)表、管理入職等,從而提高人力資源部門員工的工作效率;
?數(shù)據(jù)分析:RPA 有收集和分析數(shù)據(jù)的能力。自動(dòng)化工具可以收集有關(guān)問題、成本、效率、生產(chǎn)力等任何方面的數(shù)據(jù)。這是企業(yè)發(fā)現(xiàn)改進(jìn)領(lǐng)域和監(jiān)控績效的好方法。畢竟,數(shù)據(jù)是戰(zhàn)略決策的關(guān)鍵;
?采購業(yè)務(wù):采購團(tuán)隊(duì)通常要花費(fèi)大量時(shí)間執(zhí)行行政任務(wù),這也是RPA可以應(yīng)用的領(lǐng)域;它能夠簡化運(yùn)營、降低人員成本并增加服務(wù)價(jià)值。發(fā)票處理和請(qǐng)購單審批只是使用自動(dòng)化工具可以實(shí)現(xiàn)自動(dòng)化的部分任務(wù);
?電商領(lǐng)域應(yīng)用場(chǎng)景:AI智能客服,評(píng)論回復(fù),營銷推廣,商品訂單,物流倉儲(chǔ),財(cái)務(wù)運(yùn)營等;
?其它應(yīng)用場(chǎng)景:財(cái)務(wù)、政務(wù)、銀行、保險(xiǎn)、物流等領(lǐng)域應(yīng)用也很廣泛。
私域業(yè)務(wù)場(chǎng)景
?2023年初,物流火種項(xiàng)目-私域啟動(dòng),對(duì)于如何運(yùn)營私域是一個(gè)問題,如何通過私域支持快遞業(yè)務(wù)和其它業(yè)務(wù);在業(yè)務(wù)發(fā)展中也有很多痛點(diǎn);如何快速建群?如何給群發(fā)消息?如何運(yùn)營這些群?如何保證ROI?如何達(dá)成結(jié)果目標(biāo)?隨著群發(fā)展到數(shù)十萬,群粉絲規(guī)模達(dá)到數(shù)百萬,難以避免群內(nèi)不產(chǎn)生非法消息和不合規(guī)消息,如何管理也是一個(gè)問題?基于業(yè)務(wù)需求和已知問題,我們調(diào)研了很多方案,最終決定主要依靠自研,才能更快更穩(wěn)更好的滿足業(yè)務(wù)需求;隨著業(yè)務(wù)需求的增多,產(chǎn)品需求的完善,整體系統(tǒng)也逐漸成熟。后面將從業(yè)務(wù)架構(gòu)和基本原理大致介紹我們的解決方案。
業(yè)務(wù)架構(gòu)流程
?SCRM系統(tǒng)從業(yè)務(wù)架構(gòu)上主要包括:SCRM后臺(tái)運(yùn)營系統(tǒng)、后臺(tái)服務(wù)的指令服務(wù)和AI服務(wù)、機(jī)器人平臺(tái)、企微助手、微信小程序等,如下圖所求;運(yùn)營同學(xué)在SCRM后臺(tái)進(jìn)行日常運(yùn)營,配置各種任務(wù),通過后臺(tái)服務(wù)計(jì)算生成具體指令下達(dá)到企微小助手;企微小助手解析指令,不同指令執(zhí)行不同操作,將消息發(fā)送到企微群里或個(gè)人,或?qū)⑵笪⑸汐@取的數(shù)據(jù)上傳到后臺(tái)服務(wù);C用戶打開鏈接到微信小程序,用戶在微信小程序也會(huì)觸發(fā)一些指令(如建群),此時(shí)調(diào)用后臺(tái)服務(wù)接口生成相關(guān)指令,然后再執(zhí)行。
?經(jīng)過不斷的發(fā)展,目前服務(wù)全國數(shù)十萬個(gè)社群,管理數(shù)百萬用戶粉絲,產(chǎn)生數(shù)十萬的訂單,每天處理數(shù)百萬條消息,消息準(zhǔn)確觸達(dá)率99.6%以上;面向社群的RPA主要功能包括:微信群發(fā)消息、建群、改群名、獲取群碼、加好友、刪好友、群管理功能,其中消息類型包括:純文本、圖文、小程序卡片等,群管理功能包括拉人、踢人、群管理員、智能識(shí)別非法信息及警告回復(fù)等;覆蓋業(yè)務(wù)場(chǎng)景從拉新、裂變、入群、促活、交易下單、風(fēng)險(xiǎn)監(jiān)測(cè)等整個(gè)生命周期,將粉絲沉淀到私域,從私域中獲取利益產(chǎn)生訂單。目前只需要3人左右就能滿足運(yùn)營,簡單重復(fù)的工作都由RPA完成。
技術(shù)架構(gòu)簡介
?業(yè)務(wù)APP:企微小助手,我們可以基于通用組件和基礎(chǔ)服務(wù)實(shí)現(xiàn)其它小助手的功能
?業(yè)務(wù)組件:企微監(jiān)控服務(wù)包括定時(shí)服務(wù)、監(jiān)控消息、解析消息、建群、獲取群碼、群管理、拉人踢人等,大部分服務(wù)與遠(yuǎn)程指令服務(wù)功能一一對(duì)應(yīng),如發(fā)送消息、回復(fù)消息、群管理、拉人踢人、建群、獲取群碼;
?基礎(chǔ)服務(wù):無障礙解析服務(wù)包括解析節(jié)點(diǎn)、解析登錄、解析窗口、執(zhí)行點(diǎn)擊、進(jìn)退頁面、解析滾動(dòng)、權(quán)限處理等;網(wǎng)絡(luò)服務(wù)包括基礎(chǔ)庫封裝、日志攔截、版本管理等;日志服務(wù)包括日志打印,日志存儲(chǔ),日志分析,日志上傳等。對(duì)于安卓無障礙服務(wù)基本原理,將在后面介紹。
無障礙服務(wù)基本原理
?安卓無障礙功能實(shí)現(xiàn)的主要構(gòu)成 , 可以分為以下三個(gè)部分:輔助的小助手APP、被輔助的企微APP和系統(tǒng)服務(wù)AccessibilityManagerService,三者關(guān)系如下圖所示,小助手APP不需要直接跟被輔助的APP通信,而是通過SystemService中轉(zhuǎn)通信,如下圖所示:
?無障礙事件執(zhí)行流程,主要分為以下幾個(gè)關(guān)鍵步驟:
?獲取操作節(jié)點(diǎn)AccessibilityNodeInfo
?執(zhí)行操作事件:通過AccessibilityNodeInfo.performAction執(zhí)行,通過無障礙服務(wù)(AccessibilityService)中的方法如 getRootInActiveWindow() 獲取當(dāng)前界面布局,然后使用 findAccessibilityNodeInfosByText 或 findAccessibilityNodeInfosByViewId 等方法進(jìn)行過濾和定位。事件傳遞給到對(duì)應(yīng)的Activity。
?事件傳遞分發(fā)給給具體View:事件到達(dá)Activity,Activity會(huì)進(jìn)一步進(jìn)行事件分發(fā)到PhoneWindow,再分發(fā)到具體的View;與普通模式下的事件分發(fā)類似,無障礙事件分發(fā)也依賴于三個(gè)重要方法:
?dispatchHoverEvent(MotionEvent event):用來進(jìn)行事件的分發(fā),返回值取決于當(dāng)前View的onHoverEvent()方法和子View的dispatchHoverEvent()方法的影響。
?onInterceptHoverEvent(MotionEvent event):僅ViewGroup擁有的方法,用來判斷是否攔截某個(gè)事件。
?onHoverEvent(MotionEvent event):在dispatchHoverEvent()方法中進(jìn)行調(diào)用,用來處理hover事件。
?最終無障礙事件的執(zhí)行:經(jīng)過上述分發(fā)過程后,最終的無障礙事件會(huì)被傳遞給具體的View進(jìn)行處理;performAction 方法返回一個(gè)布爾值,表示操作是否成功執(zhí)行。成功執(zhí)行通常返回 true,否則返回 false;
總體來說,無障礙事件執(zhí)行流程主要包括獲取操作節(jié)點(diǎn)、執(zhí)行操作事件、事件傳遞分發(fā)給給具體View以及最終執(zhí)行和結(jié)果等步驟。這一流程確保了無障礙服務(wù)能夠準(zhǔn)確地捕獲和處理用戶的輸入事件,從而提供有效的輔助功能。主要流程圖如下:
?安卓輔助功能服務(wù)Accessibility Service的基本原理流程:AccessibilityService是Android系統(tǒng)提供給的一種服務(wù),繼承系統(tǒng)Service類;運(yùn)行在后臺(tái)并監(jiān)聽系統(tǒng)發(fā)出的事件;大致系統(tǒng)原理如下:
?服務(wù)啟動(dòng)與注冊(cè):
?當(dāng)Android系統(tǒng)啟動(dòng)時(shí),會(huì)啟動(dòng)大量系統(tǒng)服務(wù),其中就包括AccessibilityManagerService(AMS)。
?AMS在創(chuàng)建時(shí)會(huì)注冊(cè)一些系統(tǒng)廣播,如應(yīng)用狀態(tài)變化廣播PackageMonitor。當(dāng)有應(yīng)用安裝、卸載或更新時(shí),PackageMonitor會(huì)收到廣播。
?AMS會(huì)獲取對(duì)應(yīng)應(yīng)用中注冊(cè)的AccessibilityService,并保存該服務(wù)的信息。如果設(shè)置中開啟了該服務(wù),AMS會(huì)啟動(dòng)該服務(wù),并返回服務(wù)的代理AccessibilityService.IAccessibilityServiceClientWrapper。
?事件傳遞與通信:
?應(yīng)用進(jìn)程的UI變化、獲取焦點(diǎn)、點(diǎn)擊按鈕等事件都會(huì)通過AccessibilityManager發(fā)送給AMS。
?AccessibilityManager是AMS的代理,它負(fù)責(zé)將這些事件通過IAccessibilityServiceClientWrapper(模擬點(diǎn)擊服務(wù)在AMS中的代理)的onAccessibilityEvent()方法發(fā)送給AccessibilityService。
?事件處理:
?AccessibilityService接收到UI信息后,會(huì)根據(jù)開發(fā)者的實(shí)現(xiàn)進(jìn)行判斷與處理。這通常包括解析事件類型、查找對(duì)應(yīng)的UI元素(如按鈕、文本框等),并執(zhí)行相應(yīng)的操作(如模擬點(diǎn)擊、獲取文本等)。
?部分代碼:
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: // 處理點(diǎn)擊事件 break; // 其他事件類型... default: break; } } @Override public void onInterrupt() { // 當(dāng)服務(wù)被中斷時(shí)調(diào)用 } // 可能還有其他輔助方法,如查找UI元素、模擬點(diǎn)擊等 }
同時(shí),還需要在應(yīng)用的res/xml/目錄下配置一個(gè)accessibility_service_config.xml文件,來聲明AccessibilityService的相關(guān)屬性,如監(jiān)聽的事件類型、反饋方式等。
?安全性與進(jìn)程間通信:
?由于不同的應(yīng)用運(yùn)行在各自的進(jìn)程中,Android使用AIDL(Android Interface Definition Language)來實(shí)現(xiàn)進(jìn)程間通信(IPC)。這確保了AccessibilityService能夠安全地與AMS和其他系統(tǒng)組件通信。
總結(jié)來說,Android AccessibilityService通過監(jiān)聽系統(tǒng)事件、與AMS進(jìn)行通信,并允許開發(fā)人員自定義事件處理邏輯,為那些有操作障礙的用戶提供了更好的設(shè)備使用體驗(yàn)。
未來展望規(guī)劃
經(jīng)過一年多的發(fā)展,不管從產(chǎn)品體驗(yàn)上還是技術(shù)架構(gòu)上存在著一些不足,需要面向用戶優(yōu)化用戶體驗(yàn),優(yōu)化技術(shù)架構(gòu)和性能,不斷提升用戶體驗(yàn),滿足業(yè)務(wù)運(yùn)營需求。將借助AI提升RPA軟件機(jī)器人的自主學(xué)習(xí)和決策能力,提升機(jī)器人的工作效率,使其能夠處理更深層次的業(yè)務(wù)流程;與AI技術(shù)等深度融合,實(shí)現(xiàn)更深度的自動(dòng)化和智能化,提供更智能的私域運(yùn)營服務(wù)。
審核編輯 黃宇
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28379瀏覽量
206908 -
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268874 -
AMS
+關(guān)注
關(guān)注
10文章
212瀏覽量
87018
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論