This commit is contained in:
2021-09-22 10:02:44 +08:00
commit f298a018c6
729 changed files with 56782 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
package com.derry.wechat;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.derry.login", appContext.getPackageName());
}
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.derry.wechat">
<application
android:allowBackup="true"
android:icon="@mipmap/atom_logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/atom_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".W_MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".WeChatPlate"/>
</application>
</manifest>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.derry.wechat.debug">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Login_DebugActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

View File

@@ -0,0 +1,111 @@
package com.derry.wechat;
import android.os.Message;
import android.util.Log;
import android.view.accessibility.AccessibilityNodeInfo;
import com.levine.abllib.AblStepBase;
import com.levine.abllib.AblStepHandler;
import com.levine.abllib.AblSteps;
import com.levine.abllib.callback.AniCallBack;
import com.levine.abllib.callback.AnisCallBack;
import com.levine.abllib.utils.AblViewUtil;
import java.util.List;
public class TestAblStep1 extends AblStepBase {//微信8.0.7
int i = 0;
@Override
public void onStep(int step, Message msg) {
switch (step){
case AblSteps.STEP_1://找到更多选项
AblViewUtil.findById("com.tencent.mm:id/fcu", 0, new AniCallBack() {
@Override
public void succ(AccessibilityNodeInfo info) {
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
AblStepHandler.sendMsg(AblSteps.STEP_2);
Log.d("-----","i="+i);
}
});
break;
case AblSteps.STEP_2://找到添加联系人
AblViewUtil.findById("com.tencent.mm:id/h8v", 1, new AniCallBack() {
@Override
public void succ(AccessibilityNodeInfo info) {
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
AblStepHandler.sendMsg(AblSteps.STEP_3);
}
});
break;
case AblSteps.STEP_3://通过通讯录添加
AblViewUtil.findById("android:id/list", 0, new AniCallBack() {
@Override
public void succ(AccessibilityNodeInfo info) {
info.getChild(7).performAction(AccessibilityNodeInfo.ACTION_CLICK);
AblStepHandler.sendMsg(AblSteps.STEP_4);
}
});
break;
case AblSteps.STEP_4://按顺序点击联系人
AblViewUtil.findById("com.tencent.mm:id/dal", new AnisCallBack() {
@Override
public void succ(List<AccessibilityNodeInfo> infos) {
if ( infos.get(0).isClickable() && infos.size() != 0){
infos.get(0).performAction(AccessibilityNodeInfo.ACTION_CLICK);
} else if (infos.get(1).isClickable() && infos.size() != 0){
infos.get(1).performAction(AccessibilityNodeInfo.ACTION_CLICK);
} else if (infos.get(2).isClickable() && infos.size() != 0){
infos.get(2).performAction(AccessibilityNodeInfo.ACTION_CLICK);
} else if (infos.get(3).isClickable() && infos.size() != 0){
infos.get(3).performAction(AccessibilityNodeInfo.ACTION_CLICK);
} else if (infos.get(4).isClickable() && infos.size() != 0){
infos.get(4).performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
i++;
AblStepHandler.sendMsg(AblSteps.STEP_5);
}
});
break;
case AblSteps.STEP_5://发送请求
AblViewUtil.findById("com.tencent.mm:id/d4y", 0, new AniCallBack() {
@Override
public void succ(AccessibilityNodeInfo info) {
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
AblStepHandler.sendMsg(AblSteps.STEP_6);
}
@Override
public void fail() {//获取该界面失败时处理(有可能是被拉入了黑名单时)
AblViewUtil.findById("com.tencent.mm:id/ffp", 0, new AniCallBack() {
@Override
public void succ(AccessibilityNodeInfo info) {
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
AblStepHandler.sendMsg(AblSteps.STEP_4);
}
@Override
public void fail() {
AblStepHandler.sendMsg(AblSteps.STEP_4);
}
});
}
});
break;
case AblSteps.STEP_6://返回到通讯录列表
AblViewUtil.findById("com.tencent.mm:id/eh", 0, new AniCallBack() {
@Override
public void succ(AccessibilityNodeInfo info) {
info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
if (i<23){
AblStepHandler.sendMsg(AblSteps.STEP_7);
}
}
});
break;
case AblSteps.STEP_7:
AblViewUtil.scrollVertical(3,1);//滑动
AblStepHandler.sendMsg(AblSteps.STEP_4);
break;
}
}
}

View File

@@ -0,0 +1,14 @@
package com.derry.wechat;
import android.os.Message;
import com.levine.abllib.AblStepBase;
public class TestAblStep2 extends AblStepBase {
@Override
public void onStep(int step, Message msg) {
switch (step){
}
}
}

View File

@@ -0,0 +1,113 @@
package com.derry.wechat;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import androidx.appcompat.app.AppCompatActivity;
import com.blankj.utilcode.util.ToastUtils;
import com.levine.abllib.AblConfig;
import com.levine.abllib.AblService;
import com.levine.abllib.AblStepHandler;
import com.levine.abllib.AblSteps;
import com.levine.abllib.utils.AblUtil;
import com.xiangxue.arouter_annotation.ARouter;
/**
* xiaoading
*/
@ARouter(path = "/wechat/W_MainActivity")
public class W_MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.w_activity_main);
AblConfig.Builder()
.setMonitoringPackageNames("com.tencent.mm")//微信包
.setLogTag("DDD")//logtag不设置默认是abllib
.setStepMsgDelayMillis(3000)//步骤延迟时间
.setFindViewMillisInFuture(10000)//寻找界面超时时间
.setFindViewCountDownInterval(200)//寻找界面间隔时间
.build().init();
AblStepHandler.getInstance().initStepClass(new TestAblStep1());
findViewById(R.id.btn_1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblUtil.openAccessibilitySettings();
}
});
findViewById(R.id.btn_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblUtil.addSuspensionWindowView(W_MainActivity.this,initWindowView());
}
});
findViewById(R.id.btn_3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblUtil.openDrawOverlaysAnth(W_MainActivity.this);
}
});
findViewById(R.id.btn_4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (AblUtil.isAccessibilityServiceOpen(W_MainActivity.this)) {
AblStepHandler.getInstance().setStop(false);
AblStepHandler.sendMsg(AblSteps.STEP_1);
} else {
ToastUtils.showShort("请先开启辅助服务");
}
}
});
findViewById(R.id.btn_5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblStepHandler.getInstance().setStop(true);
}
});
}
private View initWindowView(){//悬浮窗
View view = View.inflate(this, R.layout.view_test_w, null);
view.findViewById(R.id.fu_btn_1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (AblUtil.isAccessibilityServiceOpen(W_MainActivity.this)) {
AblStepHandler.getInstance().setStop(false);
AblStepHandler.sendMsg(AblSteps.STEP_1);
} else {
ToastUtils.showShort("请先开启辅助服务");
}
}
});
view.findViewById(R.id.fu_btn_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
windowManager.removeView(view);
}
});
view.findViewById(R.id.fu_btn_3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblStepHandler.getInstance().setStop(true);
}
});
view.findViewById(R.id.fu_btn_4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
AblService.getInstance().disableSelf();
}
}
});
return view;
}
}

