Browsed by
分类:Android

[Android 开发学习] 认识App

[Android 开发学习] 认识App

应K酱邀请, 做一款桌面宠物App, 不过自己对Android开发一无所知, 于是就从0学起, 下文是从Android SDK Document 中摘录的内容, 供参考学习

应用程序(app)基础

每个应用程序都运行在独立的沙盒里, 拥有一个系统分配的用户ID, 只有其有权限访问的资源才能够访问 应用程序之间共享资源的方式有, 1. 分配同样的用户ID给两个应用程序, 这样他们就可以获得同样的权限以及资源, 通常这种情况下, app会运行在同一个VM中, 甚至同一个进程上, 这种共享方式要求这两个App拥有同样的证书 2.通过向系统请求权限,如阅读联系人记录, 读取短信信息等 这些特权都需要用户在安装的时候进行设置(之后也可以修改)

App的成分结构

Activitiy

每个Activity都是一个用户界面, (类似窗体), 一个App可以有多个Activity, 其他App可以调用该App下的某个Activity, 比如, 一个邮件客户端, 拥有一个邮件列表Activity,一个邮件发送Activity,  另一个相机App支持以email形式分享照片, 因此相机可以启动邮件客户端的邮件发送Activity

Services

Service是在后台运行的进程, 不提供用户界面, 后台运行, Activity可以启动一个Service 或者绑定到某个service上

Content Provider

Content Provider 就是一个管理shared data的接口(?) , 一个App可以把数据存在数据库, 网上, 本地存储 , 等存储介质中,  其他App可以通过请求Content Provider提供数据给他们,

Broadcast Receivers

接收器, 用于接收系统内广播的消息(如用户锁屏, 下载完成之类的..) App也可以自己发出Broadcast,  Broadcast Receivers 不会显示UI, 不过他们可以显示一个Notification(在Status bar上) 更通常的, Broadcast Receiver只是一个Gateway, 可能某个事件被他接收到之后, 他会去启动一个Service, 或者Activity .它只做很少的事情