
动机往手机里装了个 30-40 GB 的游戏后变成存储空间敏感型性格。那时就留意到MIUI内置、但可以被更新的小米浏览器应用com.android.browser的存储空间占用以浏览器的标准评估占得太多了。这几年间应用信息-存储占用那“应用大小”曾有段时间维持在1GB左右不含“用户数据”实在是太离谱了。目前20.29版本比以前变小了一点但和Chrome, Edge, Firefox相比还是离谱。我也是拧巴自动更新不关、“卸载更新”不卸然后对空间浪费又难受。应用大小应用版本应用大小小米浏览器com.android.browser20.29.1031010875MBChrome com.android.chrome154.0.8037.57260MBEdge Canary com.microsoft.emmx.canary139.0.3358.0462MBFirefox org.mozilla.firefox68.12.0116MB在安装后未使用的场景下小米浏览器已经是Chrome的3.4倍。轻度使用Chrome产生的网页缓存都不一定大于两者的差值615MB。由此可见以浏览器的视角来评判小米浏览器空间占用上是不合格的占用了大量原本可用于存放网页缓存的空间。apk包apk大小247MB。按zip格式查看内容物577.1MB。247MB 577.1MB 824.1MB。接近875MB。视为系统把apk的内部文件全部解压后并保留apk本体。apk内部分布apk内部占用分布205.5MBlib/arm64-v8a150.5MBlibhyper_chromium.so54.9MB其余62个动态库so文件123.5MBlib/armeabi-v7a91.0MBlibhyper_chromium.so32.5MB其余61个动态库so文件186.7MB33个classes*.dex文件38.3MBres/UI图片素材16.6MBresources.arsc6.2MB其余12个文件夹293.0KB其余30个文件动态库最显眼就是文件名包含chromium的动态库。估计小米把chromium项目的android_webview形态按arm64和armeabi两个架构都编译一次再集成到apk里。这样小米就能“可控”浏览器内核。查看了libhyper_chromium.so的符号基本只有混淆的JNI接口名。dex文件没有装安桌的命令行工具所以没有用apk analyzer。就用Python按dex文件的结构分析类的方法数根据chromium/android_webview源代码验证基本正确但是类的方法程序指令占用多少空间验证结果为偏大就不贴出来仅使用方法统计值来排序。贴具体数据前先吐槽小米这是把百度全家桶都通过SDK的方式集成到浏览器应用里了吧com.baidu.的类的方法数是最多的用户到底装了个浏览器还是百度 App dex文件方法数总计871282类方法数统计类前缀方法数com/baidu133736androidx133367com/android/browser96589org/chromium96100com/google84782com/duokan50017com/xiaomi22520com/browser21241com/facebook17616com/xunlei12973com/miui9950androidx小米往浏览器里塞一堆非浏览器功能塞一堆SDK自然产生的依赖项就多自然包含Android Jetpack的实现就多。com.baidu项目组是偷大懒了吧编译选项是不是直接 -keep com.baidu.* ??寻思在UI上只认为这浏览器只用到了百度的2个地方一是搜索功能上选百度二是资讯流有个本地页会定位用户并选中所在行政区。搜索功能本质上不就是浏览器打开百度网页需要SDK位置定位并计算行政区需要成为dex里方法数最多占15%方法数的功能org.chromium编译chromium项目里的Java代码就会产生这些程序。com.google暂时也当作浏览器内核功能懒得分析。com.duokan真有人用浏览器读电子书吗电子书平台商还是多看……小米才不管用户看不看电子书集成占你空间刷月活就完事。com.xunlei诶给你集成个迅雷网盘。按道理MIUI的下载有另外一个管理器应用所以这里的迅雷SDK估计只负责网盘的功能。com.volcengine还给你集成AI对话功能哦AI对话的网页URL还只能用已登录的小米浏览器访问哦别的浏览器访问URL不给你回答哦。不知道专门的视频播放器、搜索功能上那个可选择的“抖音搜索”和这个火山引擎是否有关系。com.android.browser终于到小米浏览器本体了。之所以放到最后其实从集成的SDK就能看出有多少非浏览器功能了。类共同前缀 com/android/browser/ 表格里就省略不赘述。android.browser 方法数统计类前缀方法数homepage9689flow8219shortvideo7237search5102bookmark4692util2999databinding2353view2339hybrid2215videov21993filemanager1871flow浏览器默认主页是资讯流页面。资讯可以看视频可以评论可以卖广告。shortvideo浏览器默认页面上有“视频”选项卡自然是刷短视频、直播的功能。homepage分析了类方法数才知道小米浏览器的主页是可设置的。设置成关闭资讯流、“视频”、“免费小说”的模式后就能有“壁纸”的设置。甚至还有解压的功能不知道入口在哪里。还有使用只能用已登录的小米浏览器访问的AI对话网页的功能。search内嵌3个搜索入口“全网搜索”、百度、抖音搜索。还有历史记录还能搜索小米浏览器内嵌的短视频、电子书功能对应的资源。bookmark书签不仅是网页URL书签还是视频、小说等其他内嵌功能的书签。历史记录不仅是浏览网页记录还是其他内嵌功能的历史记录。“赞过”的视频记录。UI资源塞电子书阅读功能还得感恩它60分钟无广告。浏览器还能AI解数学题。总结依赖项管理粗糙整合一整个百度全家桶导致应用臃肿。定位为系统自带Web浏览器的应用塞上电子书阅读、网盘、资讯流、短视频、AI对话等非核心功能占用了手机原本用于存放网页缓存的空间。浏览器被做成内容分发入口拿用户手机的计算资源来给自己变现。题外话小米应用商店程序占用空间最多的居然是自动后台下载不删除的广告视频cmsVideo。我是张靓颖我玩《三国志战略版》3年了。甚至有游戏《饥荒》的广告视频。应用商店能看短剧、种果树……小米看视频的入口真多啊。还有各种高清的分享icon图。