View File

@@ -0,0 +1,48 @@
package com.derry.wechat;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.PopupWindow;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class WeChatPlate extends AppCompatActivity {
private PopupWindow mPopCut;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_wechatplate);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
Button mBtnCut = findViewById(R.id.cut);
mBtnCut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@SuppressLint("InflateParams") View v = getLayoutInflater().inflate(R.layout.layout_pop,null);
mPopCut = new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
mPopCut.setTouchable(true);
mPopCut.setFocusable(true);
mPopCut.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM,0,0);
}
});
Button mBtnRecommend = findViewById(R.id.recommed);
mBtnRecommend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(WeChatPlate.this,W_MainActivity.class);
startActivity(intent);
}
});
}
}

View File

@@ -0,0 +1,4 @@
package com.derry.wechat.debug;
public class A {
}

View File

@@ -0,0 +1,4 @@
package com.derry.wechat.debug;
public class B {
}

View File

@@ -0,0 +1,4 @@
package com.derry.wechat.debug;
public class C {
}

View File

@@ -0,0 +1,4 @@
package com.derry.wechat.debug;
public class D {
}

View File

@@ -0,0 +1,112 @@
package com.derry.wechat.debug;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.blankj.utilcode.util.ToastUtils;
import com.derry.wechat.TestAblStep1;
import com.levine.abllib.AblConfig;
import com.levine.abllib.AblService;
import com.levine.abllib.AblStepHandler;
import com.levine.abllib.AblSteps;
import com.levine.abllib.utils.AblUtil;
// import com.derry.login.R; // 不对了
public class Login_DebugActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.w_activity_debug);
AblConfig.Builder()
.setMonitoringPackageNames("com.tencent.mm")//微信包
.setLogTag("DDD")//logtag不设置默认是abllib
.setStepMsgDelayMillis(3000)//步骤延迟时间
.setFindViewMillisInFuture(10000)//寻找界面超时时间
.setFindViewCountDownInterval(200)//寻找界面间隔时间
.build().init();
AblStepHandler.getInstance().initStepClass(new TestAblStep1());
findViewById(R.id.btn_1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblUtil.openAccessibilitySettings();
}
});
findViewById(R.id.btn_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblUtil.addSuspensionWindowView(Login_DebugActivity.this,initWindowView());
}
});
findViewById(R.id.btn_3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblUtil.openDrawOverlaysAnth(Login_DebugActivity.this);
}
});
findViewById(R.id.btn_4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (AblUtil.isAccessibilityServiceOpen(Login_DebugActivity.this)) {
AblStepHandler.getInstance().setStop(false);
AblStepHandler.sendMsg(AblSteps.STEP_1);
} else {
ToastUtils.showShort("请先开启辅助服务");
}
}
});
findViewById(R.id.btn_5).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblStepHandler.getInstance().setStop(true);
}
});
}
private View initWindowView(){//悬浮窗
View view = View.inflate(this, R.layout.view_test_w, null);
view.findViewById(R.id.fu_btn_1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (AblUtil.isAccessibilityServiceOpen(Login_DebugActivity.this)) {
AblStepHandler.getInstance().setStop(false);
AblStepHandler.sendMsg(AblSteps.STEP_1);
} else {
ToastUtils.showShort("请先开启辅助服务");
}
}
});
view.findViewById(R.id.fu_btn_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
windowManager.removeView(view);
}
});
view.findViewById(R.id.fu_btn_3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AblStepHandler.getInstance().setStop(true);
}
});
view.findViewById(R.id.fu_btn_4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
AblService.getInstance().disableSelf();
}
}
});
return view;
}
}

