推薦一款好用且能兼職賺錢的自動化工具 - Hamibot


1. 前言

大家好,我是安果!

最近發現一款神器「 Hamibot 」,它是一款 Android 端的自動化工具,它基於 AutoJS 源碼進行的二次開發

官方網站:https://docs.hamibot.com/

Hamibot 腳本市場提供了很多腳本,我們都可以免費導入進行試用

首先,我們在 PC Web 的控制台添加一個機器人,然后使用手機通過「 配對碼 」進行配對,接着從腳本市場選擇一個功能腳本導入,最后在控制台運行腳本就可以在手機上運行一系列自動化操作了

image

當然,我們也可以根據官方文檔編寫一些實用的腳本上傳到平台上,獲取一些佣金提成

由於 Hamibot 基於 AutoJS,語法都大同小異,所以本篇文章將只介紹 Hamibot 一些實用的使用技能

2. 實用技能

2-1  App 保活在線

自動化腳本運行實際上是 App 接受到 Web 端 Hamibot 控制台發送的指令,進而驅動手機進行的一系列動作,所以保證 Hamibot App 在后台一直運行變得非常重要

程序保活主要包含 6 個方面,分別是:

  • 前台服務

    打開 Hamibot App,從側邊欄中開啟「 前台服務 」功能

  • 懸浮窗

    打開 Hamibot App,從側邊欄中開啟「 懸浮窗 」功能

  • 應用自啟動

    手機進入到設置中,搜索關鍵字「 應用管理 」,選擇 Hamibot 應用,開啟「 自啟動 」功能

  • 不鎖定屏幕

    首先手動開啟開發者選項( 不同廠商系統手機的開啟方式不一致,一般是在系統版本連續點擊多次就可以開啟開發者選項 ),然后在開發者選項中開啟「 不鎖定屏幕 」功能,這樣在手機充電時,屏幕不會休眠

  • 關閉省電策略

    在手機應用設置中,選擇省電策略為「 不限制 」,這樣 App 會在后台一直運行

  • 保證手機一直聯網

    只有手機一直聯網,Hamibot 控制台才能將指令傳輸給設備進行運行

2-2  啟動應用

Hamibot 中的 app 模塊提供了很多函數用於操作 App 應用

其中,啟動一個應用有 3 種方式

# 啟動應用的3種方式
# 方式一:通過應用的名稱
# 比如:某寶、某多、某條
app.launchApp('某寶');

# 方式二:通過應用的包名
# 包名通過adb命令或者Android Studio 去解析 APK 獲取
# 比如:啟動 Hamibot 應用
app.launch('com.hamibot.hamibot');

# 方式三:與第二種類似,全局函數
# 通過應用包名啟動應用
launchPackage('com.hamibot.hamibot');

2-3  觸摸操作

觸摸操作是基於屏幕坐標進行點擊、長按、滑動等操作,但是該操作需要 Android 7.0 以上或 Root 權限才能有效

PS:對於一些基於元素的點擊操作失效的場景,換成觸摸操作反而能很好的解決問題

// 使用觸摸操作點擊某個元素
// 獲取某個元素
var widget = id('xxx').findOne();

// 獲取其中心位置,執行點擊操作
click(widget.bounds().centerX(), widget.bounds().centerY());

2-4  控件操作

控件操作為編寫腳本的核心內容,AutoJS 和 Hamibot 官方文檔都非常的詳細地列出了 UiSelector、UiObject、UiCollection 的使用方法

官方文檔:

https://docs.hamibot.com/reference/widgetsBasedAutomation/

2-5  網絡請求

結合網絡請求,能將爬蟲與自動化完美地結合在一起

這里以常見的 GET、POST 請求為例

// 1-GET請求
// 網絡請求,獲取響應值
var r = http.get('www.baidu.com');
// 響應碼
log('code = ' + r.statusCode);
// 響應體(字符串)
log('html = ' + r.body.string());

// 2-POST 請求
var url = 'http://www.**.com/api/login';

//直接傳入一個字典作為參數
r = http.postJson(url, {
  username: 'xag',
  password: '123456'
});

//獲取請求的響應並彈出吐司
toastLog(r.body.string());

官網提供了網絡請求的基礎函數,大家可以自行去擴展使用

2-6  線程

腳本默認是在主線程中運行的,我們可以將一些耗時的操作添加到線程中執行

auto.waitFor();

//開啟一個子線程
threads.start(function() {
  //在新線程執行的代碼
  while (true) {
    log('子線程');
  }
});


//主線程
while (true) {
  log('腳本主線程');
}

3. 拓展一下

在實際使用 Hamibot 的過程中,發現其提供的定時任務沒有 AutoJS 使用起來方便

比如,如果我想固定在每一天的某個時間執行某個腳本,可惜的是,官方提供的任務功能沒有實現

image

這時候,我們就需要我們在代碼中自己去實現這個功能點了

function setScheduledTask(hour, minute, callTask) {
    let taskTime = new Date();
    taskTime.setHours(hour);
    taskTime.setMinutes(minute);
    let timeDiff = taskTime.getTime() - (new Date()).getTime(); // 獲取時間差
    timeDiff = timeDiff > 0 ? timeDiff : (timeDiff + 24 * 60 * 60 * 1000);
    setTimeout(function() {
        callTask(); 
        setInterval(callTask, 24 * 60 * 60 * 1000); // 24小時為循環周期
    }, timeDiff); 
}

//獲取配置文件中設置的時間(小時、分鍾)
const { hour,minute } = hamibot.env;
toastLog(hour); 
toastLog(minute)

function create_thread_and_do_something(){
        //定義子線程
        var my_thread = threads.start(function(){
                   console.log("開始執行子線程。 。。。")
                    ...
                        console.log("結束執行子線程。。。。")
        })
}

// 每天某個時間開啟一個子線程,執行一個任務
setScheduledTask(hour, minute, create_thread_and_do_something);

4. 最后

上面內容列出了使用 Hamibot 編寫自動化腳本需要掌握的一些功能點

Hamibot 和 AutoJS 的腳本語法基本類似,但是 Hamibot 在易用性、穩定性、群控方面更有優勢一點,更多復雜的功能大家可以自行去查閱官方文檔去拓展

如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續輸出更多優質文章的最強動力!

推薦閱讀

最全總結 | Android 系統抓包喂飯教程!

完整流程 | 閑魚哪些東西好賣?我幫你分析出來了!

教你用 Python 快速獲取相關概念股,輔助價值投資!

實用 | 盤點幾種解決 Chrome 占用內存大的實用方案!(文末送書)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM