乐于分享
好东西不私藏

app的深度理解

app的深度理解

先上公式,一个app(应用程序)的完整理解应该概括为:app = 政策监管 + 应用商店 + app技术架构 + 服务端数据。这里我们主要讨论手机app。

应用商店

我们常见的IOS应用商店app store,国际上的android的应用商店主要是Google Play,国内的android的应用商店主要是华为商城、小米商城、OPPO商城、VIVO商城等。

应用商城的核心是把软件产物,例如IOS系统的ipa包,android系统的apk/aar包分发到商城,供终端(手机)用户进行下载。

在应用商城发布app的核心事项,是注册个人开发者或者企业,主要流程包括上传包文件、填写包的基本信息、选择包的分类、上传logo、预览五图。

当然app store和google play会对开发者收取一定的会员费用,以及app store的IAP(内购)也会从个人/企业抽成。

政策监管

政策监管分为两部分,一部分是平台监管,另一部分是政府监管。

平台部分的监管,主要是隐私政策文件,另外针对细分行业(例如金融)和年龄段会有一定的约束。

政府部分的监管,拿国内来说,ICP备案、软著其实都是为了满足政府合规的诉求。

监管的目的是为了防止犯罪,比如野鸡网站、小卡片二维码下载apk,或者莫名拉近Test flight下载的ipa,这些非正规渠道下载的应用,对于设备权限的使用就是非常乱来的,后续会提到。

app技术架构

app的技术架构包含原生开发、混合开发;另外还有一些和app相关的术语,如设备权限,编译和反编译。

原生开发,主要使用kotlin/java、swift/object c进行开发,人力充裕的公司都会首选,这样开发出来的包,无论是性能层面FPS、内存、CPU都更好,包体积、耗电量也更优。

混合开发,主要是用flutter、react native、原生 + h5的方式,开发成本更低,但相应的性能指标和包相关的指标都会相对差。

设备权限,其实在代码层面就是android和ios中的一个配置文件,需要声明哪些能去获取才能在代码中调用,并且要用户手动授权才能去拿数据的,前面提到的隐私协议也是需要披露这部分的内容的。至于设备权限有什么,展开说能写好几篇文章,这里简单说说:

1. 金融类app,主要会采集短信、联系人、通话记录、地理位置、硬件信息

2. 物联网app,主要会采集地理位置、蓝牙通信

3. IM app(语音聊天),主要会采集地理位置、麦克风、听筒、相册

这些设备权限在合规的app,会是提高效率的工具,在不合规的app上是用来击穿人性弱点的诈骗工具。

反编译和编译,开发完成打包出来包,这个“打包”的过程叫编译,能编译就能反编译,从ipa和apk反向推导出源代码。当然为了避免源代码泄漏,就衍生一项服务,叫做包加固,其实就是用技术手段增加反编译的难度。

服务端和数据

app本身能通过设备权限和表单采集一些数据,但本身不能存储数据,复杂的业务逻辑和数据一般来说都是在云服务器(绝大部分公司)。

服务端和数据是什么?展开说就是软件工程的全部课程,整体来说就是工程化 + 编程语言 + 数据结构 + 数据库设计 + 网络原理 + 计算机组成 + 编译原理 + 业务建模设计。

特征工程,其实就是概率论和统计的工程实现,金融信贷行业所用到的特征工程,所谓高大上的模型,就是线性代数这样的数学公式(不完全,只是其中一种),然后结合设备采集的数据,用来判断用户决策概率。

大模型,例如Claude、deepseek、chatgpt这些,本身也是LLM,其实是把语言/知识编码为高维向量空间的概率分布,输出是条件概率采样,给定上下文,正常概率最大的Token序列。

agnet和claw,他们的数学本质,是马尔可夫动态规划 + 动态规划,后者还打通了图灵机的系统交互。最早看到马尔可夫动态规划这个数学公式的时候,我更多的是震撼,而当这两年产业落地了我的震撼程度更高。

总结

1. 理解一个app,包含应用商店、政策监管、app技术架构、服务端和数据

2. 应用商店的作用是,让个人/企业,能把软件产物通过硬件厂商的应用商城分发给终端用户

3. 监管主要分为平台和政府,平台主要关注隐私政策(避免数据滥用),政府主要关注ICP备案

4. app技术里面,需要了解原生开发/混合开发,编译/反编译/加固,设备权限能采集些什么数据(短信、通话记录、联系人、日历、蓝牙、地理位置、硬件信息等)

5. 服务端和数据,本身是很多学科的交叉应用,例如软件工程的学科、概率论、线代、深度学习、强化学习、马尔可夫过程、图论、自动机