Skip to content

Repository files navigation

NetworkPanelX (网络面板X)

Android app for batch traffic consumption and network speed testing with user-defined download URLs.

Version

Current version: 1.0.14

Cloud Accounts And Rankings

The optional account and leaderboard service is under server/. New accounts require a verified email code; password recovery also uses a code sent to that verified email. It stores password and code hashes plus aggregated daily traffic in TiDB. The Android app never contains TiDB or SMTP credentials.

Before using login and rankings on a device, deploy server/ to a public Node host and set DEFAULT_CLOUD_API_URL in CloudApi.kt for the release build. The address is built into the app and is not entered by end users. A Dockerfile and render.yaml are included for a Render deployment; setup details are in server/README.md.

Features

  • Add multiple links/tasks: each task has URL + target GB.
  • Select links in 链接管理 and run them sequentially in priority order.
  • 一键测流: in 链接管理, click 一键测流 to automatically start speed testing for selected links with a temporary target of 0.1GB per link.
    • This does not overwrite the target traffic value saved in each link.
    • Each selected link starts the quick test from 0 for this run.
    • Links without a URL will be marked as 请填写URL.
  • Normal 开始 still uses the target GB configured in each link.
  • Target traffic 0GB means unlimited traffic: the link keeps downloading until manually stopped or failed.
  • Auto stop when each finite task reaches target bytes.
  • Manual stop support.
  • Per-task progress, total progress, real-time speed, active thread count, and current chunk size display.
  • Adjustable thread count limit for concurrent download workers.
  • Optional background keep-alive while running.
  • Background service notification appears as soon as background keep-alive is enabled.
  • Pause and resume traffic directly from the notification without opening the app.
  • Check GitHub Releases from 在线更新; APK download links use ghproxylist.com as a proxy.
  • Light/dark theme switching.
  • Optional WebDAV or S3-compatible backup and restore for links, User-Agent profiles, runtime settings, and today's local statistics.
  • Backup browser accepts both timestamped versions and legacy JSON backups; daily cloud traffic is restored locally after account login.
  • Ranking synchronization records each app installation separately, so newly generated local traffic is added to the cloud total without re-uploading traffic restored from another device.
  • While a traffic task is running, ranking and the account JSON snapshot sync automatically every 5 minutes. Manual ranking sync has a 60-second cooldown.
  • The cloud account stores one current JSON snapshot of links, UA profiles, runtime settings, and today's local statistics. When a reinstalled app logs in with no local links, it restores that snapshot automatically.
  • The app also writes a local JSON backup automatically to Download/Network Panel X/network-panel-x.json, which is visible in standard file managers and remains after an uninstall.
  • The automatic recovery copy is also stored at Android/media/com.example.networkpanelx/Network Panel X/network-panel-x.json, which the app reads on startup when local links are empty and the file is still accessible to this installation.
  • After an uninstall or an app-data clear, use 设置 -> 本地 JSON -> 导入本地 JSON to select the Download copy. Android scoped storage can block a newly installed app from silently reopening an old public file, so manual import remains available.

Settings

The 设置 tab provides runtime tuning options:

  • Fixed chunk size: set Range request chunk size in MB.
    • Supports decimal values such as 0.05, 0.1, 0.5, 1, 32.
    • Valid range: 0.05MB to 256MB.
  • Dynamic tuning: automatically adjusts chunk size and active thread count.
    • The app first probes the target file size via HEAD or Range: bytes=0-0.
    • Small files, such as image URLs around 0.4MB, use KB-level chunks instead of large 32MB chunks.
    • Larger files gradually use larger chunks.
  • Global User-Agent:
    • Saved in settings and used by download/probe requests.
    • Empty UA means no default Chrome UA is forced.
    • Multiple UA values can be saved and selected from a dropdown.
  • Per-link User-Agent:
    • Each link can choose one saved UA in 链接管理.
    • Empty per-link UA means the link follows the global UA.
    • If both per-link UA and global UA are empty, requests use an empty UA.
  • Backup and restore:
    • WebDAV uses a backup directory URL plus Basic Auth credentials. The directory must already exist.
    • S3 uses a service endpoint, region, bucket, access key, secret key, and object prefix. Path-style bucket access is used.
    • Every upload creates a new timestamped JSON file instead of overwriting one fixed object.
    • The app reads the online WebDAV directory or S3 prefix, sorts versions newest first, and displays 10 versions per page. A selected version must be confirmed before restore.
    • Connection credentials are stored with Android encrypted preferences and are never included in backup documents.
    • Restoring requires confirmation and replaces local links, User-Agent profiles, runtime settings, and today's local statistics. Cloud account sessions are not changed.

Build

Debug build:

./gradlew assembleDebug

Release build:

./gradlew assembleRelease

The release package is signed with the project release keystore:

app/signing/networkpanelx-release.jks
alias: networkpanelx

Signing passwords should be kept only in local ignored files such as local.properties or signing-secrets.txt. Do not commit signing passwords or keystore files to Git.

Release Output

The latest signed release APK is generated at:

app/build/outputs/apk/release/app-release.apk

For the current version, a copied release artifact can also be named:

app/build/outputs/apk/release/1.0.9.apk

Open In Android Studio

  1. Open Android Studio.
  2. Click Open.
  3. Select this folder: E:\document\Network-Panel-X.
  4. Wait for Gradle sync.
  5. Run on emulator or physical device.

Notes

  • Please use URLs that you have permission to test.
  • The app continuously downloads and discards data until the target is reached, or forever for unlimited tasks.
  • Keep your device on power and stable network for long-running tasks.
  • The 一键测流 feature is intended for quick 0.1GB-per-link speed testing and will not change saved link target values.

About

Network Panel X

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages