android 的多任务之道(个人渣水平,无责任翻译)(目前到Design considerations)-阿里云开发者社区

开发者社区> 技术小大人> 正文

android 的多任务之道(个人渣水平,无责任翻译)(目前到Design considerations)

简介:
+关注继续查看

Android is fairly unique in the ways it allows multiple applications to run at the same time.

android 使用十分独特的方式 允许多任务在同一时间运行.

Developers coming from a different platform may find the way it operates surprising.

开发者在不同的平台中发现这种方式会出现意想不到的事情.

Understanding its behavior is important for designing applications that will work well and integrate seamlessly with the rest of the Android platform.

了解这种行为在设计应用程序中十分重要,这样可以使程序运行的完美和无缝结合的保持在android平台中

This article covers the reasons for Android's multitasking design, its impact on how applications work, and how you can best take advantage of Android's unique features.

这篇文章展示的就是如何设计android程序的多任务,这紧紧的关系着应用程序是如何工作,和如何让你android程序拥有独特的高级特性.

 

Design considerations:设计的约束

Mobile devices have technical limitations and user experience requirements not present in desktop or web systems.

移动设备在技术上有着限制和用户体验需求不同于当前的桌面电脑和网络系统.

  • We did not want to require that users close applications when "done" with them. Such a usage pattern does not work well in a mobile environment, where usage tends to involve repeated brief contact with a wide variety of applications throughout the day.

  • 我们不想要求用户自行关掉程序.这样的习惯模式在手机的环境中不是很好,贯穿于一天当中的应用程序习惯趋向于反复简短的调用

  • Mobile devices don't have the luxury of swap space, so have fairly hard limits on memory use. Robert Love has a very good article covering the topic.

  • 移动设备没有丰富的交换空间,所以十分有限制的使用内存.Robert有一篇非常好的文章介绍这个主题.

  • Application switching on a mobile device is extremely critical; we target significantly less than 1 second to launch a new application. This is especially important when the user is switching between a few applications, such as switching to look at a new SMS message while watching a video, and then returning to that video. A noticeable wait in such situations will quickly make users hate you.

  • 在移动设备中应用程序的切换是十分苛刻的,我们的目标是尽量少于1s运行一个新的程序.当用户在少量程序之间切换是尤其的重要,例如,当用户在看视频的时候切换到短信管理器查看新的短信,然后,再回到看视频当中.一个显著的等待情形,将会使用户很快就讨厌你

  • The available APIs must be sufficient for writing the built-in Google applications, as part of our "all applications are created equal" philosophy. This means background music playback, data syncing, GPS navigation, and application downloading must be implemented with the same APIs that are available to third party developers.

  • 在构建的一个Google 应用程序现有的APIs必须充分的利用,作为我们”所有程序都是公平”哲学的一部分.这就意味着现有的一伙开发者在开发,后台播放音乐,数据同步,GPS导航,和应用程序的下载必须实现一样的APIs

The first two requirements highlight an interesting conflict.

有一个有趣的冲突在第一个条件和第二个条件.

We don't want users to worry about closing their apps, but rather make it appear that all of the applications are always running.

我们不想用户担忧如何关闭他们的程序,但是这样会出现所有程序都总是在运行当中.

At the same time, mobile devices have hard limits on memory use, so that a system will degrade or even start failing very quickly as it needs more RAM than is available; a desktop computer, with swap, in contrast will simply start slowing down as it needs to page RAM to its swap space.

在同一时间,移动设备只有十分有限的内存在使用,导致系统将会减慢或者甚至使一个需要很多空闲RAM的程序无法启动,

与之相比较,在桌面电脑中,同样使用交换空间,程序仅仅减慢启动速度,需要用到的交换空间由页面缓存代替.

These competing constraints were a key motivation for Android's design.

在android的程序设计中这些约束都是提升你程序性能的关键.PS:翻译果然不是一件容易的事情…水平太渣了…有错误欢迎指正…估计就翻这段了…能力不足呀… 

When does an application "stop"?:什么时候停止你的程序?

Explicitly running in the background:明确的运行在后台

The value of generic components:基础组件的价值


本文转自 liam2199 博客,原文链接:  http://blog.51cto.com/youxilua/773091 如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
异步、多线程、任务、并行编程之一:选择合适的多线程模型
异步、多线程、任务、并行编程之一:选择合适的多线程模型 本篇概述: @FCL4.0中已经存在的线程模型,以及它们之间异同点; @多线程编程模型的选择。  1:异步、多线程、任务、并行的本质 这四个概念对应在CLR中的本质,本质都是多线程。
1104 0
Spring Boot中有多个@Async异步任务时,记得做好线程池的隔离!
为了控制异步任务的并发不影响到应用的正常运作,我们必须要对线程池做好相应的配置,防止资源的过渡使用。除了默认线程池的配置之外,还有一类场景,也是很常见的,那就是多任务情况下的线程池隔离。
82 0
第4周-任务2-一个项目,多个文件
【题目】针对第3周任务3,利用多文件组织项目。其中,项目包括3个文件: 主文件: main.cpp,用于定义main()函数 头文件: mytime.h,头文件 类定义文件: mytime.cpp,用于定义类Time 要求: (1)如果原任务的设计存在问题,要改正过来; (2)在报告中逐个文件进行说明,在报告最后要就多文档组织提出个人的观点。 【题目说明】 在软件工程中,一
956 0
ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则
原文:ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则 对于Model验证,理想的设计应该是场景驱动的,而不是Model(类型)驱动的,也就是对于同一个Model对象,在不同的使用场景中可能具有不同的验证规则。
680 0
第6周-任务5-多文件组织三角形类
【题目】将任务4(第6周-任务4-用点类作成员的三角形类)中的的解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优点。 【要点】对多个文件一个项目的组织方法的一般原则是:(1)若干个功能相近的类的声明放在一个头文件中;(2)每个类的成员函数分别放在一个.cpp文件中;(3)如果有main(
893 0
基于多任务学习和负反馈的深度召回模型
召回结果的好坏对整个推荐结果有着至关重要的影响,最近的一系列实践和研究表明,基于行为序列的深度学习推荐模型搭配高性能的近似检索算法可以实现既准又快的召回性能;与此同时,用户在天猫精灵上还可以进行实时指令操控(歌名点播:“播放七里香”、风格流派推荐点播:“来点摇滚”、主动切歌:“下一首”等),如何利用这些丰富的反馈信息改进召回模型的性能,他们是怎么做的呢?
1177 0
1561
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载