Android 100+行實現本地跳一跳輔助(不需要連線電腦)

lvkaixuan發表於2018-01-05

看到GitHub上已經很多微信跳一跳的輔助了,但是都需要依賴PC端,昨天想著能不能只利用安卓本地來寫一款輔助,先來看效果:


Android 100+行實現本地跳一跳輔助(不需要連線電腦)

實現思路

  • 透明懸浮窗
  • 手指滑動通過onTouch獲取滑動的間距
  • 按比例計算出需要長按的時間
  • 使用shell命令模擬長按(需要ROOT許可權)

主要程式碼

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN: //按下
            Log.d(TAG, "開始位置: " + event.getRawX() + " " + event.getRawY());
            mStartX = event.getRawX();
            mStartY = event.getRawY();
            break;
        case MotionEvent.ACTION_UP: //鬆開
            Log.d(TAG, "結束位置: " + event.getRawX() + " " + event.getRawY());
            float endX = event.getRawX();
            float endY = event.getRawY();
            //三角形邊長1
            float length1 = Math.abs(endX - mStartX);
            //三角形邊長2
            float length2 = Math.abs(endY - mStartY);
            //通過勾股定理計算間距
            int distance = 
                    (int) Math.sqrt(Math.pow(length1, 2) + Math.pow(length2, 2));
            Log.d(TAG, "距離: " + distance);
            int temp = (int) (distance * 1.44); //這裡需要多嘗試幾次 找到最佳時間
            exec("input swipe 600 1800 600 1800 " + (temp) + "\n");
            break;
    }
    return true;
}複製程式碼


專案

   Android 100+行實現本地跳一跳輔助(不需要連線電腦)

感謝




相關文章