1
461da73c 253 天前 ![]() JAVA 不就这个德行吗?
|
2
misdake 253 天前 ![]() 安装包里面可以看看体积分析,根据我 n 年前做 android 的印象可能是带了 support 库或者是图标图片等太大。
|
![]() |
3
HongJay 253 天前 ![]() 别人那叫优化。你那叫初学
|
4
NathanDo 253 天前
你到底是比内存占用还是安装包呢,via 也就一个 webview 安装包小有什么稀奇的
|
5
lloovve 253 天前 via iPhone
Android 8g 内存和 ios 2g 内存一个等级
|
6
mxT52CRuqR6o5 253 天前 ![]() 我把 via 清空数据,初次运行,内存占用 125MB
|
![]() |
7
AoEiuV020CN 253 天前 ![]() 主要是兼容,compat ,安卓为了兼容各种版本,单纯一个默认主题就依赖了一个 androidx 库,
现在的 activity 都是 AppCompatActivity ,放弃兼容删除依赖还是可以写出几十 kb 的 app 的, |
![]() |
8
winterbells 253 天前
apk 直接拖到 Android Studio 窗口看大小
另外 gradle 里把压缩混淆也打开 |
9
missdeer 253 天前 via Android ![]() 兵马未动,粮草先行。
|
![]() |
10
WebKit 253 天前 via Android ![]() 直接运行的是 debug 肯定比 release 大,debug 包还有各种 test 的依赖。
|
![]() |
11
Mrshe 253 天前
via 裁剪了很多东西,hello world 里面你又没优化
|
![]() |
12
zongren 253 天前
不是 java 虚拟机的锅吗
|
![]() |
13
lakehylia 253 天前
你这是新手教程,新手还会优化?
|
![]() |
14
crayygy 253 天前
1. debug 包比 release 要大很多,先设置成 release 看看,一般不会很大
2. 创建默认项目的时候会带一堆 support library 的依赖,这些依赖也不少,gradle 里面删一下,重新编译一下看看 3. 图片应该不会很多,自带的都是矢量图,不应该很大,所以这块可以不用看了 |
![]() |
15
huruwo 253 天前
via 各种极限优化 而且尽量不用整体的第三方库
|
16
youxiachai 253 天前
有点迷? 第一次搞客户端开发? 为啥会问这种问题
|
![]() |
17
sankemao 253 天前
把各种用不到的依赖去掉,可以压缩到十多 k
|
18
kwanzaa 253 天前
还没 release 带着一堆 debug 分析工具。 运行时也没优化。这么大不奇怪。
|
19
fox0001 253 天前 via Android
不要跟 via 比,真的
|
20
fan123199 253 天前
楼主应该更好奇内存占用,不是安装包大小。其实涉及到图形的运用内存占用都会大很多。看似只是 Hello World 没有提示有各种渲染的对象。Android 机制是会分配一个内存空间给你,默认最大是 128M ,不超过就使劲用。 另外,不太清除是不是一些共享内存都计算在内。
|
![]() |
21
zachlhb 253 天前 via iPhone
用 kotlin 语言开发,Java 相当耗内存
|
22
okakuyang 253 天前
也不算啥,ios 那边稍微写点代码也占 20 多 M 。
|
24
dddddd 252 天前
大部分是共享的内存,去了解一下 zygote 启动过程
|
![]() |
26
zachlhb 252 天前 via iPhone
@hatcloud 不一样,我用 flutter 试过,分别用 Java 和 kotlin 创建默认 demo 项目,打包后测试,kotlin 就是比 Java 的占有资源少很多
|
27
4kingRAS 252 天前
安卓上的 java 程序每个进程都是一个 zygote 生的虚拟机,每个虚拟机会均摊所有应用可能用到的共享内存。这是内存紧张的设备上非常好的策略,对于单个 App ,哪怕没做什么内存也很大。但是对于整个系统,内存是不变的。
我这几天正在做安卓内存优化,20M 优化到 13M ,安卓上哪怕一个空壳进程都要占用 8 ,9M 左右。如果想再精简,那就只能写 native 程序。 |
![]() |
30
zachlhb 244 天前 via iPhone
flutter 是开发框架,主要语言是 dart ,可以直接开发 app ,web ,桌面应用,对于 app ,你可以使用 flutter 的组件来开发跨平台的功能,也可以使用某个平台的语言直接开发,对于安卓你可以选择使用 java 还是 kotlin 作为安卓的语言
|