V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coolesting
V2EX  ›  Android

为什么有些 app 体积安装包 这么少, 0.6m, 1m, 我原生打包个 hello world 也 3m , 那是怎么做到的

  •  
  •   coolesting · 2021-01-11 16:11:53 +08:00 · 13156 次点击
    这是一个创建于 1449 天前的主题,其中的信息可能已经有所发展或是发生改变。
    补充: 我说少于 1m 的 app, 例如,某 X 浏览器
    18 条回复    2021-01-12 15:18:57 +08:00
    manami
        1
    manami  
       2021-01-11 16:14:37 +08:00
    emm 套壳浏览器……
    codehz
        2
    codehz  
       2021-01-11 16:17:11 +08:00   ❤️ 1
    很简单,不要引用奇怪的库,包括 as 生成项目时自带的那些
    en20
        3
    en20  
       2021-01-11 16:27:19 +08:00
    一个是因为本身没多少代码,还有 apk 可以直接打包对应平台 android-arm,android-arm64,android-x64,一个 fat apk 17.9MB,拆分后只有 6.4MB
    howellz
        4
    howellz  
       2021-01-11 16:29:55 +08:00
    @en20 hello world 有啥 native 的包和库?
    divilkcvf
        5
    divilkcvf  
       2021-01-11 16:43:05 +08:00
    appcompat 这种乱七八糟的兼容库全都去掉
    joyhub2140
        6
    joyhub2140  
       2021-01-11 16:51:46 +08:00   ❤️ 1
    生产环境包为了混淆代码会对代码压缩的,你应该打的是 debug 用途的包吧。

    另外,正如楼上所说,去掉乱七八糟的库,只用最基本的 activity,layout 里只有一个 LinearLayout,肯定可以降到 1M 以下。

    那个 x 浏览器,也就套个系统自带的 webview 而已,内核不是重新开发的。
    nicocho
        7
    nicocho  
       2021-01-11 16:53:12 +08:00
    我看拼 DD 的 android 包只有 30 多 M,
    应该不是网络 down 对应的 so 之类的,因为安装完就是上百 M 了。
    压缩效率高?有空深入研究研究去。
    jinhan13789991
        8
    jinhan13789991  
       2021-01-11 16:57:28 +08:00
    去掉乱七八糟的库,只能运行的话,其实只要上百 KB 就够了。
    很多 app 依赖内容都是第一次启动后下载加载的。这样安装包体积就能小很多了
    Kamiyu0087
        9
    Kamiyu0087  
       2021-01-11 18:46:41 +08:00
    原生 Hello World 会引用 material 相关库吧,这就不小了已经
    love
        10
    love  
       2021-01-11 19:14:21 +08:00
    我给我的 WebApp 写了个最简单只有一个 webview 控件的 apk,没任何别的第三方组件,用官方工具套件编译出来也要 2.3M
    android 开发我不熟,可能有办法去掉所有可选的东西?
    winterbells
        11
    winterbells  
       2021-01-11 19:28:36 +08:00 via Android
    打 release 包
    john6lq
        12
    john6lq  
       2021-01-11 21:23:20 +08:00 via iPhone
    @divilkcvf 先做再说。helloworld 现在 AndroidX 我最低也就只能优化到 700k 左右。
    john6lq
        13
    john6lq  
       2021-01-11 21:24:04 +08:00 via iPhone
    谷歌瞎 jb 维护,flutter 一个包直接搞定。
    maokabc
        14
    maokabc  
       2021-01-11 23:13:26 +08:00 via Android
    现在不清楚,以前试过,没兼容库,创建 apk 自己写 shell 命令,javac 编译成 class,dx 生成 classes.dex,aapt 处理资源,然后用 zip 打包再签名,app 写完也才 290 多 k 。
    iriyave
        15
    iriyave  
       2021-01-12 06:17:13 +08:00 via Android
    因为华为手机的文件管理器没有 ftp 功能,前几天下了个 ftp 服务器的 app,能在电脑端操作文件,大小只有 0.4M 。
    coolesting
        16
    coolesting  
    OP
       2021-01-12 12:09:51 +08:00 via Android
    @iriyave 有一个记事本的 App,安装完才 200 多 K 。。。。
    HangoX
        17
    HangoX  
       2021-01-12 12:33:14 +08:00
    不用 support 兼容包,只要自己代码,混淆深一点,接入 andRes
    Rekkles
        18
    Rekkles  
       2021-01-12 15:18:57 +08:00
    十年前的 Symbian S40 可是连大于 1M 的软件都跑不起来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2299 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:05 · PVG 00:05 · LAX 08:05 · JFK 11:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.