🚀 30+款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度
手机AI Agent的讨论已经很多,但很多方向可能从一开始就错了。当你的手机屏幕在无人操控下自动跳转、点击,这种“贾维斯”式的体验背后,是激进与稳健两条技术路线的激烈碰撞,更关乎隐私、安全和生态的根本性挑战。豆包AI手机被微信、淘宝等主流应用“屏蔽”,智谱开源AutoGLM模型,这些事件都指向一个核心问题:手机与AI Agent到底该怎么结合,才能既智能又安全、既强大又可持续?
这篇文章不空谈概念,我们直接切入技术本质和落地实践。你会看到当前两种主流技术路径的详细对比,了解它们背后的权限机制、安全风险与商业逻辑。更重要的是,我们将探讨,对于开发者、研究者和普通用户而言,现阶段有哪些可以实际验证、测试甚至部署的AI Agent方案,它们的硬件门槛、启动方式、核心能力与潜在风险分别是什么。无论你是想评估技术趋势,还是寻找可行的开发或体验入口,这篇文章都会提供清晰的路线图。
1. 核心能力速览:两种路径,天壤之别
当前,让AI Agent操作手机,主要存在两种技术实现路径,它们在权限、安全、体验和开发模式上截然不同。理解这一点,是判断所有相关项目、模型和产品的基础。
| 能力项 | “激进派”路径 (如豆包AI手机) | “稳健派”路径 (如华为小艺) |
|---|---|---|
| 核心权限 | 系统级注入权限(INJECT_EVENTS)。应用被系统私钥签名,成为系统一部分,可直接模拟触控、按键事件,驱动硬件层。 | 操作系统级API接口。通过系统提供的标准化API(如鸿蒙的跨应用协作接口)进行应用间调度和数据交换。 |
| 控制粒度 | 像素级精确控制。可模拟任何坐标的点击、滑动、长按等操作,无视应用界面变化。 | 任务级抽象控制。通过语义理解,调用应用提供的标准服务或深度链接(Deep Link),执行“订机票”、“发消息”等高级任务。 |
| 技术特点 | 1.无需应用配合:可操作任何已安装App,包括未开放接口的。 2.体验“无感”:操作延迟极低,流程丝滑。 3.强侵入性:触及系统底层,风险极高。 | 1.需应用生态支持:依赖应用厂商接入系统API或提供标准接口。 2.体验依赖优化:流畅度取决于API设计及网络状况。 3.合规性好:在现有应用开发规范和安全框架内运作。 |
| 安全风险 | 极高。一旦权限被恶意软件获取,可完全接管手机,绕过所有应用的安全验证(如银行App的人脸识别、游戏的安全键盘),所有操作均被视为用户真人行为。 | 可控。操作受操作系统沙箱和权限管理机制约束,需用户授权,且应用可感知并记录AI Agent的调用行为。 |
| 代表产品/技术 | 豆包AI手机(努比亚M153)、部分开源自动化测试框架(需Root)。 | 华为鸿蒙6小艺、小米小爱同学(部分场景)、vivo Jovi等基于系统AI助手的服务。 |
| 对开发者的意义 | 提供了研究“终极形态”手机Agent的可能,但普通开发者几乎无法合法获得此权限,主要用于手机厂商、系统定制商或特定安全研究。 | 提供了相对可行的开发入口,可通过学习系统厂商提供的Agent开发套件(如HarmonyOS的元服务、Intent机制)进行功能开发。 |
| 硬件/环境门槛 | 依赖于特定品牌、型号的手机系统深度定制,普通用户无法自行部署。 | 取决于手机操作系统版本和厂商开放程度,普通应用开发者可在模拟器或真机上进行功能开发和测试。 |
对于绝大多数技术爱好者、独立开发者和研究者而言,“稳健派”的API路径是目前唯一合法、合规且可实践的切入点。而“激进派”路径更多是作为行业发展的一个极端参考,其引发的安全与生态争议,恰恰是推动技术走向成熟的关键动力。
2. 适用场景与使用边界
在深入技术细节前,必须明确AI Agent操作手机的适用场景和不可逾越的边界。这不仅是技术问题,更是法律和伦理问题。
适用场景:
- 自动化任务流:将多个手动操作串联成自动化流程。例如,每日自动收集多个新闻App的头条并生成简报;收到会议邮件后,自动在日历创建事件并向参会人群发确认消息。
- 无障碍辅助:为视障或行动不便的用户提供语音控制手机完成复杂操作的能力,大幅提升信息无障碍水平。
- 个性化效率工具:根据用户习惯,自动执行高频操作。如通勤时自动打开导航和音乐App;到达健身房自动打卡并播放训练列表。
- 开发与测试:用于应用的自动化测试(Monkey Test)、UI遍历、兼容性测试等,提升软件质量与开发效率。
- 研究与原型验证:高校、研究机构用于探索下一代人机交互、多模态理解、具身智能等前沿课题。
使用边界与红线:
- 合法授权是第一前提:任何自动化操作必须基于用户的明确授权和知情同意。不得在用户不知情或违背其意愿的情况下操控手机。
- 隐私数据零上传:涉及屏幕内容理解、个人信息处理的Agent,其推理过程应尽可能在端侧完成。必须严格避免将包含隐私信息的屏幕截图、操作流持续上传至云端,这是当前主流App拒绝此类Agent的核心原因。
- 禁止绕过安全机制:严禁利用任何技术手段(包括系统注入权限)绕过或干扰银行、支付、政务等应用的安全验证机制(如密码、指纹、人脸识别)。
- 尊重应用生态:理想的Agent应是应用生态的“连接器”和“增强者”,而非“破坏者”或“替代者”。应优先通过应用提供的官方接口(API、Deep Link、Share Target)进行交互。
- 明确责任归属:Agent执行的操作,其产生的结果(如误触发的消费、误发送的消息)责任必须清晰界定,通常应由Agent的提供方或用户自身承担。
对于个人开发者和技术爱好者,我们的所有实践和探索都必须严格守在上述边界之内。接下来,我们将聚焦于那些可公开获取、可合法测试的技术方案。
3. 环境准备与前置条件
如果你想亲手搭建或体验一个能够操作手机的AI Agent原型,需要从软件和硬件两方面做好准备。这里我们主要讨论基于“稳健派”思路的、相对可行的开发与测试环境。
1. 硬件准备:
- 测试手机:推荐准备一台专用的安卓测试机。避免使用主力机,因为测试过程可能涉及频繁安装调试包、开启开发者选项等操作。
- 电脑:用于运行控制端程序、大模型服务或开发环境。操作系统Windows、macOS或Linux均可。
- 连接方式:确保手机和电脑可以通过USB数据线稳定连接,并开启USB调试功能。部分方案也支持在同一Wi-Fi网络下的无线调试(ADB over WiFi)。
2. 软件与环境准备:
- Android开发环境:
- Android SDK Platform-Tools:包含ADB(Android Debug Bridge)工具,这是与手机通信的基石。务必将其路径添加到系统环境变量。
- Java Development Kit (JDK):运行部分Java-based工具所需。
- Python环境(推荐):大多数开源AI Agent框架和脚本使用Python。
- Python 3.8+:建议使用Anaconda或Miniconda创建独立的虚拟环境。
- 关键Python库:
opencv-python(图像处理)、pillow(图像处理)、torch(深度学习框架)、transformers(加载AI模型)、fastapi(构建API服务)等。
- AI模型资源:
- 视觉理解模型:用于理解手机屏幕内容。例如,谷歌的
ViT、Swin Transformer,或专门针对UI元素检测的模型如RICO数据集训练的模型。可以从Hugging Face等平台下载。 - 决策与规划模型:用于根据屏幕内容和用户指令决定下一步操作。可以是大型语言模型(LLM)的轻量化版本,如Qwen2.5-Coder-1.5B-Instruct、Phi-3-mini等,在手机端或电脑端运行。
- 视觉理解模型:用于理解手机屏幕内容。例如,谷歌的
- 开发者选项与权限:在测试手机上,进入“设置”->“关于手机”,连续点击“版本号”开启开发者模式。然后在开发者选项中开启“USB调试”。对于需要模拟点击的测试,可能还需要开启“指针位置”以获取坐标,但对于追求合规的方案,应探索使用
UIAutomator等无障碍服务框架。
4. 核心原理与开源方案剖析
一个能操作手机的AI Agent,其核心工作流程可以简化为“感知 -> 思考 -> 执行”的循环。我们结合开源方案来拆解每个环节。
4.1 感知:手机屏幕内容理解
Agent需要“看到”手机屏幕。技术上有两种主流方式:
- 截图分析:通过ADB命令
adb shell screencap -p /sdcard/screen.png获取屏幕截图,再拉取到电脑端进行分析。 - UI层次结构分析:通过ADB命令
adb shell uiautomator dump /sdcard/window_dump.xml获取当前屏幕的UI组件树(包含控件ID、文本、坐标、可点击状态等)。这种方式更结构化,对视觉模型的依赖更低。
开源工具/库:
uiautomator2:一个Python库,封装了Android UIAutomator测试框架,可以非常方便地获取UI层次和属性。# 安装 pip install uiautomator2# 示例:连接设备并获取当前界面信息 import uiautomator2 as u2 # 连接设备(确保adb devices能看到设备) d = u2.connect() # 获取当前应用包名和活动名 print(d.info) # 获取当前屏幕所有元素 for elem in d(className="android.widget.TextView"): print(elem.info)
4.2 思考:任务规划与决策
这是AI Agent的“大脑”。它接收用户指令(如“帮我订一张明天北京到上海的机票”)和感知到的屏幕信息,然后规划出一系列原子操作步骤。
技术实现:
- 提示词工程(Prompt Engineering):将屏幕信息(截图描述或UI树)和用户指令一起构造为提示词,输入给大语言模型(LLM),要求其输出下一步操作的描述或结构化指令。
- 示例提示词:“当前屏幕是一个购物App的商品详情页,包含‘加入购物车’按钮和‘立即购买’按钮。用户目标是‘购买此商品’。请输出下一步操作,格式为:
{“action”: “click”, “target”: “立即购买”}”
- 示例提示词:“当前屏幕是一个购物App的商品详情页,包含‘加入购物车’按钮和‘立即购买’按钮。用户目标是‘购买此商品’。请输出下一步操作,格式为:
- 微调专用模型:使用手机操作指令对数据集对LLM进行微调,让其更擅长将自然语言指令转化为具体的UI操作序列。这正是智谱AutoGLM等模型所做的工作。
轻量级LLM本地部署示例(使用Ollama):
# 安装Ollama (以Linux/macOS为例) curl -fsSL https://ollama.com/install.sh | sh # 拉取一个轻量级代码模型,适合做规划 ollama pull qwen2.5-coder:1.5b # 启动模型服务 ollama run qwen2.5-coder:1.5b随后,你的Agent程序可以通过HTTP API与本地运行的LLM交互,获取决策。
4.3 执行:将决策转化为手机操作
根据“思考”环节输出的结构化指令,调用相应的方法操作手机。
合规的执行方式:
- 基于无障碍服务(AccessibilityService):这是Android官方提供的辅助功能框架。可以开发一个无障碍服务App,安装到手机上,授予其无障碍权限。该服务可以监听界面变化,并以编程方式执行点击、滚动等操作。这是对用户可见、可管理、相对合规的方式。
uiautomator2在底层也利用了类似机制。# 使用uiautomator2执行点击 d(text="立即购买").click() # 执行滑动 d.swipe(500, 1500, 500, 500, 0.5) # 从(500,1500)滑动到(500,500),用时0.5秒 - 基于ADB输入命令:通过
adb shell input命令模拟输入。这种方式更底层,但通常需要更高的权限(如root),在非Root设备上功能受限,且容易被安全软件检测。# 模拟点击坐标 (500, 1000) adb shell input tap 500 1000 # 模拟滑动 adb shell input swipe 300 1000 300 500 200 # 模拟文本输入 adb shell input text "hello"
将三者串联起来,一个最简单的AI Agent原型流程如下:
# 伪代码示例:一个循环执行的Agent核心 def agent_loop(user_goal): while not goal_achieved: # 1. 感知 screenshot = get_screenshot_via_adb() # 或使用uiautomator2获取UI树 screen_info = analyze_screen(screenshot) # 使用CV模型或解析UI树 # 2. 思考 prompt = f"目标:{user_goal}。当前屏幕:{screen_info}。下一步做什么?" next_action = query_llm(prompt) # 调用本地或云端LLM # next_action 示例: {"action": "click", "target": "搜索框"} # 3. 执行 execute_action(next_action) # 通过uiautomator2或ADB执行 # 4. 检查目标是否达成(可再次感知判断) goal_achieved = check_goal_status()5. 实战:构建一个本地化手机信息查询Agent
我们以一个相对简单、安全且完全可在本地运行的任务为例:让AI Agent自动打开手机上的天气App,查询当前城市天气,并朗读出来。这个例子涵盖了感知、决策、执行的全流程,且不涉及敏感权限和隐私数据上传。
环境准备:
- 安卓测试机一部,开启USB调试,并与电脑连接。
- 电脑安装Python环境及
uiautomator2,requests,pyttsx3库。 - 本地部署一个轻量级LLM服务(如使用Ollama运行
qwen2.5-coder:1.5b)。
步骤分解:
步骤1:初始化连接与安装辅助APKuiautomator2需要在手机上安装一个辅助APK来提供服务。
import uiautomator2 as u2 import time import requests import json import pyttsx3 # 连接设备 d = u2.connect() # 默认连接当前唯一设备,或使用 d = u2.connect(‘设备序列号’) # 首次连接会自动安装atx-agent等辅助工具 print(f“设备信息:{d.info}”)步骤2:定义核心工具函数
def get_screen_state(): """获取当前屏幕状态描述(简化版:使用当前活动名和关键文本)""" current_app = d.app_current() # 获取屏幕上所有文本内容 all_texts = [elem.get_text() for elem in d(className=“android.widget.TextView”) if elem.get_text()] state = { “package”: current_app[‘package’], “activity”: current_app[‘activity’], “visible_texts”: all_texts[:10] # 取前10个文本作为描述 } return state def execute_llm_decision(user_goal, screen_state): """将目标和屏幕状态发送给本地LLM,获取决策""" # 构造提示词 prompt = f“”” 你是一个手机助手。用户的目标是:{user_goal}。 当前手机屏幕状态是:应用包名:{screen_state[‘package’]}, 屏幕上可见的关键文字有:{‘, ‘.join(screen_state[‘visible_texts’])}。 请根据目标,从以下操作中选择一个最合适的下一步动作,并严格按JSON格式输出,不要有任何其他解释: 1. 如果目标应用未启动,则启动它。动作类型:`launch_app`, 参数:`app_name` (如‘天气’) 2. 如果需要在当前应用内点击某个包含特定文字的按钮或区域。动作类型:`click_text`, 参数:`text` (按钮上的文字) 3. 如果需要返回桌面。动作类型:`press_home` 4. 如果任务已完成。动作类型:`finish`, 参数:`result` (任务结果描述) 只输出JSON,例如:{{“action”: “click_text”, “params”: {{“text”: “搜索”}}}} “”” # 调用本地Ollama服务 (假设运行在 http://localhost:11434) url = “http://localhost:11434/api/generate” payload = { “model”: “qwen2.5-coder:1.5b”, “prompt”: prompt, “stream”: False, “options”: {“temperature”: 0.1} # 低随机性,保证输出稳定 } try: resp = requests.post(url, json=payload, timeout=10) resp_json = resp.json() decision_str = resp_json.get(“response”, “”).strip() # 尝试解析JSON decision = json.loads(decision_str) return decision except Exception as e: print(f“调用LLM失败:{e}”) return {“action”: “unknown”} def perform_action(action_dict): """执行LLM返回的动作""" action = action_dict.get(“action”) params = action_dict.get(“params”, {}) if action == “launch_app”: app_name = params.get(“app_name”) # 这里需要有一个从‘天气’到应用包名的映射,简化处理 if “天气” in app_name: d.app_start(“com.android.settings”) # 示例,实际应为天气App包名 print(f“启动应用:{app_name}”) elif action == “click_text”: target_text = params.get(“text”) if d(text=target_text).exists: d(text=target_text).click() print(f“点击文本:{target_text}”) else: print(f“未找到文本:{target_text}”) elif action == “press_home”: d.press(“home”) print(“按下Home键”) elif action == “finish”: result = params.get(“result”, “任务完成”) print(f“任务完成:{result}”) return True, result elif action == “unknown”: print(“未知动作,任务可能卡住”) return False, None def speak_text(text): """使用TTS朗读文本""" engine = pyttsx3.init() engine.say(text) engine.runAndWait()步骤3:主循环逻辑
def main_agent_loop(user_goal=“查询当前天气并告诉我”): max_steps = 20 # 防止死循环 for step in range(max_steps): print(f“\n=== 步骤 {step + 1} ===") # 1. 感知 screen_state = get_screen_state() print(f“当前屏幕:{screen_state[‘package’]}, 文本:{screen_state[‘visible_texts’]}”) # 2. 思考 decision = execute_llm_decision(user_goal, screen_state) print(f“LLM决策:{decision}”) # 3. 执行 & 判断 is_finished, result = perform_action(decision) if is_finished: print(“目标达成!”) # 朗读结果 if result: speak_text(result) break time.sleep(2) # 等待操作执行和界面稳定 if step >= max_steps - 1: print(“达到最大步数,任务可能未完成。”) if __name__ == “__main__”: # 确保Ollama服务已启动 # ollama run qwen2.5-coder:1.5b main_agent_loop()步骤4:运行与观察
- 在电脑上启动Ollama服务并加载模型。
- 运行上述Python脚本。
- 观察手机屏幕,Agent会尝试理解当前界面,并通过LLM决定下一步是启动天气App、点击城市按钮还是点击查询按钮。
- 当LLM判断任务完成(例如找到了温度信息)并返回
finish动作时,脚本会通过TTS朗读天气信息。
这个例子虽然简单,但它完整演示了一个本地化、低权限、可解释的AI Agent工作流程。你可以通过优化提示词、集成更精准的屏幕理解模型(如图标识别)来增强其能力。
6. 进阶方向与开源项目参考
如果你想深入探索更强大的手机AI Agent,以下方向和开源项目值得关注:
- 端侧多模态模型:让视觉理解和决策都在手机上完成,彻底避免隐私数据出端。可以研究如何在手机上部署轻量化的多模态大模型(MM-LLM),如MobileVLM、Qwen2-VL-Mobile等。
- 自动化测试框架的Agent化改造:成熟的Android自动化测试框架(如Appium、Espresso)本身就有强大的UI操控能力。可以尝试为其加上一个LLM“大脑”,将其从录制回放工具升级为能理解自然语言指令的智能测试Agent。
- 关注开源AI Agent项目:
- AutoGLM:智谱开源的能自动操作手机的AI Agent模型。虽然其完整的系统级权限方案不可复制,但其模型架构、训练数据和方法论极具参考价值。可以关注其开源代码,学习如何训练一个能理解屏幕和规划操作的专用模型。
- AgentKit / Mobile-Agent:一些研究机构开源的项目,提供了构建手机Agent的基础框架,包括屏幕截图分割、文本识别、动作映射等模块。
- 探索操作系统官方接口:密切关注华为HarmonyOS NEXT、小米HyperOS、vivo BlueOS等国产操作系统发布的“AI助手”或“元服务”开发套件。这可能是未来开发合规、高效手机AI Agent的主流平台。
7. 常见问题与排查方法
在开发和测试手机AI Agent过程中,你会遇到各种问题。下表列出了常见问题及其解决方法。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
uiautomator2连接失败,提示HTTP 500或超时 | 1. 手机未开启USB调试。 2. 电脑ADB版本与手机不兼容。 3. 手机端 atx-agent未成功安装或运行。 | 1. 执行adb devices查看设备是否已授权。2. 检查手机开发者选项中“USB调试”是否开启。 3. 尝试 adb kill-server后重连。 | 1. 确保USB调试已开启并授权电脑。 2. 更新Android SDK Platform-Tools到最新版。 3. 尝试 python -m uiautomator2 init重新初始化。 |
| 脚本可以运行,但无法正确点击目标元素 | 1. 元素定位方式不准确(如文本变化、控件ID动态生成)。 2. 界面还未加载完成就执行了点击。 3. 元素不在当前可视区域。 | 1. 使用d.debug = True打印更详细的UI树信息。2. 在点击前增加 time.sleep()等待。3. 使用 d.exists(timeout=10)判断元素是否存在。 | 1. 使用更稳定的定位方式组合,如className+resourceId。2. 实现显式等待,直到目标元素出现。 3. 对于需要滑动的元素,先执行 d(scrollable=True).scroll.to()。 |
| 调用本地LLM服务超时或无响应 | 1. Ollama等服务未启动。 2. 模型未正确加载。 3. 请求格式错误或端口被占用。 | 1. 检查Ollama进程是否运行 (ollama list)。2. 查看服务日志。 3. 用 curl直接测试API接口。 | 1. 确保使用ollama run <model-name>正确启动模型。2. 检查Python代码中的API地址和端口是否正确。 3. 尝试简化提示词,减少请求长度。 |
| Agent陷入死循环,重复相同操作 | 1. LLM的决策逻辑有误,陷入局部循环。 2. 屏幕状态感知不准确,导致LLM每次都基于相同信息做相同决策。 3. 任务成功条件判断失败。 | 1. 打印每一步的屏幕状态和LLM决策,分析逻辑。 2. 检查 get_screen_state函数是否每次都返回了有区分度的信息。 | 1. 在提示词中增加历史步骤记忆,要求LLM避免重复动作。 2. 增强状态感知,例如加入屏幕截图哈希值对比,判断界面是否真的发生了变化。 3. 设置最大步数限制,超时后自动退出。 |
| 在非原生界面或游戏内操作失败 | 1. 游戏或某些应用使用自定义渲染(如Unity、OpenGL),标准UI树无法捕获元素。 2. 应用禁用了无障碍服务。 | 1. 使用adb shell dumpsys window检查当前窗口属性。2. 尝试使用基于图像识别的方案(如OpenCV模板匹配)替代UI树解析。 | 1. 对于游戏,可能需要借助游戏引擎特定的插件或更高权限的方案(但合规风险高)。 2. 对于普通应用,确认其无障碍服务开关是否打开。 |
| 脚本在后台运行时手机锁屏后失效 | 手机锁屏后,屏幕状态固定,且可能阻止模拟点击。 | 观察锁屏后脚本是否还在运行,能否获取到屏幕信息。 | 1. 在开发者选项中设置“保持唤醒状态”(充电时屏幕常亮)。 2. 在脚本中增加检测锁屏的逻辑,并模拟按下电源键解锁(需注意安全)。 注意:自动化解锁涉及安全,请在完全受控的测试环境中进行。 |
8. 最佳实践与合规建议
在探索手机AI Agent时,遵循以下最佳实践可以让你走得更远、更稳:
- 从简单、安全的场景开始:先实现“打开设置->点击关于手机->读取版本号”这样的确定性任务,再尝试复杂、多变的场景。永远把安全性和用户知情权放在第一位。
- 本地优先,隐私至上:核心的感知和决策逻辑尽量在端侧完成。如果必须使用云端大模型,应对屏幕信息进行脱敏处理(如只上传UI组件类型和匿名化文本,不上传完整截图或图片)。
- 设计可解释的决策日志:记录Agent每一步的屏幕状态、LLM的原始决策输出和执行的操作。这不仅是调试的需要,更是审计和问责的依据。
- 实现“急停”机制:为你的Agent设计一个随时可以中断其操作的开关,例如监听特定的ADB命令、网络请求或物理按键组合。
- 充分理解并告知权限:如果你开发的是一个需要安装的辅助App,必须清晰、明确地向用户说明所需权限(如无障碍服务)的用途和潜在风险,并让用户自主选择开启。
- 关注系统与生态变化:手机操作系统和主流App的更新可能会影响自动化脚本的稳定性。你的Agent需要具备一定的容错和自适应能力。
- 明确项目性质:区分你的项目是个人研究/学习、开发效率工具还是商业产品。不同性质的项目,在技术选型、权限申请和法律合规上的要求天差地别。
手机AI Agent的终极形态,绝不是为了取代用户,而是成为用户能力的延伸,在充分授权和严格边界内,默默处理那些重复、繁琐的数字事务。技术上的“激进”探索推动了可能性的边界,而产品上的“稳健”落地则决定了这项技术能否真正融入生活。对于开发者而言,在合规的框架内,利用现有的API和开源工具,我们已经可以构建出足够有趣和有用的原型。真正的方向,或许就藏在这些既仰望星空又脚踏实地的实践之中。
🚀 30+款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度