Android Go初探

简介: Android Ore(Go edition)简介: Android Go并不是一个独立的操作系统,它只是Android O的一种轻量级配置方案,专为1GB以下内存的机型设计,在这种设置下,一些消耗大量资源的功能将被关闭,同时预装的应用也是轻量级的,不会消耗大量系统资源和数据流量。

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

目录
相关文章
|
存储 移动开发 缓存
使用 Go 语言开发 Android 应用的正确姿势探索
使用 Go 语言开发 Android 应用的正确姿势探索
使用 Go 语言开发 Android 应用的正确姿势探索
|
Java Unix 编译器
Go语言将支持Android
在前些日子谷歌于2009年发布的第二款自家语言Go语言刚刚发布了1.3正式版,大幅度解决了GC问题,最近谷歌开发版里又有了新爆料:谷歌终于要在1.4版本中正式支持Android系统开发,可以编译器直接编译发布到Android平台
382 0
|
Android开发 计算机视觉 数据安全/隐私保护
(GO_GTD_3)基于OpenCV和QT,建立Android图像处理程序
一、解决权限问题     图片采集了,处理了,如何保存?最直接的方法是使用imwrite,但是如果现在直接使用的话,比如会出现这样或那样的错误,因为我们现在是在android的环境下进行图像处理,所以必须要融入到Android的权限管理系统中去。
1435 0
|
Java Android开发 计算机视觉
(GO_GTD_2)基于OpenCV和QT,建立Android图像处理程序
一、综述     如何采集图片?在windows环境下,我们可以使用dshow,在linux下,也有ffmpeg等基础类库,再不济,opencv自带的videocapture也是提供了基础的支撑。那么在andoird下,使用的肯定是Android自带的相关函数了。
1456 0
|
Android开发 计算机视觉
(GO_GTD_1)基于OpenCV和QT,建立Android图像处理程序
一、创建新QT工程 一定要是全英文路径,比如“E:\android_qt_opencv\GO_GTD” 由于我们在安装的时候,选择android的工具链,所以在这里会出现以下选择,正确进行选择。   现在大家手头淘汰下来的手机都是很多了,其中不乏还可以用的。
1147 0
|
Java 程序员 Android开发
GOAndroid的安装和配置
android环境的配置还是比较复杂的,特别对于我这样一直使用mfc的程序员来说,有很多观念上需要转变。好在配置成功后就能够不断复用,那么这样的问题值得整理出来 一、安装jdk 二、解压adt-bundle-windows(GO)。
806 0