ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 16390|回复: 0
上一主题 下一主题
[教程]

《Android Dev Guide》系列教程2:应用基础之组件篇1

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-28 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
>
   
@ 每个继承拥有自己的虚拟机,所以程序间的运行是互相隔离的。
@ 默认情况下,每个应用程序都会分到一个特殊的Linux用户ID,并被设置权限,只对应用程序自己可见和使用,当然可以对其他程序开放。
可以安排两个程序共享一个UserID,这样他们可以互相看到对方的文件,共享系统资源,并且在同一个Linux线程里运行,共享虚拟机。
Android的一个核心特点就是一个应用程序可以由其他应用程序的组件来组成(在其他程序允许的前提下)。例如:如果你的程序需要显示一个图片列表并且另一个程序已经开发了合适的滚动条且允许其 他应用程序添加,那么你可以在他的滚动条基础上开发,比自己开发要方便的多。你的程序不需要合并他的代码只需要一个连接即可。相比之下,当我需要某个程序然后可以启动他时是最简单的。
想要这样的话,当这个程序的某一部分被别人用到时,系统必须能都启动一个应用程序的进程,并且实例化这些相关的Java对象,因此,与其他系统的应用程序不同的是,android程序没有一个单一的入 口程序(例如main方法),相比下,android有四种基本的组件可以被系统实例化、启动。包括:Activities、Services、Broadcast receivers、Content providers。
Activity提供了一个可视化的用户接口,例如:一个activity可以提供一个列表,供用户选择,或者在拍照时显示照片列表。一个短信程序有一个activity显示联系人列表,另一个activity可以写短信 并且选择联系人发送,别的activity可以查看以往的短信内容并且更改设置。这几个activity共同在一个用户界面里发挥着作用,他们之间互相依赖,每一个都是继承自activity基类的子类。
一个应用程序可以包含一个或者多个activity,例如刚提到的短信程序。需要多少就可以包含多少。通常,被标记的第一个activity先运行。当前activity启动完就启动下一个。
每个activity都被分配一个默认的窗口来绘制。通常是全屏,也可以比屏幕小或者浮在其他窗口上。一个activity可以利用额外的窗口,例如:在activity里探出一个让用户想用的弹出对话框,或者显 示一个给用户显示重要信息供用户选择的特殊选项。
窗口的可视内容由层式结构的view来显示,他们继承自view基类。每个view控制一个特定矩形空间内的窗口。父view控制并且组织子view 的显示。子view(上层的view)被绘制在矩形里响应用户的操作 ,从而与用户交互信息。例如可以显示一副小图片用户点击图片时响应一个事件。Android有很多现成的view可以被直接使用,包括按钮、文本框、滚动条、菜单、选择框等等。
通过Activity.setContentView()可以改变activity的显示,content view 是根视图。
servers没有用户接界面,但它确实在后台不定期的运行着。例如:但用户处理其他事情时,一个service可以背景播放音乐、后台读取网络数据或者处理其他的东西并且提供给其他的activity,每一个 servers都继承自Service基类。
一个最好的例子就是媒体播放器。播放器大概需要一个或多个activity来允许用户选择歌曲并且播放。然而,播放器不必是当前活动的activity,用户可能在播放时做别的事情。播放器需要启动一个后 台来持续播放音乐。系统会一直播放这个播放器service甚至当他隐藏时。
我们可以链接到一个正在运行的service,或者启动一个没有运行的service,当连接成功时,你可以和service的进程通信。例如播放器,用户可以控制他的开始暂停重放等功能。
像activity和其他的组件一样,services运行在主线程。所以不会阻塞其他的组件或者用户界面。他们往往启动一个新的任务。可参考Process and Threads。
Broadcast receiver这个组件只是接受receive和响应Broadcast广播通知。很多广播来源系统代码,例如通知时区已经改变、低电量、图片被选中、用户改变了语言设置,此时用户开始广播,例如,同 事其他应用程序网络数据已经下载ok可以使用了。
一个Broadcast receiver 可以响应多个广播,所有的Broadcast receiver 都继承自BroadcastReceiver基类。
Broadcast receivers 没有用户界面。然而,他们可以在接收到消息启动一个activity,或者使用notificationManager 去提醒用户。Notifications 可以通过一些方式引起用户注意:闪动背光、 震动、发声等等。通常在状态栏显示一个提示图标让用户可以查看。
Content providers为其他程序提供数据集,这些数据可以保存在系统文件里或者sqlite数据库里,Content providers继承自 ContentProvider基类,实现了一些标准的方法,可以 让程序检索或者改写其中的数据。程序不能直接的调用那些方法。ContentResolver不能与content provider直接通信,但可以用过ContentResolver 。ContentResolver 可以跟任何的content provider通信,可以与provider合作管理通 信进程。
更多信息查看Content Providers文档。
当有需要特定的请求需要被处理时,Android都会确保他正在运行,需要时会创建一个实例。
   
   
   
   
   
   
   

上一篇:转帖:进100个优秀开发项目
下一篇:Android2.2 API 中文文档系列 —— TextView
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-8-2 15:34 , Processed in 0.067882 second(s), 15 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表