欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
自動(dòng)化篇 - 黑客們使用的自動(dòng)化方案,很多人還不知道

第一時(shí)間獲取Python技術(shù)干貨!

閱讀文本大概需要 8 分鐘。

聊到 App 端的自動(dòng)化,大家能想到的可能是 Appium、UIAutomator2、Airtest 等一系列自動(dòng)化框架。

Android 系統內置了一個(gè) 無(wú)障礙服務(wù),能完成一系列自動(dòng)化操作;相比其他自動(dòng)化框架,無(wú)障礙服務(wù)可以能完全脫離 PC 端,手機也不需要獲取 Root 權限。另外,無(wú)障礙服務(wù)操作起來(lái)更加高效、更加智能。

今天,我們來(lái)聊聊無(wú)障礙服務(wù),后續一系列項目實(shí)戰將使用這個(gè)方案來(lái)實(shí)現。


01
概念定義

谷歌官方對無(wú)障礙服務(wù)的定義如下:無(wú)障礙服務(wù)是一個(gè)為殘疾人或可能暫時(shí)無(wú)法與設備完全互動(dòng)的人提供用戶(hù)界面擴展功能的應用程序無(wú)障礙服務(wù)提供了一個(gè)服務(wù),方便我們操作一些應用完成一系列定義好的操作。

很多手機廠(chǎng)商內置的搶紅包提醒功能就是利用 Android 系統提供的無(wú)障礙服務(wù)實(shí)現的。

02
使用方法

要開(kāi)啟無(wú)障礙服務(wù),只需要 5 個(gè)簡(jiǎn)單的步驟即可實(shí)現。

  1. 使用 Android Studio 新建一個(gè) Android 項目

  2. 創(chuàng )建無(wú)障礙服務(wù)的配置文件

  3. 創(chuàng )建一個(gè)無(wú)障礙服務(wù)的子類(lèi),并配置 AndroidManifest 文件

  4. 重寫(xiě)服務(wù)的方法,針對頁(yè)面變化、內容變化、通知變化,編寫(xiě)業(yè)務(wù)邏輯

  5. 開(kāi)啟無(wú)障礙服務(wù)

無(wú)障礙服務(wù)配置文件 可以配置無(wú)障礙服務(wù)監聽(tīng)的應用和事件。

其中,packageNames 監聽(tīng)的應用程序對象的應用包名;accessibilityEventTypes 指定要監聽(tīng)的事件類(lèi)型;description 為無(wú)障礙服務(wù)的描述信息;notificationTimeout 是事件發(fā)送的時(shí)間間隔,一般默認為 10毫秒。

比如,微信的typeWindowStateChanged、typeWindowContentChanged 兩個(gè)事件,事件發(fā)送時(shí)間為 100 毫秒。

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeWindowStateChanged|typeWindowContentChanged"
    android:accessibilityFeedbackType="feedbackAllMask"
    android:canRetrieveWindowContent="true"
    android:description="@string/service_wechat_description"
    android:notificationTimeout="100"
    android:packageNames="com.tencent.mm" />

然后,新建一個(gè) 無(wú)障礙服務(wù)的子類(lèi),重寫(xiě)無(wú)障礙服務(wù)內的 3 個(gè)方法。

public class WeChatService extends AccessibilityService{
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event)
    
{
        //監聽(tīng)事件
    }

   @Override
    public void onInterrupt()
    
{
        //服務(wù)斷開(kāi)
    }

    @Override
    protected void onServiceConnected()
    
{
        super.onServiceConnected();
        //服務(wù)開(kāi)啟
    }
}

onAccessibilityEvent(event) 可以拿到對拿到目標應用配置文件中配置的事件類(lèi)型,針對每一個(gè)事件類(lèi)型,可以編寫(xiě)對應的應用邏輯。

onServiceConnected() 方法在無(wú)障礙服務(wù)被開(kāi)啟的同時(shí),會(huì )被觸發(fā)。

onInterrupt() 方法在服務(wù)被終端的時(shí)候觸發(fā)。

接著(zhù),需要在項目的配置文件 AndroidManifest.xml 中 配置服務(wù),并指定上面編寫(xiě)的配置文件。

<service
       android:name=".WeChatService"
       android:enabled="true"
       android:exported="true"
       android:label="@string/service_wechat_label"
       android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">

           <intent-filter>
                <action android:name="android.accessibilityservice.AccessibilityService" />
           </intent-filter>

           <meta-data
                android:name="android.accessibilityservice"
                android:resource="@xml/config_accessibility" />

</service>

最關(guān)鍵的是 編寫(xiě)事件的邏輯,根據配置文件中指定的事件類(lèi)型和頁(yè)面元素,包含類(lèi)型、包名、頂部 Activity 來(lái)編寫(xiě)響應的邏輯。

比如,要實(shí)現搶紅包的功能,就需要對頁(yè)面更新和內容更新兩個(gè)事件進(jìn)行處理,如果頁(yè)面元素中出現了紅包的標識,就獲取到紅包所在的元素,執行點(diǎn)擊操作,就可以實(shí)現搶紅包的這一操作。

最后,就是 打開(kāi)無(wú)障礙服務(wù)。

在布局文件中放一個(gè)按鈕,判斷無(wú)障礙服務(wù)是否打開(kāi),如果沒(méi)有打開(kāi),就跳到無(wú)障礙服務(wù)設置界面,手動(dòng)打開(kāi)即可。

/**
  * 檢查當前無(wú)障礙服務(wù)是否開(kāi)啟
  *
  * @param serviceName 服務(wù)名稱(chēng)
  * @return 服務(wù)是否啟用
*/

@SuppressLint("LongLogTag")
public boolean checkAccessibilityEnabled(String serviceName)
{
    List<AccessibilityServiceInfo> accessibilityServices =
                mAccessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
    for (AccessibilityServiceInfo info : accessibilityServices)
    {
        Log.e("checkAccessibilityEnabled", info.getId());
        if (info.getId().equals(serviceName))
        {
            return true;
        }
    }
    return false;
}

03補充一下




上面的步驟介紹了使用無(wú)障礙服務(wù)的完整流程,基于此,我們使用一部手機,就能完成應用內大部分的自動(dòng)化操作。

后續我將利用 一系列項目,帶大家一步步地進(jìn)行學(xué)習和項目實(shí)戰。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Android開(kāi)發(fā)者指南 -Bound服務(wù)
Android Service兩種啟動(dòng)方式詳解(總結版)
Android ServiceConnection
深入理解Android的startservice和bindservice
Android中bindService的使用及Service生命周期
運維筆記:Windows下如何實(shí)現nginx服務(wù)自啟動(dòng),看完你就會(huì )了!
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久