当前位置: 首页 > 编程日记 > 正文

Android Go初探

Android Ore(Go edition)

简介:

Android Go并不是一个独立的操作系统,它只是Android O的一种轻量级配置方案,专为1GB以下内存的机型设计,
在这种设置下,一些消耗大量资源的功能将被关闭,同时预装的应用也是轻量级的,不会消耗大量系统资源和数据流量。Google在会上斌没有说到相关Android Go上的功能的变化,但可以想象到,必定会有部分占用太多资源的非必要的一些功能拿掉,如果在没有功能缺失的情况下,入门级设备的性能就能得到很棒的优化,那么就不会出现Android Go, 而将会是一个非常nice的Android O。而具体的内容,需要等其发布之后才能去一探其究。


Go版本的优化的三个方向:

1. OS

改善了整个平台的内存使用情况,确保app能够在1GB以下内存的设备上高效的运行。据说,Go版本减少了大约一半的存储空间。

2. APP

增加了新的硬件功能常量,能够灵活区分出是为正常还是低内存设备设计的应用软件。

PackageManager.FEATURE_RAM_LOW = "android.hardware.ram.low"  //RAM <= 1GB
ActivityManager.isLowRamDevice() return true;
PackageManager.FEATURE_RAM_NORMAL = "android.hardware.ram.normal"

Googel重新设计适合Go版本的应用, 使之占用更少的内存,在低端机上有更好的表现,包括包括YouTube Go、谷歌地图Go、Gmail Go等, 同时, 谷歌还专门为Android Go开发了几个新应用, 比如Google Go和Files Go。Google Go是一款修改版的Google Lite应, 能够让用户更容易的找到流行信息、网站和应用程序,转换Gif动画和文字。而Files Go则是一款文件管理器, 可以让用户管理智能手机的存储空间。

3. Googel Play

AndroidOreo Go平台的Play Store商店与普通的Google Play商店所有内容一样,但更适合低存储容量设备。
谷歌额外增加了一个特色应用板块,专门为Android Go设备推荐轻便、好用、适合的应用。通过 Googel Play的一些应用为开发者
提供优化经验和开发指南。


如何针对运行于Go版本的设备优化APP?

为了确保应用能够在Android Go版本上良好的运行,需要参考以下指导意见:

  1. 需要在manifest添加声明:
<uses-feature android:name="android.hardware.ram.low" android:required="true"/>
  1. targetSdkVersion应该是Android最新的版本,Android Go设备只能运行在API 26及其以上的版本。
  2. 设备上的应用程序大小应该小于40MB。
  3. 应用程序内存使用的PPS(Proportional Set Size)不应该超过50MB,
    游戏内存使用的PPS不应该超过150MB。
    ——PSS:实际使用的物理内存,按比例分配共享库占用的内存。
  4. 应用程序的启动时间最小,应在5s之内。
  5. 有效的使用内存(看下一标题)。
    补充:通过dumpsys命令可以查看到app的内存信息,如图,可以看到PPS值是:42168
    img_3e316fd4befeb625a57d32468fea61e9.png
    pss1.png

如何有效的使用内存?

好的内存管理才能使APP运行得更稳定、性能更好。

减少低成本设备上的内存占用

  1. 动态调整内存的占用,确保不同RAM设备之间的兼容。
  2. 利用isLowRamDevice()和getMemoryClass()来确定运行时内存限制,通过这些信息,缩小内存的使用。
    比如:在低内存设备上使用低分辨率的图片。
  3. 管理应用内存(具体内容可参考Googel开发者平台)。

避免长时间运行的进程

长时间运行的进程驻留在内存中,会降低设备的内存,大多数情况下,APP的运行过程应该是:
通过某个事件唤醒APP;处理数据;关闭。
可以使用 Firebase Cloud Messaging (FCM) 和 GcmNetworkManager来避免长时间运行的后台服务,减少设备的内存压力。

内存使用的检查

