制作一个安卓自动点击APP的原理是模拟用户手动点击屏幕的操作,通过代码模拟点击事件从而实现自动化操作。下面我将介绍如何制作一个简单的安卓自动点击APP。
步骤一:新建工程
打开Android Studio,点击File > New > New Project创建一个新工程,填写相关信息。
步骤二:创建布局文件
在工程中创建一个布局文件button.xml,并添加一个按钮。
android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
步骤三:添加点击事件
在MainActivity中添加点击事件,通过获取屏幕尺寸和坐标来实现模拟点击。
public class MainActivity extends AppCompatActivity {
private Button mBtnStart;
private int mScreenWidth;
private int mScreenHeight;
private Handler mHandler = new Handler();
private boolean mIsClicking = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics);
mScreenWidth = metrics.widthPixels;
mScreenHeight = metrics.heightPixels;
mBtnStart = (Button) findViewById(R.id.btn_start);
mBtnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mIsClicking = !mIsClicking;
if (mIsClicking) {
mHandler.post(mRunnable);
mBtnStart.setText("停止点击");
} else {
mHandler.removeCallbacks(mRunnable);
mBtnStart.setText("开始点击");
}
}
});
}
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
click(mScreenWidth / 2, mScreenHeight / 2);
mHandler.postDelayed(this, 1000);
}
};
private void click(int x, int y) {
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
String cmd = "input tap " + x + " " + y + "\n";
os.writeBytes(cmd);
os.flush();
os.writeBytes("exit\n");
os.flush();
os.close();
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这里我们通过点击按钮的事件来切换开始/停止自动点击操作。在自动点击任务开始后我们会不断调用click()方法模拟点击屏幕,这里我们使用Process类执行shell命令,执行su命令获取root权限,然后使用input tap 命令模拟点击事件。
步骤四:运行APP
运行程序,点击“开始点击”按钮,程序会开始模拟点击操作。
结束语:
这就是制作一个简单的安卓自动点击APP的一些简单步骤介绍,这个app对于自动化测试,一些重复性操作等都有很好的帮助作用。不过需要注意的是,由于这个app需要获取root权限,需要非常小心使用。