View File

@@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M13,8.2l-1,-1 -4,4 -4,-4 -1,1 4,4 -4,4 1,1 4,-4 4,4 1,-1 -4,-4 4,-4zM19,1H9c-1.1,0 -2,0.9 -2,2v3h2V4h10v16H9v-2H7v3c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-2 -2,-2z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M8,5v14l11,-7z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M13,3h-2v10h2L13,3zM17.83,5.17l-1.42,1.42C17.99,7.86 19,9.81 19,12c0,3.87 -3.13,7 -7,7s-7,-3.13 -7,-7c0,-2.19 1.01,-4.14 2.58,-5.42L6.17,5.17C4.23,6.82 3,9.26 3,12c0,4.97 4.03,9 9,9s9,-4.03 9,-9c0,-2.74 -1.23,-5.18 -3.17,-6.83z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M6,6h12v12H6z"/>
</vector>

View File

@@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="#ff20313f"/>
<corners android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topRightRadius="20dp"
android:topLeftRadius="20dp"/>
</shape>
</item>
</selector>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#ff08b981"/>
<corners android:topLeftRadius="13dp"
android:topRightRadius="13dp"
android:bottomLeftRadius="13dp"
android:bottomRightRadius="13dp"/>
</shape>
</item>
</selector>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_pop"
android:gravity="center_horizontal">
<TextView
android:id="@+id/wechat_cut"
android:layout_width="match_parent"
android:layout_height="24dp"
android:text="微信"
android:textColor="#ffffffff"
android:textSize="17sp"
android:layout_marginTop="19.5dp"
android:gravity="center"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/douyin_cut"
android:layout_width="match_parent"
android:layout_height="24dp"
android:text="抖音"
android:textColor="#ffffffff"
android:textSize="17sp"
android:gravity="center"
android:layout_below="@id/wechat_cut"
android:layout_marginTop="33.5dp"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/red_cut"
android:layout_width="match_parent"
android:layout_height="24dp"
android:text="小红书"
android:textColor="#ffffffff"
android:textSize="17sp"
android:gravity="center"
android:layout_below="@id/douyin_cut"
android:layout_marginTop="33dp"
android:layout_marginBottom="22dp"
tools:ignore="HardcodedText" />
</RelativeLayout>