利用Android Studio提供的Memory Profiler tool,能够在设备运行时监控内存的使用情况。
可以帮助捕获无意的内存占用增长,使用该工具执行以下操作:
 找出不希望的GC事件是否会导致性能问题。
 识别无必要地获取或保持分配的对象类型。
 确定代码中可能存在问题的地方。


http://blog.csdn.net/wsq_tomato/article/details/78934573

相关文章:

Apache HTTP Server Version 2.2 文档中文版

模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航 Apache HTTP Server 版本2.2 Apache > HTTP Server > 文档 > 版本2.2致谢 | 本篇译者&#xff1a;金步国(其他作品) | 本页最后更新&#xff1a;2006年10月20日[查看最新版本] 电信镜像 网通镜像Apache HTTP Ser…

归一化变换 Normalizing transformations

归一化变换包含两个部分&#xff0c;图像坐标的平移和尺度的缩放。进行归一化的变换不但能够提高处理结果的精确度&#xff0c;而且通过选择一个标准的坐标系预先的消除了图像尺度和坐标原点的选择对算法最终结果的影响。 归一化变换的步骤&#xff1a; 对点进行平移&#xff0…

Arm 通过虚拟硬件与新的解决方案导向的产品 带动物联网经济转型

Arm物联网全面解决方案通过一套全栈式解决方案&#xff0c;大幅加速产品开发进程并提高投资回报率&#xff1b;Arm虚拟硬件使得开发无需基于实体芯片进行&#xff0c;促成软件与硬件的共同设计&#xff0c;让产品开发时间最多缩短两年&#xff1b;Project Centauri作为Arm新的生…

数据库设计 之设计 表字段类型

2019独角兽企业重金招聘Python工程师标准>>> 数据库设计 之设计 表字段类型 博客分类&#xff1a; sql 之前没有 数据库设计的一些经验。 这次数据库设计。由于需求原因和没经验原因。 一些数字类型的字段设计成了varchar2 一些日期类型的字段也设计成了varchar2 一…

Apache关掉Etag和Last-Modified的方法

Apache关掉Etag和Last-Modified的方法,可能也只有我这种无聊的人才会做这种事情.哈哈&#xff0c;关掉etag和last-modified会出现什么样的情况。做一个这样的测试. 不要问我这二个参数是做什么的。。。。。在我的blog中有写. Etag关掉的方法如下,加一个none FileETag none …

P2P最易遭受的DDoS***以及防御手段

从07年的爱沙尼亚DDoS信息战&#xff0c;到2009年广西南宁30个网吧遭受到DDoS勒索&#xff0c;再到新浪网遭受DDoS***无法提供对外服务500多分钟。DDoS愈演愈烈&#xff0c;***事件明显增多&#xff0c;***流量也明显增大&#xff0c;形势十分严峻&#xff0c;超过1G的***流量频…

从飞天到倚天 阿里云底层自研技术大爆发

10月20日&#xff0c;2021云栖大会上&#xff0c;阿里云发布了倚天、磐久、神龙4.0、龙蜥、灵杰等多款重磅产品&#xff0c;阿里云“做深基础”成果浮出水面&#xff0c;底层自研技术迎来大爆发。 阿里云智能总裁张建锋表示&#xff0c;过去十二年&#xff0c;阿里云打造出中国…

CSS vs. JS Animation: 哪个更快

CSS vs. JS Animation: 哪个更快? CSS vs. JS Animation: 哪个更快? 基于JavaScript的动画竟然已经默默地比CSS的transition动画快了&#xff1f;而且&#xff0c;Adobe和 Google竟然一直在发布可以媲美原生应用的富媒体移动站点&#xff1f; 这篇文章将会逐点讲解基于JavaSc…

Squid下Http头信息优先级

no-cache>Expires>refresh_pattern>Last-Modified 也就是讲,最前面的最重要,前面的生效后,后面的基本就失效了. 另外squid本身就能对比Last-Modified,但根据我的测试&#xff0c;Etag还是会要向源服务器发送请求头&#xff0c;来确认etag的. ETag默认是需要向源网站…

