Skip to content

Commit 16bb584

Browse files
committed
perf: adb finder skip accurate serials
1 parent 2699a0c commit 16bb584

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

source/MaaToolkit/AdbDevice/AdbDeviceFinder.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ std::vector<AdbDevice> AdbDeviceFinder::find() const
3535
continue;
3636
}
3737

38-
res = find_specified(e.adb_path, e);
38+
res = find_specified(e.adb_path, accurate_serials, e);
3939
for (auto& dev : res) {
4040
if (accurate_serials.count(dev.serial)) {
4141
continue;
@@ -45,7 +45,7 @@ std::vector<AdbDevice> AdbDeviceFinder::find() const
4545
}
4646

4747
if (auto env_adb = boost::process::search_path("adb"); std::filesystem::exists(env_adb)) {
48-
auto res = find_specified(env_adb);
48+
auto res = find_specified(env_adb, accurate_serials);
4949
for (auto& dev : res) {
5050
if (accurate_serials.count(dev.serial)) {
5151
continue;
@@ -58,7 +58,10 @@ std::vector<AdbDevice> AdbDeviceFinder::find() const
5858
return result;
5959
}
6060

61-
std::vector<AdbDevice> AdbDeviceFinder::find_specified(const std::filesystem::path& adb_path, const Emulator& emulator) const
61+
std::vector<AdbDevice> AdbDeviceFinder::find_specified(
62+
const std::filesystem::path& adb_path,
63+
const std::unordered_set<std::string>& exclude_serials,
64+
const Emulator& emulator) const
6265
{
6366
LogFunc << VAR(adb_path);
6467

@@ -67,6 +70,10 @@ std::vector<AdbDevice> AdbDeviceFinder::find_specified(const std::filesystem::pa
6770
auto serials = find_serials_by_adb_command(adb_path);
6871

6972
for (const std::string& ser : serials) {
73+
if (exclude_serials.count(ser)) {
74+
LogInfo << "skip excluded serial" << VAR(ser);
75+
continue;
76+
}
7077
auto res_opt = try_device(adb_path, ser, emulator);
7178
if (!res_opt) {
7279
continue;

source/MaaToolkit/AdbDevice/AdbDeviceFinder.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <filesystem>
44
#include <string>
55
#include <unordered_map>
6+
#include <unordered_set>
67
#include <vector>
78

89
#include <meojson/json.hpp>
@@ -43,7 +44,10 @@ class AdbDeviceFinder
4344

4445
public:
4546
std::vector<AdbDevice> find() const;
46-
std::vector<AdbDevice> find_specified(const std::filesystem::path& adb_path, const Emulator& emulator = {}) const;
47+
std::vector<AdbDevice> find_specified(
48+
const std::filesystem::path& adb_path,
49+
const std::unordered_set<std::string>& exclude_serials = {},
50+
const Emulator& emulator = {}) const;
4751

4852
protected:
4953
virtual const EmulatorConstDataMap& get_emulator_const_data() const { return kEmptyEmulatorConstDataMap; }

0 commit comments

Comments
 (0)