DeviceAgent 51개 Manager 파일의 역할과 책임
기준:
a1-packages-mr6,quber/mr7,7695c9a85fedf6d756490e51c07f6e09f568a4bd. 추적 소스의 정적 분석이다. 미추적 TaskManagerClient 및 작업 산출물은 포함하지 않는다. APK·AOSP 빌드나 기기 동작 검증은 이번 분석 범위가 아니다.
기준 커밋: 7695c9a85fedf6d756490e51c07f6e09f568a4bd (quber/mr7).
git ls-tree로 기준 커밋에 추적된 경로를 열거한 뒤 각 파일을 git show로 읽은 정적 카탈로그다. 표의 소유 상태/실행은 소스에 선언·생성된 객체와 저장소만 적었으며, 장치가 실제로 동작했다는 뜻은 아니다. Handler는 명시된 경우에만 적고, 명시되지 않은 단순 singleton은 메모리 상태로 표시했다.
Manager를 수정하기 전에
Manager 수와 수정 범위는 비례하지 않는다. 먼저 기능별 수정 지도에서 실제 진입점을 찾고 공유 상태·정책의 영향을 확인한다. 아래 표의 빈 파일·TODO·단순 상태 저장소도 구별해 읽는다.
청정·이동·지도
| 클래스 (근거) | 책임 | 소유 상태·실행·저장소 | 주요 유입 → 유출 |
|---|---|---|---|
BaseCleaningManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/BaseCleaningManager.java:35, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/BaseCleaningManager.java:213) |
청정 파라미터·상태의 상위 조정, Basic/Moving 선택, 보고·정거장 복귀 조정 | enum singleton, 공유 HandlerThread/Handler를 생성해 하위 manager에 주입, CleaningTransaction·SKMPreferences |
DeviceControl/App 명령 → CmdPolicyManager, BasicCleaningManager, MovingCleaningManager, EventManager, LLM/Streaming/WSS |
BasicCleaningManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/BasicCleaningManager.java:23, :49) |
기본 청정 fan·공기질 모니터, pause/resume/시간 종료, 청정 보고 시각 | Base가 주입한 공유 HandlerThread를 사용하고 자체 소유하지 않음; air-quality·fan Handler, CleaningTransaction·CleaningReportManager |
Base → MCUFanBLDC, AirQualityManager, LCD/Event/DeviceControl callback |
MovingCleaningManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/MovingCleaningManager.java:27, :31) |
여러 area 이동→청정→복귀 상태 머신 | Base가 주입한 공유 HandlerThread를 사용하고 자체 소유하지 않음; transition Handler, area list/index·return/report 플래그, CleaningTransaction |
Base → MovingLocationManager, RobotMovementController, BasicCleaningManager, LCD/MCU/report callback |
AreaAICleaningManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/AreaAICleaningManager.java:25, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/AreaAICleaningManager.java:279) |
split-space별 회전·센서 측정·평균/최악 위치 산출 | lazy singleton, 전달받은 HandlerThread, 측정 배열·area 결과를 메모리에 보유 |
Moving/air-quality mapping → AMRMotor, MovingLocationManager, AirQualityManager, 결과 callback |
AirCleaningManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/AirCleaningManager.java:12, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/AirCleaningManager.java:34) |
구형/저수준 기본 fan 청정 API와 상태 callback | 일반 인스턴스, 3개 기본 Handler, mSpeed 메모리 |
호출자 → DeviceCleaning, AirQualityManager, 상태 callback |
FollowMeCleaningManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/FollowMeCleaningManager.java:10, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/FollowMeCleaningManager.java:14) |
Follow-me 청정 start/stop/pause/resume | lazy volatile singleton, air-quality HandlerThread/Handler, 상태 메모리 |
호출자 → AirQualityManager, MCUFanBLDC |
MapManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/map/MapManager.java:65, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/map/MapManager.java:86) |
암호화/SD 지도 로드, area 조회·삭제·편집 상태 | static INSTANCE 객체, room/area list 메모리, SKMPreferences, 지도 파일/keystore service |
DeviceControl/cleaning/moving → AMRMap, ScheduleDao, EncryptionServiceManager, filesystem |
MappingManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/map/MappingManager.java:11, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/map/MappingManager.java:23) |
매핑 5초 countdown, pause/resume/stop | lazy singleton, 전용 HandlerThread/Handler, status/countdown 메모리·SKMPreferences.IS_STARTMAPPING |
명령 → App callback/Event status |
MovingLocationManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/MovingLocationManager.java:34, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/MovingLocationManager.java:55) |
목적지 이동, 정거장 복귀, pause/resume 및 분야별 callback fan-out | lazy singleton, target area/position·keyword flags 메모리, Handler/AMR callback 경계 | cleaning/interaction/WSS/robot → AMRMotor, MapManager, RobotMovementController, 분야별 MovementCallback |
MovingServiceManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/MovingServiceManager.java:3) |
주석으로만 이동 서비스 종류를 표시하는 자리 | 빈 동작 클래스(5행, 필드/메서드 없음) | 유입·유출 없음 |
RobotStatusManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/RobotStatusManager.java:16, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/RobotStatusManager.java:18) |
mapping/edit/schedule/streaming/clean/move 상태를 문자열로 투영 | 상태를 소유하지 않는 static 계산기; SKMPreferences, StateManager, CleaningTransaction 읽기 |
상태 질의 → RobotMovementController, MapManager, EventManager |
AirQualityScanningManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/AirQualityScanningManager.java:5, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/AirQualityScanningManager.java:8) |
자동 공기질 호출 flag getter/setter | enum singleton, 자체 상태 없음; Simulator에 위임 | 호출자 → Simulator (비시뮬레이터 getter는 빈 문자열) |
장치·센서·화면
| 클래스 (근거) | 책임 | 소유 상태·실행·저장소 | 주요 유입 → 유출 |
|---|---|---|---|
MCUDataManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/item/mcu/MCUDataManager.java:17, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/item/mcu/MCUDataManager.java:23) |
MCU 송수신 buffer·통신 유효성·오류 polling·장치 callback 등록 | enum singleton, send/receive byte array, Handler(기본 null에서 생성 가능) | MCU protocol → ErrorHistoryManager, filter/tilt/fan/air-quality listeners |
AirQualityManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/AirQualityManager.java:36, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/AirQualityManager.java:159) |
센서값 보정·평가, snapshot·split 결과·청정 시간 계산 | enum singleton, ConcurrentHashMap/ArrayList snapshot, main Handler, Preferences |
MCU protocol/cleaning → CleaningReportManager, Settings/LED 및 monitor callback |
BatteryManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/BatteryManager.java:32, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/BatteryManager.java:35) |
battery 정보·충전/이동 가능성·사용량 평균 및 저전압 상태 | enum singleton, 수치/usage maps 메모리, SKMPreferences; isAMRMoveable()는 TODO로 항상 true인 구현 공백 |
AMR battery bundle → movement policy, error/event callback |
EyeLedManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/EyeLedManager.java:15, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/EyeLedManager.java:233) |
LED color/scene/brightness/mode와 장치 command | enum singleton, current color/scene/brightness/mode 메모리 | Event/Settings/WSS → MCUComm/AppInfo protocol |
FilterBodyManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/FilterBodyManager.java:34, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/FilterBodyManager.java:45) |
filter/cover status·용량·교체일·zero alert | enum singleton, main-looper Handler, SKMPreferences/filter usage |
MCU/filter/cleaning → error/event, SoundFlow/Settings |
LCDManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/LCDManager.java:39, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/LCDManager.java:161) |
LCD on/off, brightness, always-on/night/manual/off-station 상태 | enum singleton, HandlerThread/Handler·FileObserver, SettingPreferences/system settings |
cleaning/WSS/interaction/vision → SocLcdBrightness, Event/DeviceControl callback |
NetworkManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/NetworkManager.java:23, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/NetworkManager.java:26) |
Wi-Fi signal watcher 수명주기 | 일반 인스턴스, WifiSignalWatcher |
Context 초기화 → Android WifiManager/broadcast 및 watcher |
SocHeatManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/SocHeatManager.java:23, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/SocHeatManager.java:26) |
SoC 온도·fan RPM 감시와 과열/팬 오류 제어 | lazy singleton, 전용 HandlerThread/check Handler, 시간·RPM 상태 메모리 |
AppInfo vendor IDeviceManager → fan speed/error history |
UVLedManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/UVLedManager.java:15, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/UVLedManager.java:21) |
UV LED timer(110분 on/30분 off)와 오류 차단 | enum singleton, state/start time/error 메모리, Preferences 읽기 | timer/MCU protocol → MCUComm, error handler |
UsageTimeManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/UsageTimeManager.java:24, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/manager/UsageTimeManager.java:29) |
component별 사용시간 추적·30초 저장 | enum singleton, main Handler, concurrent usage map/AtomicLong, SKMPreferences |
start/stop tracking → persisted usage |
상태·상호작용·LLM·IoT
| 클래스 (근거) | 책임 | 소유 상태·실행·저장소 | 주요 유입 → 유출 |
|---|---|---|---|
EventManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/event/EventManager.java:16, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/event/EventManager.java:142) |
main/sub event state, LED priority와 product operation module 조정 | enum singleton, state/substate list 메모리 | cleaning/LLM/factory/selftest → EyeLedManager, SocHeatManager, event callbacks |
StateManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/event/StateManager.java:44, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/event/StateManager.java:74) |
main/sub state·wizard/mapping·caller death monitor와 차단 상태 | enum singleton, state flags 및 ConcurrentHashMap<IBinder.DeathRecipient,...> |
DeviceControl/Binder → modules, callback·death cleanup |
InterScheduleManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/interaction/InterScheduleManager.java:275, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/interaction/InterScheduleManager.java:335) |
welcome/wakeup/relax interaction schedule flow와 이동/action timeout | enum singleton, interaction HandlerThread + main handler, target/flow 메모리 |
schedule/alarm → MovingLocationManager, Action*, LLM/audio/status callback |
IotManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/iot/IotManager.java:4, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/iot/IotManager.java:7) |
reset 변경 flag 전달용 최소 상태 | enum singleton, isReset 문자열 메모리; 나머지는 주석 처리 |
module callback → getter/setter (실제 IoT 전송 없음) |
LlmManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/llm/LlmManager.java:17, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/llm/LlmManager.java:102) |
LLM status/voice/TTS/language/privacy·lock·weather 요청 facade | enum singleton, status/request fields·callback 메모리 | DeviceControl/interaction/OTA → AppCmd/AMR/Tilting 및 callback |
SoundFlowManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/system/SoundFlowManager.java:23, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/system/SoundFlowManager.java:66) |
mute/event mute, mode bitmask, DOA/1kHz tone, vendor sound service IPC | enum singleton, mode/status/callback 메모리 | LLM/OTA/Settings → vendor ISoundFlowService, module callback |
OTAManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/ota/OTAManager.java:8, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/ota/OTAManager.java:10) |
OTA mode flag; LLM stop/start 및 SoundFlow OTA bit side effect | enum singleton, boolean 메모리 | update command → LlmManager, SoundFlowManager |
TiltingManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/body/TiltingManager.java:32, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/body/TiltingManager.java:121) |
tilt 조건 집계·checker·start/stop/pause/resume | enum singleton, condition set/map·전용 handler 상태 | vision/movement/LLM/battery → MCUTiltLift, MCUFanBLDC, error/history |
WelcomeManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/body/WelcomeManager.java:5, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/body/WelcomeManager.java:8) |
GPS welcome 설정 getter/setter | enum singleton, 자체 저장소 없음 | caller → Simulator only; 비시뮬레이터 getter는 "" |
유지보수·보고·업데이트·스케줄
| 클래스 (근거) | 책임 | 소유 상태·실행·저장소 | 주요 유입 → 유출 |
|---|---|---|---|
DeviceUsageManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/DeviceUsageManager.java:8, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/DeviceUsageManager.java:8) |
battery/fan/motor/sensor/mic/speaker 누적 usage 읽기·lazy zero 초기화 | enum singleton, 별도 runtime writer 없음, SKMPreferences |
query → preference 문자열 |
ErrorHistoryManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/ErrorHistoryManager.java:21, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/ErrorHistoryManager.java:26) |
error occurred/resolved 기록·조회·삭제 | process singleton, Context/ContentResolver, external content://com.sk.airbot.provider.error/errors |
Error/MCU/heat → external Error Provider |
EventLoggingManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/EventLoggingManager.java:14, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/EventLoggingManager.java:17) |
boot/reboot/clean/selftest/OTA/error event 파일 기록 | enum singleton, file writer, /mnt/data3/logs/events |
module/error → filesystem event files |
FilterUsageManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/FilterUsageManager.java) |
빈 파일/구현 없음 | 파일 길이 0, 상태·thread·storage 없음 | 유입·유출 없음 |
PartReplacementManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/PartReplacementManager.java:10, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/maintenance/PartReplacementManager.java:35) |
교체 가능 부품 key 목록과 교체일 reset/get | enum singleton, SKMPreferences |
maintenance query/reset → preferences |
CleaningReportManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/report/CleaningReportManager.java:21, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/report/CleaningReportManager.java:24) |
area별 before/after air-quality·duration·notification bundle, 저장 | enum singleton, report fields/list 메모리, CleaningReportDao/AlertDao |
Basic/Moving/AirQuality → DB insert, IoT/Launcher bundle |
ScheduleManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/schedule/ScheduleManager.java:16, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/schedule/ScheduleManager.java:34) |
schedule CRUD/실행·다음 작업 조회 | enum singleton, schedule list/DB facade, ScheduleDao |
App/IoT → schedule DB와 Alarm/cleaning/interaction |
UpdateManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/update/UpdateManager.java:16, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/update/UpdateManager.java:28) |
AMR/MCU/EyeLED version check 및 timeout status | enum singleton, Handler, count/status 문자열 메모리 | update command → DeviceControlService/IAMRControl, status callback |
SensorCalibrationManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/calibration/SensorCalibrationManager.java:24, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/calibration/SensorCalibrationManager.java:42) |
sensitivity 저장, air-quality scheduled calibration, LADAR placeholder | enum singleton, main Handler/status, SettingPreferences 날짜 |
calibration command/alarm → MCU/AirQualityManager, Settings/Event/IoT |
MovingCalibrationManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/calibration/MovingCalibrationManager.java) |
빈 파일/구현 없음 | 파일 길이 0 | 유입·유출 없음 |
BootInitManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/boot/BootInitManager.java) |
빈 파일/구현 없음 | 파일 길이 0 | 유입·유출 없음 |
인식·스트리밍·WSS
| 클래스 (근거) | 책임 | 소유 상태·실행·저장소 | 주요 유입 → 유출 |
|---|---|---|---|
VisionAIManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/recognition/VisionAIManager.java:332, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/recognition/VisionAIManager.java:679) |
camera bind/enable, scenario confidence·detection flags, tilt/interaction report | lazy singleton, camera checker HandlerThread/Handler, detection state/time 메모리 | camera IVisionControl callback → WSS/cleaning/tilt/LCD/Event |
VoiceLocationRecogManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/recognition/VoiceLocationRecogManager.java) |
빈 파일/구현 없음 | 파일 길이 0 | 유입·유출 없음 |
StreamingManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/streaming/StreamingManager.java:36, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/streaming/StreamingManager.java:63) |
streaming start/stop transaction, front callback·upload/public-key/movement 결과 | enum singleton, StreamingIpcThread/StreamingWorker, transaction 메모리 |
DeviceControl → LLM/vitalsign/vision/LCD/tilt, front streaming IPC callback |
WssManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/wss/WssManager.java:68, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/wss/WssManager.java:170) |
WSS availability, start/stop/pause/resume, patrol·vision·event asset orchestration | enum singleton, WssIpc/background/move/schedule handlers, WssTransaction, RemoteCallbackList |
WSS Binder/App → moving/vision/LLM/LCD/WssEventAssetManager, remote clients |
MovingWssManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/wss/moving/MovingWssManager.java:19, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/wss/moving/MovingWssManager.java:27) |
WSS 전용 위치 목록 이동과 movement callback | 일반 인스턴스, target/area position list 메모리 | WSS → MovingLocationManager, WSS arrived callback |
WssEventAssetManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/wss/eventasset/WssEventAssetManager.java:20, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/wss/eventasset/WssEventAssetManager.java:34) |
EventAsset bind/capture, detection verify, clip/upload/recovery 세션 | 일반 인스턴스, WssEventAssetState·client·Listener, request/session 메모리 |
WSS/vision/EventAsset callback → IEventAssetService, verify/upload/recovery listener |
정책·자체 테스트 스텁
| 클래스 (근거) | 책임 | 소유 상태·실행·저장소 | 주요 유입 → 유출 |
|---|---|---|---|
CmdPolicyManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/policy/CmdPolicyManager.java:134, apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/policy/CmdPolicyManager.java:471) |
명령 진입·정지·복귀·스케줄 facade (세부 policy logic은 본 카탈로그 범위 밖) | singleton, handler/runnable와 pause request list 메모리 | App/IoT command → cleaning/moving/schedule/state 및 장치 manager |
SelfTestCustomerManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/test/selftest/SelfTestCustomerManager.java) |
빈 파일/구현 없음 | 파일 길이 0 | 유입·유출 없음 |
SelfTestServiceManager (apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/test/selftest/SelfTestServiceManager.java) |
빈 파일/구현 없음 | 파일 길이 0 | 유입·유출 없음 |
집계와 해석 경계
git ls-tree -r --name-only 7695c9a8 | rg 'apps/DeviceAgent/.*/[^/]*Manager\\.java$'결과는 51/51이다. 모든 행은 그 목록의 tracked 파일에서 왔으며, 작업 트리의 untracked 파일은 사용하지 않았다.- 빈 파일은 6개다:
BootInitManager,MovingCalibrationManager,FilterUsageManager,VoiceLocationRecogManager,SelfTestCustomerManager,SelfTestServiceManager.MovingServiceManager는 빈 파일은 아니지만 주석과 클래스 선언만 있다. - 이름에
Manager가 들어가도 Android SDK의android.media.AudioManager,android.net.wifi.WifiManager같은 프레임워크 클래스는 목록 대상이 아니다. 표의NetworkManager는 앱 자체 클래스이며,SoundFlowManager의 vendorISoundFlowService도 Android SDKAudioManager와 별개다. - 정적 코드로 확인되는 것은 객체·callback·queue/handler·파일/Preferences/DB/Provider 호출의 존재다. Binder caller 권한, 장치 fan/motor/MCU 완료, WSS upload 성공, OTA 적용·reboot 완료는 이 카탈로그로 증명하지 않는다.
CmdPolicyManager의 조건 분기와StateManager의 차단 정책은 세부 로직 분석을 하지 않고 연결·소유 경계만 기재했다.
재현 명령:
git ls-tree -r --name-only 7695c9a8 | rg 'apps/DeviceAgent/.*/[^/]*Manager\.java$'
git show 7695c9a8:apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/wss/WssManager.java
Connections
상세 분석 목차 · 기존 전체 SVG 지도 · 정책 조건표 · 실행 시나리오