阿里云PolarDB数据库将云原生进行到底!业内首次实现三层池化

10月20日&#xff0c;在2021云栖大会上&#xff0c;阿里云宣布自研云原生关系型数据库PolarDB重磅升级&#xff0c;实现内存池化、多主架构、HTAP实时分析等创新功能&#xff0c;进一步引领云原生数据库技术的持续创新。 阿里云智能数据库事业部总负责人李飞飞表示&#xff0c;…

zencoding实践

2019独角兽企业重金招聘Python工程师标准>>> .container<div class"container"></div>.wrap>ul>.list>.site <div class"wrap"><ul><li class"list"><div class"site"></…

第三期 OSI七层中第一层 物理层

物理层1、信号1&#xff09;信息2&#xff09;数据3&#xff09;信号&#xff1a;信息传递的媒介 4&#xff09;信号的分类&#xff1a;模拟信号&#xff1a;连续变化的物理量。数字信号&#xff1a;不连续的物理量&#xff0c;信号参数也不连续变化&#xff0c;高低固定。5&am…

Squid的refresh_pattern配置

refresh_pattern 大概是 squid 最有意思但最不好懂的配置参数了。 记住refresh_pattern 只对后端没设置Expires过期时间的页面起作用&#xff0c;比如论坛页面&#xff1b;而对类似apache mod_expires 设置过的页面不起作用。 说明之前&#xff0c;先将个概念LM&#xff0c;L…

阿里云发布第四代神龙架构云计算首次进入5微秒时延时代

10月20日&#xff0c;2021云栖大会上&#xff0c;阿里云宣布推出第四代神龙架构&#xff0c;这是飞天云操作系统新一代虚拟化技术&#xff0c;首次搭载全球唯一的大规模弹性RDMA加速网络&#xff0c;网络延迟整体降低80%以上。神龙4.0带来的计算架构革新&#xff0c;将云计算首…

【微服务】Spring-Boot整合Consul (自定义服务配置及健康检查)

为什么80%的码农都做不了架构师&#xff1f;>>> 目的 上文提到仅使用discovery包自带的注册功能进行服务注册&#xff0c;但是由于监控的是 /health&#xff0c;使用actuator实现自由度不够&#xff0c;并且有些低级异常可能不完全影响服务运行&#xff0c;但状态依…

Apache URL重定向避免网址结尾斜线问题

结尾斜线问题描述: 每个网主都曾受到结尾斜线问题的折磨&#xff0c;若在URL中没有结尾斜线&#xff0c;服务器就会认为URL无效并返回错误&#xff0c;因为服务器会根据/~quux/foo去寻找foo这个档案&#xff0c;而非显示这个目录。其实很多时候&#xff0c;这问题应留待用户自己…

16:00面试,16:08就出来了 ,问的实在是太...

从外包出来&#xff0c;没想到算法死在另一家厂子自从加入这家公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到8月一纸通知&#xff0c;所有人不许加班&#xff0c;薪资直降30%&#xff0c;顿时有吃不起饭的赶脚。好在有个兄弟内推我…

提前了解客户背景很有必要

2019独角兽企业重金招聘Python工程师标准>>> 最近&#xff0c;公司与某电商展开了合作&#xff0c;我司将为该电商提供提供一套广告解决方案。我有幸参与到这个项目&#xff0c;了解该电商的需求&#xff0c;思考公司的产品是否能够和如何满足这些需求。近日&#x…

wamp多站点访问设置

1、修改C:\Windows\System32\drivers\etc\hosts文件 2、修改httpd.conf和httpd-vhosts.conf文件 3、重启apache转载于:https://www.cnblogs.com/liusirdotme/p/8177386.html

满足极高读写性能需求的Key-Value数据库

