桌面应用程序开发中的哪些概念(例如Java,WPF,Cocoa)最接近Android的基本概念,如Activity,ActivityGroup和Intent? (它们有何不同之处有什么细微差别?)
答案 0 :(得分:9)
你问这个问题我并不感到惊讶。 Android编程范例与我亲身经历的任何内容都有很大的不同,你第一次看API可能有点令人生畏。我从来没有真正开发过任何其他移动设备,但我认为Android拥有任何现有操作系统中最严格的架构,感觉就像是许多设计会议的结果。
我能想到的一些类似的模式:
Activity
本质上等同于桌面系统中的窗口,但在许多方面它也可以等同于整个应用程序。虽然Android应用程序通常由多个Activity
组成,但每个活动都有自己明确定义的生命周期和用于休眠/恢复自身的方法(例如onSaveInstanceState()
方法)。但是,Activity
绝对不等同于进程。如果您真的想了解Android流程生命周期的怪癖,请阅读Activity javadoc并查看this other SO question。ActivityGroup
实际上只与android.widget.TabHost
一起使用。您应该将ActivityGroup
视为单个Activity
。Activity
是一个容器,它是,但它没有孩子,也不负责布局或绘图。我想说一个更好的比喻是“Activity:window :: ViewGroup:layout / container。”android.app.Service
== daemon DispatcherObject
或SWT的Display
。ContentProvider
。 ContentProviders提供基于查询的语法,类似于您在传统操作系统上可能找到的任何ODBC实现。AndroidManifest.xml
。 底线: Android与我遇到的其他任何东西都非常不同,无论好坏,平台上会有很多细微差别,你会随着时间的推移继续发现。您可以做的最好的事情是从上到下直接阅读开发人员指南。我有7个月的时间成为一名全职的Android开发人员,而且我每天都在学习新事物。 : - )
答案 1 :(得分:0)
此外,采用任何库(不是用户界面jar),它的工作变化很小,不像J2ME修剪J2SE。 Android的JVM几乎等同于核心Java库。我尝试过Lucene,它在Android上的工作非常简单。
答案 2 :(得分:0)
您无法通过桌面开发了解,因为这是移动设备。
Intent与事件不同,因为事件落在您的方法上。意图首先在SDK中深入,在处理(启动,广播,通知)后,它将作为事件返回,以便您可以对其进行操作。