通过桌面开发视角了解Android概念

桌面应用程序开发中的哪些概念(例如 Java,WPF,Cocoa)最接近 Android的基本概念,如Activity,ActivityGroup和Intent? (它们有何不同之处有什么细微差别?)

解决方法

你问这个问题我并不感到惊讶. Android编程范例与我亲身经历的任何内容都有很大的不同,你第一次看API可能有点令人生畏.我从未实际开发过任何其他移动设备,但我认为Android拥有任何现有操作系统中最严格的架构,感觉就像许多设计会议的结果.

一些类似的模式,我可以想到我的头脑:

> Activity基本上等同于桌面系统中的窗口,但在很多方面它也可以等同于整个应用程序.虽然Android应用程序通常由多个Activity组成,但每个活动都有自己明确定义的生命周期和休眠/恢复自身的方法(例如onSaveInstanceState()方法).但是,活动绝对不等同于流程.如果您真的想了解Android进程生命周期的怪癖,请阅读Activity javadoc并查看this other SO question.
> ActivityGroup实际上只与android.widget.TabHost一起使用.您应该将ActivityGroup视为单个Activity.
>上面有人说Activity是一个容器,它是,但它没有孩子,也不负责布局或绘图.我想说一个更好的比喻是“Activity:window :: ViewGroup:layout / container”.
> android.app.Service ==守护进程
>与大多数UI框架一样,所有UI操作都发生在单个线程(“UI线程”)上,并且有一些实用程序方法可以让您将某些代码块排队,以便在UI线程上异步执行.这类似于WPF的dispatcherObject或SWT的display.
> Android将用户空间与内核空间的概念扩展到文件系统;您不仅可以访问其他应用程序的虚拟内存,而且您的应用程序还有自己的文件系统部分,其他用户或应用程序没有读/写权限.
>如果您确实希望为其他应用提供对应用私有数据存储的访问权限,则可以使用ContentProvider进行访问. ContentProviders提供基于查询的语法,类似于您在传统操作系统上可能找到的任何ODBC实现.
>我能想到的最接近Intents的类比实际上是AppleScript.正如OS X应用程序向脚本引擎公开某些方法一样,Android应用程序可以处理“意图”,这是一种高级别的IPC.这里的主要区别是Apple脚本化应用程序通过“脚本字典”公开其脚本元素,而很难找出Android应用程序可以处理的内容,除非您可以查看该应用程序的AndroidManifest.xml.

底线:Android与我遇到的其他任何东西都非常不同,无论好坏,平台上会有很多细微差别,你会不断发现.您可以做的最好的事情是从上到下直接阅读开发人员指南.我有7个月的时间成为一名全职的Android开发人员,而且我每天都在学习新事物.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...