满足极高读写性能需求的Key-Value数据库 高性能Key-Value数据库的主要特点就是具有极高的并发读写性能&#xff0c;Redis&#xff0c;Tokyo Cabinet&#xff0c; Flare&#xff0c;这3个Key-Value DB都是用C编写的&#xff0c;他们的性能都相当出色&#xff0c;但出了出色的性…

QQ群功能设计与心理学

2019独角兽企业重金招聘Python工程师标准>>> 刚刚在一个Java技术交流群&#xff0c;发了个 "博客投票"的广告。 群主两眼一黑&#xff0c;瞬间就把我给干掉了。 看到QQ给出的系统消息&#xff0c;发现QQ群的一个功能做得很不错。 大家注意到&#xff0c;右…

龙蜥降世,神龙升级,阿里云投入 20 亿发力操作系统

作者 | 贾凯强、伍杏玲 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;10 月 20 日&#xff0c;阿里巴巴云栖大会继续在杭州进行&#xff0c;与开幕第一天的主论坛不同&#xff0c;第二天活动的主论坛更加聚焦与技术领域和技术实践。20 日上午&#xff0c;阿里…

35.2. Subversion 版本控制

subversion 初始化trunk branches releases tags svn co svn://127.0.0.1/document cd project mkdir trunk mkdir tags mkdir branches mkdir releases svn ci -m "Initialized empty subversion repository in your_project"创建docbook文档&#xff0c;安排章节…

使用卷积神经网络预防疲劳驾驶事故

作者|小白来源|小白学视觉疲劳驾驶&#xff1a;一个严重的问题美国国家公路交通安全管理局估计&#xff0c;每年有 91,000 起车祸涉及疲劳驾驶的司机&#xff0c;造成约50,000 人受伤和近 800 人死亡。此外&#xff0c;每 24 名成年司机中就有 1 人报告在过去 30 天内在驾驶时睡…

详解Apache下.htaccess文件常用配置

.htaccess文件是Apache服务器中最常用的一个配置文件&#xff0c;它负责相关目录下的网页配置。通过htaccess文件&#xff0c;可以帮我们实现&#xff1a;网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置索引入口等…

hadoop HDFS常用文件操作命令

命令基本格式: hadoop fs -cmd < args >1.ls hadoop fs -ls /列出hdfs文件系统根目录下的目录和文件 hadoop fs -ls -R /列出hdfs文件系统所有的目录和文件 2.put hadoop fs -put < local file > < hdfs file >hdfs file的父目录一定要存在&#xff0c;否则…

php缓存技术总结

全页面静态化缓存也就是将页面全部生成html静态页面&#xff0c;用户访问时直接访问的静态页面&#xff0c;而不会去走php服务器解析的流程。此种方式&#xff0c;在CMS系统中比较常见&#xff0c;比如dedecms&#xff1b;一种比较常用的实现方式是用输出缓存&#xff1a;Ob_st…

两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!

作者 | 周萝卜来源 | 萝卜大杂烩通常情况下&#xff0c;我们使用 Pandas 来读取 Excel 数据&#xff0c;可以很方便的把数据转化为 DataFrame 类型。但是现实情况往往很骨干&#xff0c;当我们遇到结构不是特别良好的 Excel 的时候&#xff0c;常规的 Pandas 读取操作就不怎么好…

ArcEngine中的缩放地图

在ArcEngine地图操作中&#xff0c;缩放地图的功能经常用到&#xff0c;这里做一个小结。 缩放地图一般可分为以下几种情况&#xff1a; 1.缩放地图&#xff1a;与放大地图相对&#xff0c;一般是手动绘制区域或固定比例缩放&#xff0c;可调用命令或Expand函数来&#xff1b; …

【小记】批处理FOR循环中的参数/D

2019独角兽企业重金招聘Python工程师标准>>> 官方说明 FOR /D %variable IN (set) DO command [command-parameters] 如果集中包含通配符&#xff0c;则指定与目录名匹配&#xff0c;而不与文件名匹配。 栗子 REM Eg1.bat REM 与此批处理同级的目录名称全部打印出来…