You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
📨 Pub/Sub messaging via scadup message queue library
🎨 GPU (OpenGL ES) and CPU image/video rendering
🎤 Audio recording (16kHz PCM) with real-time waveform visualization and speech recognition
📊 Real-time sensor monitoring (accelerometer, gravity, linear acceleration) and a dashboard (compass, bubble level, altitude, magnetic field, steps, proximity)
🖥 SSH server: remote shell into the device over Wi-Fi
🧍 Photo / camera driven life-size 3D human model (parametric body, face & hair styling, OBJ export)
🤖 AI chat powered by DeepSeek API (Chat + Deep Think models)
📈 Market quotes: multi-source K-line (A-shares, futures, forex/gold, crypto) with technical indicators and a home-screen quote widget
📁 Embedded HTTP file server with directory browsing
Architecture
Technology Stack
Category
Technologies
Platform
Android (API 21+, target 31)
Language
Java, C++ (C++11)
Native
JNI, CMake 2.8+, OpenGL ES 2.0, OpenSL ES, NDK 23
Network
UDP (Multicast), TCP, KCP (Reliable UDP), HTTP, Bluetooth
Market Data
Keyless public HTTPS endpoints: Tencent, Eastmoney, Sina, Binance, Frankfurter (ECB rates)
Bidirectional RFCOMM communication with directional control commands
Data Logging
Auto-save received data to local file
Floating Window
Receive data display in draggable system overlay
Network Communication
Feature
Description
UDP Server
Start a UDP multicast server to receive data
UDP Client
Start a UDP multicast client to send data
TCP Server
Start a TCP server to receive data
KCP
KCP (Reliable UDP) protocol for low-latency transmission
Pub/Sub
Subscribe & Publish messages via floating dialog windows; async connection with real-time status feedback
File Transfer
Custom binary protocol with chunked transfer (64KB/chunk) and progress callback
HTTP Server
Embedded HTTP server (filesystem & SAF) with sortable/responsive HTML directory listing, in-page image viewer, and streaming transfers tuned for Wi-Fi LAN throughput
SSH Server
Embedded SSH server (Apache MINA SSHD) on port 2222 with a built-in shell command set, run as a foreground service
Market Quotes (K-Line)
MarketActivity + market/ package + KLineView. All endpoints are keyless public HTTPS; callbacks run on the main thread; bar fields (time, open, high, low, close, volume, amount) match the matkline.py toolset so scripts and the app share one parsing/indicator convention.
Source (QuoteSource)
Covers
Intervals
auto
Picks source by symbol shape, then falls back one by one
Code (sh600519, 1.600519, BTCUSDT) or Chinese name / pinyin (茅台 Kweichow Moutai, gzmt, 沪金 Shanghai gold, 美元指数 USD index); ambiguous hits open a picker, the resolved name shows on the chart
Chart
Candles + wicks (red up / green down), MA5/MA10/MA20, last-price dashed line, adaptive price axis, smart time-axis labels
Indicators
Main: MA; sub-panel cycles on tap: Volume / MACD(12,26,9) / RSI(14) / KDJ(9,3,3) (falls back to MACD when the source has no volume)
Interaction
Drag to pan history (320 bars requested per screen), pinch to zoom bar width, tap the main chart for a crosshair + floating tooltip (time / OHLC / volume / change), tap the sub-panel to cycle panels
Auto Refresh
15s polling toggle; screen stays on while enabled
Persistence
Source / interval / symbol / auto-refresh saved in SharedPreferences and restored on re-entry; retired source ids fall back to auto
Home Widget
📈 Quotes app widget (2×2, resizable): per-instance source + symbol (or "follow the last symbol viewed in the app"), last price and change % coloured red-up / green-down, tap the card to open the K-line screen, tap Refresh to fetch immediately; 30 min fallback refresh by the system, refreshed in sync whenever the market screen loads
Message System (C++ ↔ Java)
The app uses a thread-safe message queue (Message.h) to bridge C++ native code with Java UI. Messages are dispatched via the MASSAGER enum:
Type
Direction
Description
MESSAGE
C++ → Java
General toast notifications
TOAST
C++ → Java
Status text update (txt_status)
MSG_HINT
C++ → Java
Hint text update (txt_hint)
SUBSCRIBER
C++ → Java
Subscribe service feedback
PUBLISHER
C++ → Java
Publish service feedback
FILE_PROGRESS
C++ → Java
File transfer progress update
TEXTURE
C++ → Java
Texture rendering callback
UDP_SERVER
C++ → Java
UDP server: first message after start is the status (port), every later one is received data
UDP_CLIENT
C++ → Java
UDP client status
KCP_VIEW
C++ → Java
KCP connection status
The SelectActivity UI features a dual-status display: txt_hint (italic 12sp, secondary blue-grey) for supplementary hints and txt_status (bold 14sp, teal) for primary status, separated by a divider line. The three colors come from @color/hint_text, @color/status_text, @color/card_divider, which have separate values / values-night definitions (SelectActivity runs on a DayNight theme), so contrast stays above 4.5:1 on both light and dark card backgrounds.
Multimedia Processing
Feature
Description
GPU Rendering
Image/video rendering via OpenGL ES 2.0 (EGL/GLESv2)
CPU Rendering
Software-based image/video decoding and display
Audio Recording
16kHz PCM recording with real-time waveform visualization
Audio Playback
Play WAV/MP4/OGG/MP3/AAC/AMR files with waveform analysis
Speech to Text
Built-in speech recognition (STT) integration
Sensor Monitor
Real-time accelerometer, gravity, and linear acceleration data display
3D Human Model (Avatar)
Reachable from the dashboard Services card (🧍 3D Human Model · Avatar). The pipeline is parametric and runs fully on-device — there is no photogrammetry / cloud reconstruction involved. A photo contributes appearance and silhouette proportions, the user supplies the absolute scale:
Feature
Description
Photo Input
Gallery (ACTION_GET_CONTENT) or camera (FileProvider + ACTION_IMAGE_CAPTURE); tap the thumbnail to preview the full image
Cloud (Tripo3D)
Optional ☁ Tripo3D photo-to-3D: upload the photo (POST /v3/files → image-to-model → poll GET /v3/tasks/{id} → download GLB), parse it with GlbLoader and normalize to the current height. Needs the user's own API key, stored locally
Median foreground color of hair / face / upper / lower bands → hair, skin, top & bottom colors
Body Params
Gender, height (120–210 cm), weight (30–150 kg), head-to-body ratio (6–8.5), shoulder / chest / waist / hip fine tuning
Face & Hair
6 face shapes (oval/round/square/long/heart/diamond) and 8 hairstyles (bald → long, ponytail, bun, curly) driving head profile & hair volumes
Life-Size Mesh
7.5-head canon landmarks (shoulder 0.82H … ankle 0.045H) in metres, feet at y=0; girth from BMI (limbs ≈ √BMI, waist/hip steeper)
Preview
OpenGL ES 2.0: ground grid (0.2 m), height ruler with on-screen scale numbers (0.5 m steps + the current height reading) and contact shadow, drag-rotate / pinch-zoom / double-tap reset
Measurements
BMI + CN grading, shoulder width, chest / waist / hip circumference (ellipse perimeter), arm span, inseam
Export
OBJ + MTL grouped by body part with per-part colors, and PNG screenshot of the preview
Persistence
All params & colors saved in SharedPreferences and restored on re-entry
Intelligent Features
Feature
Description
AI Chat
DeepSeek API integration with Chat / Reasoner (Deep Think) models
Sensor Alert
Automatic warning audio when acceleration exceeds 7.0 m/s² threshold
System Integration
Feature
Description
Event System
Observer-pattern event broadcast for inter-component communication
Time Sync
Native timestamp acquisition and synchronization
Global Toast
Floating toast notification service (3s auto-dismiss)
One-Tap Exit
Global exit manager to terminate all activities and services
Produces debug APK for arm64-v8a, armeabi-v7a, x86_64
Screenshots
License
MIT License
Recent Changes
Short log — one line per change.
2026-09
Sensor Card Zoom: tap the compass / bubble-level card → gauge goes full-screen; tap again or back to restore; readings keep updating.
Compass (zoomed): 5° ticks + degree numbers every 15°, lat/lon above a triangle pointing at the dial top; cardinals / bearing / needle scale up.
Bubble Level (zoomed): only the two angles, no left-right / front-back labels; the "Level" verdict is kept.
Decibel Card: visible only while recording; placeholder text removed.
SSH Server: MINA SSHD on port 2222 (next 9 ports if busy), user d2d + random password; built-in shell commands; status shown in the card.
Sensor Dashboard: compass + bubble level in one row, magnetic / altitude / steps / proximity in another; altitude from GPS, text auto-shrinks, placeholders for missing hardware.