View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/zu_9308"
tools:ignore="ExtraText">
<RelativeLayout
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="56dp"
android:layout_marginLeft="27dp"
android:background="@drawable/mybutton"
tools:ignore="RtlHardcoded">
<Button
android:id="@+id/recommed"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="#00000000"/>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="38.4dp"
android:layout_height="38.4dp"
android:layout_centerInParent="true"
android:src="@mipmap/recommend"/>
</RelativeLayout>
<TextView
android:layout_width="60dp"
android:layout_height="14dp"
android:layout_marginTop="121dp"
android:layout_marginLeft="32dp"
android:text="通讯录好友"
android:textColor="#ffffffff"
android:textSize="10sp"
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
<RelativeLayout
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="56dp"
android:layout_marginLeft="114dp"
android:background="@drawable/mybutton"
tools:ignore="RtlHardcoded">
<Button
android:id="@+id/share"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="#00000000"/>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="38.4dp"
android:layout_height="38.4dp"
android:layout_centerInParent="true"
android:src="@mipmap/zu_9309"/>
</RelativeLayout>
<TextView
android:layout_width="85dp"
android:layout_height="14dp"
android:layout_marginTop="121dp"
android:layout_marginLeft="106.5dp"
android:text="直播间/视频分享"
android:textColor="#ffffffff"
android:textSize="10sp"
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
<RelativeLayout
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="704.5dp"
android:layout_marginLeft="27dp"
android:background="@drawable/mybutton"
tools:ignore="RtlHardcoded">
<Button
android:id="@+id/trick"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="#00000000"/>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="38.4dp"
android:layout_height="38.4dp"
android:layout_centerInParent="true"
android:src="@mipmap/zu_9309"/>
</RelativeLayout>
<TextView
android:layout_width="60dp"
android:layout_height="14dp"
android:layout_marginTop="769.5dp"
android:layout_marginLeft="37dp"
android:text="话术设置"
android:textColor="#ffffffff"
android:textSize="10sp"
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
<RelativeLayout
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="704.5dp"
android:layout_marginLeft="114dp"
android:background="@drawable/mybutton"
tools:ignore="RtlHardcoded">
<Button
android:id="@+id/system"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="#00000000"/>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="38.4dp"
android:layout_height="38.4dp"
android:layout_centerInParent="true"
android:src="@mipmap/zu_9309"/>
</RelativeLayout>
<TextView
android:layout_width="60dp"
android:layout_height="14dp"
android:layout_marginTop="769.5dp"
android:layout_marginLeft="124dp"
android:text="系统设置"
android:textColor="#ffffffff"
android:textSize="10sp"
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
<RelativeLayout
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="704.5dp"
android:layout_marginLeft="201dp"
android:background="@drawable/mybutton"
tools:ignore="RtlHardcoded">
<Button
android:id="@+id/cut"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="#00000000"/>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="38.4dp"
android:layout_height="38.4dp"
android:layout_centerInParent="true"
android:src="@mipmap/zu_9310"/>
</RelativeLayout>
<TextView
android:layout_width="60dp"
android:layout_height="14dp"
android:layout_marginTop="771dp"
android:layout_marginLeft="211dp"
android:text="切换平台"
android:textColor="#ffffffff"
android:textSize="10sp"
tools:ignore="HardcodedText,RtlHardcoded,SmallSp" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="94.85dp"
android:layout_height="74.11dp"
android:layout_marginTop="605.34dp"
android:layout_marginLeft="270.58dp"
android:src="@mipmap/way5398"
tools:ignore="RtlHardcoded" />
</RelativeLayout>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<com.getbase.floatingactionbutton.FloatingActionsMenu
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_labelStyle="@style/fab_labels_style"
app:fab_expandDirection="down"
tools:ignore="UnusedAttribute"
app:fab_addButtonSize="normal"
app:fab_labelsPosition="right"
app:fab_addButtonColorPressed="@color/white"
app:fab_addButtonPlusIconColor="@color/black">
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/fu_btn_1"
app:fab_title="开始"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_size="mini"
app:fab_icon="@drawable/ic_baseline_play_arrow_24"/>
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/fu_btn_2"
app:fab_title="关闭悬浮窗"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_size="mini"
app:fab_icon="@drawable/ic_baseline_phonelink_erase_24"/>
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/fu_btn_3"
app:fab_title="服务停止"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_size="mini"
app:fab_icon="@drawable/ic_baseline_stop_24"/>
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/fu_btn_4"
app:fab_title="关闭服务"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_size="mini"
app:fab_icon="@drawable/ic_baseline_power_settings_new_24"/>
</com.getbase.floatingactionbutton.FloatingActionsMenu>
</LinearLayout>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="30dp"
>
<Button
android:id="@+id/btn_1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="开启服务"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/btn_2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="开启悬浮窗"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/btn_3"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="开启悬浮窗权限"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/btn_4"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="开始"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/btn_5"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="停止"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="启用前,请关闭微信通知,将省电模式设置为无限制,给予自启动权限"
tools:ignore="HardcodedText" />
</LinearLayout>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="30dp"
>
<Button
android:id="@+id/btn_1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="开启服务"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/btn_2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="开启悬浮窗"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/btn_3"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="开启悬浮窗权限"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/btn_4"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="开始"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/btn_5"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="停止"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="启用前,请关闭微信通知,将省电模式设置为无限制,给予自启动权限"
tools:ignore="HardcodedText" />
</LinearLayout>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>

View File

@@ -0,0 +1,3 @@
<resources>
<string name="app_name">wechat</string>
</resources>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="fab_labels_style">
<item name="android:background">@color/white</item>
<item name="android:textColor">@color/black</item>
<item name="android:textSize">20sp</item>
<item name="android:textStyle">bold</item>
</style>
</resources>

View File

@@ -0,0 +1,10 @@
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>

View File

@@ -0,0 +1,17 @@
package com.derry.wechat;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}