You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android复杂算法运行位置及AWS百万级用户数据筛选技术问询

问题1:运行安卓移动应用复杂算法的代码应部署在何处?

这得结合算法的复杂度、资源消耗以及离线需求来判断:

  • 安卓本地设备:如果算法轻量、对性能要求不高,或者必须支持离线使用(比如小型离线AI推理、本地数据校验),可以直接嵌入安卓App。但要注意,复杂算法(比如大模型推理、大规模数据运算)会占用大量CPU/GPU、内存,导致App卡顿、耗电剧增,严重影响用户体验,这种场景绝对不建议本地运行。

  • 云端服务器(如AWS相关服务):对于计算密集型、资源需求高的复杂算法,优先部署在云端。比如用AWS Lambda(无服务器架构,按需付费,无需管理服务器)、Amazon EC2(弹性虚拟机,可自定义硬件配置),或者专门的机器学习服务SageMaker。安卓端只需要通过API请求把数据传给云端,云端处理后返回结果即可。这样既能保证运算效率,又不会给用户设备带来负担,还方便算法的更新维护。


问题2:AWS数据库中筛选手机号含连续4个0的用户,怎么实现?

优先方案:直接在AWS数据库端完成查询

100万条数据的量级,绝对不建议拉到安卓端处理——既浪费带宽,又会让手机承受巨大的运算压力,体验极差。数据库本身就是为数据查询优化的,直接写SQL筛选效率最高。

比如假设你的数据库是MySQL/PostgreSQL,可以用正则表达式匹配连续4个0:

SELECT phone_number, name 
FROM PostpaidCustomers 
WHERE phone_number REGEXP '0000';

如果是DynamoDB这类NoSQL数据库,可以用contains结合表达式,或者通过PartiQL实现类似的匹配逻辑。

如果一定要用Java实现,该怎么做?

如果业务需求必须用Java处理,也不要在安卓代码里运行,应该把Java代码部署在云端:

  • 可以用AWS Lambda:写一个Java的Lambda函数,连接你的AWS数据库,执行查询/筛选逻辑后返回结果。安卓端调用Lambda的API网关接口获取数据即可,不需要自己管理EC2服务器。
  • 也可以用Amazon EC2:如果需要长期运行服务或者有更复杂的部署需求,可以在EC2上部署Java应用,处理数据库查询和筛选,安卓端通过HTTP请求和EC2上的服务交互。

简单总结:Java代码的运行位置是云端服务器(Lambda/EC2等),而非安卓设备;如果用Lambda的话,不需要单独使用Amazon Compute Engine(EC2),Lambda本身就是无服务器的计算服务。

内容的提问来源于stack exchange,提问作者Sushant Somani

火山引擎 最新活动