Skip to content

mexico-nini/-TransferElf-

Repository files navigation

传输精灵 (TransferElf)

局域网文件共享工具 — 无需数据线,无需互联网,连接同一 WiFi 即可极速传输文件。

Android Kotlin License

简介

传输精灵 是一款基于 Android 平台的局域网文件共享应用。它在手机上启动一个轻量级 HTTP 服务器,同一 WiFi 网络下的任何设备(电脑、手机、平板)都可以通过浏览器访问该服务器,实现文件的快速下载。

核心理念:像精灵一样快速、灵巧地传递文件,无需繁琐的配置和第三方中转服务器。

截图

主界面 浏览器访问
启动服务器 → 添加文件 → 分享地址 浏览器打开地址 → 一键下载

功能特性

  • 一键启动/停止 HTTP 文件服务器
  • 端口在 30000-50000 范围内随机分配,避免冲突
  • 通过 Android NSD (Network Service Discovery) 自动发现局域网内的其他传输精灵设备
  • 浏览器端直接下载共享文件,支持断点续传
  • 支持所有文件类型(图片、视频、文档、APK 等)
  • 前台服务保活,防止后台被系统回收
  • 自适应桌面图标(支持圆形/方形启动器)
  • 响应式 Web 界面,手机和电脑浏览器均可流畅访问
  • Material Design 风格 UI
  • 权限精细管理,兼容 Android 7.0 ~ 14+

技术架构

com.transferelf/
├── MainActivity.kt          # 主界面与交互逻辑
├── FileAdapter.kt            # 文件列表适配器 (RecyclerView)
├── HostAdapter.kt            # 设备列表适配器 (RecyclerView)
├── discovery/
│   └── ServiceDiscovery.kt   # NSD 服务注册与发现
├── file/
│   ├── FileManager.kt        # 文件管理(复制、删除、格式化)
│   └── SharedFile.kt         # 文件数据模型
└── server/
    ├── NanoHTTPD.kt           # 轻量级嵌入式 HTTP 服务器
    ├── FileServer.kt          # 服务器管理与请求路由
    ├── FileServerService.kt   # Android 前台服务
    └── WebPageBuilder.kt      # 浏览器页面生成

快速开始

方法一:直接安装 APK

  1. Releases 下载最新 APK
  2. 安装到 Android 手机(需开启"允许安装未知来源应用")
  3. 确保手机连接了 WiFi 网络
  4. 打开 App,点击 启动服务器
  5. 同一局域网内打开浏览器访问屏幕上显示的地址(如 http://192.168.1.100:38672

方法二:从源码构建

# 克隆仓库
git clone https://github.com/mexico-nini/-TransferElf-.git
cd TransferElf

# 使用 Gradle Wrapper 构建
./gradlew assembleDebug

# APK 将生成在 app/build/outputs/apk/debug/
# 文件名格式:传输精灵-版本号-debug.apk

构建要求

  • Android Studio Hedgehog (2023.1.1) 或更高版本
  • JDK 11 或更高版本
  • Android SDK 33
  • Gradle 7.2 (由 Wrapper 自动管理)

开发工具链

工具 版本
Android Gradle Plugin 7.4.2
Kotlin 1.8.0
Gradle 7.2
compileSdk 33
minSdk 24
targetSdk 33

依赖库

  • androidx.core:core-ktx:1.9.0
  • androidx.appcompat:appcompat:1.5.1
  • com.google.android.material:material:1.7.0
  • androidx.constraintlayout:constraintlayout:2.1.4
  • androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
  • androidx.recyclerview:recyclerview:1.3.1

零外部依赖:HTTP 服务器基于 Java 标准库 ServerSocket 自研实现,未使用任何第三方 Web 框架。

权限说明

权限 用途
INTERNET HTTP 服务监听
ACCESS_NETWORK_STATE 检测 WiFi 连接状态
ACCESS_WIFI_STATE 获取本机 IP 地址
CHANGE_WIFI_MULTICAST_STATE NSD 服务发现
READ_EXTERNAL_STORAGE (Android 12 及以下) 读取文件
WRITE_EXTERNAL_STORAGE (Android 9 及以下) 写入文件
READ_MEDIA_IMAGES/VIDEO/AUDIO (Android 13+) 读取媒体文件
FOREGROUND_SERVICE 前台服务保活
POST_NOTIFICATIONS (Android 13+) 服务通知

工作原理

┌─────────────────────┐       HTTP        ┌──────────────────┐
│    Android 手机      │ ◄──────────────► │  浏览器 (PC/手机)  │
│  ┌─────────────────┐ │                   │                   │
│  │  NanoHTTPD Server│ │   下载文件        │  显示文件列表      │
│  │  (30000-50000)   │ │────────────────► │  点击下载文件      │
│  └─────────────────┘ │                   │                   │
│  ┌─────────────────┐ │                   └──────────────────┘
│  │ NSD Service      │ │
│  │ 发现其他设备     │ │   ┌──────────────────┐
│  └─────────────────┘ │   │ 其他传输精灵设备  │
│  ┌─────────────────┐ │   └──────────────────┘
│  │ FileManager      │ │
│  │ 管理共享文件     │ │
│  └─────────────────┘ │
└─────────────────────┘

项目由来

开发这个项目主要是为了解决日常工作中频繁需要在手机和电脑之间传输文件的痛点。现有的方案要么需要数据线(麻烦),要么依赖外部服务器(速度受限、隐私担忧)。传输精灵 利用局域网直连,兼顾了速度、便利和隐私安全。

许可证

本项目基于 MIT License 开源。

贡献

欢迎提交 Issue 和 Pull Request!在提交之前,请确保:

  1. 代码风格与现有项目保持一致
  2. 添加必要的注释(中英文均可)
  3. 提交前运行 ./gradlew assembleDebug 确保构建通过

联系方式

项目作者:mexico-nini

About

LAN file sharing tool - No cables, no internet. Just WiFi.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages