为什么有些 app 体积安装包 这么少, 0.6m, 1m, 我原生打包个 hello world 也 3m , 那是怎么做到的?
补充: 我说少于 1m 的 app, 例如,某 X 浏览器
18 条回复 • 2021-01-12 15:18:57 +08:00
|
|
1
manami 89 天前
emm 套壳浏览器……
|
|
|
2
codehz 89 天前 1
很简单,不要引用奇怪的库,包括 as 生成项目时自带的那些
|
|
|
3
en20 89 天前
一个是因为本身没多少代码,还有 apk 可以直接打包对应平台 android-arm,android-arm64,android-x64,一个 fat apk 17.9MB,拆分后只有 6.4MB
|
|
|
4
howellz 89 天前
@en20 hello world 有啥 native 的包和库?
|
|
|
5
divilkcvf 89 天前
appcompat 这种乱七八糟的兼容库全都去掉
|
|
|
6
joyhub2140 89 天前 1
生产环境包为了混淆代码会对代码压缩的,你应该打的是 debug 用途的包吧。
另外,正如楼上所说,去掉乱七八糟的库,只用*基本的 activity,layout 里只有一个 LinearLayout,肯定可以降到 1M 以下。
那个 x 浏览器,也就套个系统自带的 webview 而已,内核不是重新开发的。
|
|
|
7
nicocho 89 天前
我看拼 DD 的 android 包只有 30 多 M,
应该不是网络 down 对应的 so 之类的,因为安装完就是上百 M 了。
压缩效率高?有空深入研究研究去。
|
|
|
8
jinhan13789991 89 天前
去掉乱七八糟的库,只能运行的话,其实只要上百 KB 就够了。
很多 app 依赖内容都是*次启动后下载加载的。这样安装包体积就能小很多了
|
|
|
9
Kamiyu0087 88 天前
原生 Hello World 会引用 material 相关库吧,这就不小了已经
|
|
|
10
love 88 天前
我给我的 WebApp 写了个*简单只有一个 webview 控件的 apk,没任何别的第三方组件,用官方工具套件编译出来也要 2.3M
android 开发我不熟,可能有办法去掉所有可选的东西?
|
|
|
11
winterbells 88 天前 via Android
打 release 包
|
|
|
12
john6lq 88 天前 via iPhone
@divilkcvf 先做再说。helloworld 现在 AndroidX 我*低也就只能优化到 700k 左右。
|
|
|
13
john6lq 88 天前 via iPhone
谷歌瞎 jb 维护,flutter 一个包直接搞定。
|
|
|
14
maokabc 88 天前 via Android
现在不清楚,以前试过,没兼容库,创建 apk 自己写 shell 命令,javac 编译成 class,dx 生成 classes.dex,aapt 处理资源,然后用 zip 打包再签名,app 写完也才 290 多 k 。
|
|
|
15
iriyave 88 天前 via Android
因为华为手机的文件管理器没有 ftp 功能,前几天下了个 ftp 服务器的 app,能在电脑端操作文件,大小只有 0.4M 。
|
|
|
16
coolesting 88 天前 via Android
@iriyave 有一个记事本的 App,安装完才 200 多 K 。。。。
|
|
|
17
HangoX 88 天前
不用 support 兼容包,只要自己代码,混淆深一点,接入 andRes
|
|
|
18
Rekkles 88 天前
十年前的 Symbian S40 可是连大于 1M 的软件都跑不起来
|
*近家附近的高速总封,想每天起床前轮询高速路况,自动设置闹钟。
9 条回复 • 2021-01-20 11:03:05 +08:00
|
|
1
haython 80 天前
谁去轮询? app 不太现实,肯定是服务端了,如果有服务端,轮询之后,定时打电话更方便一些吧
|
|
|
2
whispercero 80 天前
@haython 定时打电话 需要外拨 API 但是我没有企业资质。。。
|
|
|
3
zpfhbyx 80 天前
ios 的话 可以用 brak..推送铃声。。当定时。
|
|
|
4
Maboroshii 80 天前
server 酱啊,用公众号推到微信吧
|
|
|
5
dingdangnao 80 天前
换个思路,用备忘录 日历之类的? tasker 可以么?
|
|
|
6
580a388da131 80 天前
为什么不在门口和方向盘上贴个便签提醒自己查询路况?
|
|
|
7
azoon 80 天前
我苹果用快捷指令,定时自动化,指定上下班时间,使用百度地图 API 查路况,然后弹出通知。
安卓应该可以用 tasker 吧,没了解过,但是看过文章,功能挺强大。
|
|
|
8
whispercero 80 天前
@dingdangnao 就是这种 老哥牛逼
|
|
|
9
dingwen07 79 天前 via Android
Telegram Bot
|
忘记苹果 IOS 哪个版本了,好多垃圾短信 系统自动给我 归类到垃圾短信。平时完全感知不到 有垃圾短信的到来。而且苹果很少会将重要的通知类短信归类垃圾短信去。
自从搞了台安卓,电信,股票等各种垃圾每天定时发生过来,安卓都会响起提醒。我给安卓机的短信添加了一些关键词,但是过一段时间,这些关键词改了,又失效了。
所以安卓有类似苹果的垃圾短信处理 app 吗?
14 条回复 • 2021-01-22 10:23:29 +08:00
|
|
1
ldlywt 79 天前 1
通知盒子 可以试下
|
|
|
2
juded 79 天前
这个国产 rom 基本标配,至于提醒,设置为拦截时不提示就好了。
原生安卓就要折腾了。
|
|
|
3
tnjin 79 天前
小米手机自带的应该可以满足你的需求了吧,也是自动归类
|
|
|
4
draguo 79 天前
miui 自带的就挺好的,唯一问题会把一些可以薅羊毛的短信也给屏蔽了
|
|
|
5
saltxy 79 天前
有没有类似 MIUI 的短信拦截 app,之前下了个 app 时不时的吞短信,找不回来那种,把我整怕了
|
|
|
6
job 79 天前
大多数情况下,系统自己就给屏蔽了,不会提示用户的;垃圾短信骚扰电话这部分,国内的 android 要强于 ios ;
|
|
|
7
azkaban 79 天前
用的 MIUI,我以为安卓每家都有这功能呢,感觉是基础标配啊
|
|
|
8
zxcslove 79 天前
MIUI+1,感觉天经地义了,没注意过
|
|
|
9
Infinite2K 79 天前
我想了想………一加短信直接系统自动屏蔽了,各种优惠折扣信息,垃圾信息都直接拦截了,想看的话也可以自己去看,通知类短信验证码类你觉得正经的短信不会
我认为国内安卓厂商只要不是很小众的厂商,这个问题都可以搞定的吧……系统能搞定的为什么要安装 app 搞定
相比较短信,电话才是真的恶心,现在只是标记为骚然推销,但是不会自动禁止,需要你这边挂掉以后设置封禁,迷惑的是我这个手机号*近一个月甚至半年的时间都没怎么用,我实在想不明白哪个混蛋泄露了我的手机号,或者早几年的现在才倒卖出去广告推销的,*近两天一天 5 个以上,着实恶心,也有可能是*近经常隔三岔五打电话升级办业务的联通倒手的………
|
|
|
10
little_cup 79 天前 1
如 1 楼所说,欢迎试试我写的通知滤盒 https://play.google.com/store/apps/details?id=com.catchingnow.np
其实过滤 95% 的垃圾短信只需要 td 退订 t 退 之类的几个关键字就好了。
|
|
|
11
weixiangzhe 79 天前 via Android
@little_cup 千万不能回 td,现在大家的短信服务商都是通用的,退订了 app a 回导致某些 app 甚至。收不到验证码
|
|
|
12
little_cup 79 天前
@weixiangzhe 没有回啊,只是用这几个关键字识别营销短信而已。
|
|
|
13
weixiangzhe 79 天前 via Android
@little_cup 看错啦 不过现在有的短信退订文案乱七八糟的 比如招行的是 #A ?
|
|
|
14
Kamiyu0087 77 天前
国产 ROM 标配功能吧应该
我 Mate 系手机用了三四年,各种营销垃圾短信很少收到的
|
不管是在APP,还是在网站中,页面之间的跳转都是很常见的,本文主要讲一下在APP中,如何通过Intent实现页面的跳转。
不带参数:
写在MainActivity页面的代码:
1 Intent intent = new Intent();
2 intent.setClass(MainActivity.this, LoginActivity.class);//从MainActivity页面跳转至LoginActivity页面
3 this.startActivity(intent);
带参数:
写在SpendingActivity页面的代码:
1 Intent intent=new Intent(SpendingActivity.this,ExpenseProcesActivity.class);//从SpendingActivity页面跳转至ExpenseProcesActivity页面
2 intent.putExtra("strType", 0);//参数:name、value
3 SpendingActivity.this.startActivity(intent);
写在ExpenseProcesActivity接收页面的代码:
1 private int type = 0;
2
3 //接收传递过来的参数
4 final Intent intent = getIntent();
5 type = intent.getIntExtra("strType", 0);
备注:
可传递的参数有多种类型,在接收参数的时候,也要根据传入类型,选用对应的接收函数
传递参数的类型,Eg:
对应的接收函数,Eg: