5 ms·
Enabled only for automatic updates because it's CPU intensive.
by SnaKeZ 10y ago
Enabled only for automatic updates because it's CPU intensive.
- pjmlp 10y agoWe need to love the work those PhDs able to invert a binary tree on a whiteboard are able to come up with. They moved away from pure AOT compilation to JIT/AOT, because it was taking too much time and processing power. So now they come up with unpacking and recompressing APKs on the device using CPU intensive algorithms.
- profmonocle 10y agoIt's all about the user experience. The old AOT-only system made system updates take ages, during which time the phone was unusable. This new app update system is slower and more CPU intensive, but doesn't affect the UX because it only happens when the phone is idle and charging - the perfect time to do something CPU intensive.
- pjmlp 10y agoAnd in both cases, Apple and Microsoft do it server side via the store, instead of destroying the user experience on the devices.
- hawski 10y agoHow can you implement file-by-file based binary diffs without recompressing anything?
- pjmlp 10y agoUsing something like App Thinning introduced in iOS 9?
- hawski 10y agoIf I understand it correctly it seems a bit orthogonal thing to binary diffs. Slicing will prepare an app bundle per target from source app bundle. Bitcode will be compiled to target spec. On-demand resources are self-explanatory. In Android AFAIK you have to do all those things by yourself. With this difference that you can't compile Java bytecode yourself and send it to the user. If you use NDK you have to do this. But I would argue that in most cases it does not result in major size differences. The biggest difference would be in case of app using lots of graphical assets that could be delivered with different DPI depending on device. However, as I said, AFAIK you can do this. The bundle, the compiled binary and resources have to be somehow delivered to the user. The files probably in many cases would be delivered in compressed form. Either they will stay compressed and be decompressed on demand or be decompressed after download. Most probably it will be the former. You can send whole data each time or give some kind of delta to whatever user has. In case of delta you can diff either compressed or uncompressed data. In case of former you will have the same issue as Google had with their bsdiff between APKs. In case of latter you will have to decompress the data and it would be a waste of space not to compress it again later. The results would be the same as what Google currently do. If Apple would like to optimize the size of updates they would have to do the same (I don't know if they are not doing it already). To achieve this the data would have to be recompressed.
- cperciva 10y agoI don't really understand this bit. Are packages stored on Android devices compressed? If not, why are they recompressing data?
- pmontra 10y agoAuto update is the default and I'm sure it's what most people is using. I disabled it many years ago to prevent app abusively add permissions and to prevent crashes. It was pretty common for new versions not to work properly on many devices. I remember checking the reviews before updating. This hasn't happened anymore for at least a couple of years and Android 6 solved the issue with the permissions but I didn't lose the habit. I'll download the full update. Furthermore I keep the phone in airplane mode at night. I want to sleep.
- deleted 10y ago[deleted]
- xbmcuser 10y agoDoesn't your phone have a sleep mode where all notifications etc are disabled for the time period you set. As this is the only phone I have I can't disable it completely have just whitelisted important numbers that would call in an emergency.
- pmontra 10y agoIt's got a do not disturb mode, I didn't check if it has a whitelist. People that could call me for emergencies have my land line number which is over my home Internet connection. If I had only a mobile phone I'd probably do like you do.
- Nullabillity 10y agoYou can whitelist them if you go to the notification settings for the app: http://iob.imgur.com/uYGg/Jj0DmTtRUy http://iob.imgur.com/uYGg/Jj0DmTtRUy If you have enabled Power Notification Controls then you can also blacklist from the same place: https://imgur.com/VgDowW3 https://imgur.com/VgDowW3
- Nullabillity 10y agoBefore Marshmallow it would refuse to auto-update apps if they added a permission. It would just show you a notification about the new permission and whether to accept/decline the update.
- bluedino 10y agoHow long does it take to do this, and what is the impact on battery life? I'd like to know for a high end device like the S7 or Pixel, but also the low end $99-$199 phones.