java操控手机刷锦鲤看看(一个类似头条的赚钱app)

前提准备: 1.http://www.android-studio.org/ 下载手机android sdk manage,根据adb在电脑上的环境变量 2.手机 (我的是荣耀10 android 8.1.0 屏幕大小2280 1080) 3.查看robot类使用 ,查看手机 adb 简单语法

步骤:1.手机打开开发者模式,连到电脑 

2.电脑调到cmd模式,输入adb services 查看是否有手机接入(两个目的:1.检查adb可以看出是否好的2.可以看到手机的驱是否可以)

3.在idea输入一下代码(参数有你手机实际来调)

package org.pgj;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.*;

/**
 * @author Administrator
 * @date 2018/12/18 1:39
 */
@SpringBootApplication
public class App {
    private volatile static int second1 = 500;
    private static Robot robot;
    private static Thread thread = new Thread(() -> {

        startADB();

    });
    static {
        try {
            robot = new Robot();
        } catch (AWTException e) {
            e.printStackTrace();
        }
    }

    public enum State {
        YSE, NO
    }
    public static void main(String... args){
        drawFrame();
    }
    public static void drawFrame() {
        // 创建 JFrame 实例
        JFrame frame = new JFrame("Example");
        // Setting the width and height of frame
        frame.setSize(350, 150);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        frame.add(panel);
        placeComponents(panel);
        frame.setVisible(true);
    }
    private static void placeComponents(JPanel panel) {
        panel.setLayout(null);
        JLabel userLabel1 = new JLabel("刷新次数:");
        userLabel1.setBounds(10, 20, 80, 25);
        panel.add(userLabel1);

        /*
         * 创建文本域用于用户输入
         */
        final JTextField userText1 = new JTextField(20);
        userText1.setBounds(100, 20, 165, 25);
        userText1.setText("500");
        panel.add(userText1);

        // 创建运行按钮
        JButton loginButton = new JButton("开始");
        loginButton.setBounds(150, 60, 80, 25);
        panel.add(loginButton);
        loginButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                second1= Integer.valueOf(userText1.getText());
                if(!thread.isAlive()){
                   thread.start();
               }

            }
        });
    }
    public static void startADB()  {
        try {
            robot = new Robot();
        } catch (AWTException e) {
            e.printStackTrace();
        }
        robot.setAutoDelay(100);
        pressCMDEdit();
        pressADBEdit();

        for (int i = 0; i < second1; i++) {
            pressFirstTap();
            pressSwipe();
            robot.delay(100);
            pressFlassh();
        }
    }

    /*
     * 单击
     * */
    private static void pressMeta(int key) {
        robot.keyPress(key);
        robot.keyRelease(key);
    }
    private static void pressString(int... keys)  {
        for (int i = 0; i < keys.length; i++) {
            if (keys[i] == 0) {
                continue;
            }
            pressMeta(keys[i]);
        }
        pressMeta(KeyEvent.VK_ENTER);
        robot.delay(50);
    }
    private static int[] convertStrsToInts(String strs) {
        int[] targe = new int[100];
        Class<KeyEvent> keyEventClass = KeyEvent.class;
        Field[] fields = keyEventClass.getDeclaredFields();
        Map<String, Integer> fieldMap = getFieldMap(fields);
        for (int i = 0; i < strs.length(); i++) {
            String targeName = String.valueOf(strs.charAt(i));
            if (targeName.equals(" ")) {
                targe[i] = KeyEvent.VK_SPACE;
                continue;
            }
            Integer targeInteger = fieldMap.get(targeName);
            if (targeInteger == null) {
                System.out.println(targeName);
                continue;
            }
            targe[i] = targeInteger.intValue();
        }
        return targe;
    }

    public static Map<String, Integer> getFieldMap(Field[] fields) {
        Map<String, Integer> map = new HashMap<>();
        for (Field field : fields) {
            field.setAccessible(true);
            if (field.getType() == int.class && Modifier.isStatic(field.getModifiers())) {
                String fieldName = field.getName();
                int i = fieldName.lastIndexOf("_");
                if (i == 0 || i < 0) {
                    continue;
                }
                ;
                String targeName = fieldName.substring(i + 1, fieldName.length()).toLowerCase();
                try {
                    int keyValue = field.getInt(KeyEvent.class);
                    map.put(targeName, keyValue);
                } catch (IllegalAccessException e) {
                    continue;
                }
            }
        }
        return map;
    }

    /*
     * 快捷键
     * */
    private static void pressTwoMeta(int... keys) {
        for (int i = 0; i < keys.length; i++) {
            if (keys[i] == 0) {
                continue;
            }
            robot.keyPress(keys[i]);
        }
        for (int i = 0; i < keys.length; i++) {
            if (keys[i] == 0) {
                continue;
            }
            robot.keyRelease(keys[i]);
        }
        robot.delay(50);


    }

    /*
     * 进入cmd编辑页面
     * */
    private static void pressCMDEdit(){
        pressTwoMeta(KeyEvent.VK_WINDOWS, KeyEvent.VK_R);
        pressString(convertStrsToInts("cmd"));
    }

    /*
     * 进入ADB编辑页面
     * */
    private static void pressADBEdit()  {
        pressString(convertStrsToInts("adb shell"));
    }

    /*下滑
     * */
    private static void pressSwipe()  {
        for (int i = 0; i < 13; i++) {

            pressString(convertStrsToInts("input swipe 400 1000 400 100 1000 "));
            pressSometimeView();
            if (i == 1) {
                pressString(convertStrsToInts("input tap 400 800"));
            }
        }
        robot.delay(100);
        pressString(convertStrsToInts("input tap 50 200"));
    }

    private static void pressFlassh()  {
        pressString(convertStrsToInts("input swipe 400 400 400 1000 150"));
    }

    /*
     * 点击第一行广告
     * */
    private static void pressFirstTap()  {
        pressString (convertStrsToInts("input tap 400 400"));
    }
/*处理偶尔出现的彩蛋
* */
    private static  void pressSometimeView(){
///
}
}

唉,随便写写玩玩,沾点外挂的边!后续努力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你想克服看手机视频的习惯,你可以尝试以下方法: 1. 明确目标:为什么你想克服这个习惯?将你的目标写下来,并且每天提醒自己。 2. 设定规则:规定你的手机使用时间,并且遵守这些规则。例如,每天只能在某个时间段使用手机。 3. 寻找替代活动:当你想看手机时,找一些替代性的活动来消遣。例如,阅读书籍、散步、与朋友聊天等。 4. 寻求帮助:找一个朋友或家人帮你监督,或者咨询专业人士的帮助。 5. 注意自己的情绪:当你想看手机时,注意你的情绪。如果你感到孤独、沮丧或者无聊,试着解决这些情绪,而不是用手机来逃避它们。 希望这些建议能帮到你。 ### 回答2: 想要克服看手机视频的习惯,可以尝试以下几种方法。 首先,意识到手机视频的习惯对自己的生活造成的负面影响。久坐、缺乏运动、眼睛疲劳和社交隔离等问题都可能是该习惯的后果。认识到这些负面影响,可以激发你改变的动力。 其次,设定明确的目标和时间表。制定一个克服手机视频习惯的计划,并将其明确地写下来。例如,每天只允许自己在特定的时间段内观看视频,或者设定一个每天只能看一小时视频的限制。坚守这些规则,逐渐减少看视频的时间。 第三,寻找替代活动。找到一些能够填补你看手机视频时间的其他活动,例如读书、锻炼、学习新技能或者与朋友和家人进行交流。将注意力转移到更有意义和有益的活动上,逐渐减少对手机视频的依赖。 第四,调整手机使用习惯。将手机设置为黑白屏或者开启灰度模式,可以减少手机屏幕对你的吸引力。此外,关闭手机上的自动播放功能,这样每次打开手机都不会自动播放视频。还可以把手机放在远离床头的地方,减少在床上使用手机的机会。 最后,寻求外部支持。告诉你的家人、朋友和同事关于你想改变手机视频习惯的决心,并请求他们的帮助和监督。他们可以提醒你,并给予支持和鼓励。 改变习惯需要时间和坚持,所以要有耐心。遵循以上方法,逐渐减少手机视频的习惯,你将能够释放更多时间去从事更有意义和有益的活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值