当前位置:首页 » 安卓系统 » android组件库

android组件库

发布时间: 2023-04-12 15:02:41

㈠ Android系统四大组件

Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供(Content Provider)。其中活动是所有Android应用程序的门面,凡是在应用中你看得到的东西,都是放在活动中的。而服务就比较低调了,你无法看到它,但它会一直在后台默默地运行,即使用户退出了应用,服务仍然是可以继续运行的。广播接收器允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。内容提供器则为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。

开发工具:
JDK 。
JDK是java语言的软件开发工具包,它包含了Java的运行环境、工具集合、基础类库等内容。需要注意的是,本书中的Android程序必须要使用JDK 8或以上版本才能进行开发。

Android SDK 。
Android SDK是谷歌提供的Android开发工具包,在开发Android程序时,我们需要通过引入该工具包,来使用Android相关的API。

㈡ 请问Android中4大组件有哪些他们的作用是什么

Activity
官方解释:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它主要为保持各界面的状态做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑。

解释说明:我们也可以简单的理解为当前的操作界面。

Service
官方解释:Service后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事务,定义好需要接受的Intent提供同步和异步的接口。

解释说明:例如当我们打开音乐播放器后我们想让该音乐播放器至于后台运行。这时我们就可以启动服务来实现。

ContentProvider
官方解释:ContentProvider是Android中提供的第三方应用数据的访问方案,可以派生ContentProvider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部存储的存储细节,向外提供统一的数据接口模型,大大简化上层应用对数据的整合提供了更方便的途径。
解释说明:我们可以简单的理解为在我们的应用程序中我们在一块区域定制了一些规则来存储应用程序的相关信息。如果第三方应用程序想要访问到我们应用程序中的信息就需要满足我们定制的规则来进行获取。

BroadcastReceiver
官方解释:BroadcastReceiver接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播机制。

解释说明:这个机制可以理解为电视广播,我们通过广播发送一个节目。人们可以通过收音机调到对应的频率来进行接受广播而获取相应的信息。我们的应用程序可以通过广播发送信息,也可以通过一定的条件筛选来获取到被人发送的广播信息。而且广播的作用范围不局限于本应用程序内进行信息传递。
可以在秒秒学上看看Android的课程,讲解的可以,希望对你有帮助。

㈢ android怎么封装ui组件库

封装就是要主要不要和任务相关,提供的接口要尽量合理和便捷使用.

㈣ UI设计师,是时候了解一下组件库了

在开始这个话题之前,UI设计师先来回想一下自己的工作流程,当我们开始做一个界面时,不外乎两种情况,一种是新产品,一种是现有产品迭代界面重绘。对于前者,是不是先扒拉扒拉参考一下竞品的界面设计,然后套一套自己产品的功能,然后就可以开工了,这里需要放个导航条,嗯,这里用选项卡,再加个搜索框,搜索图标放里面好还是放外面好呢,就放外面吧,热门搜索要不要做成标签呢,不行,这事决定不了,去问问项目经理去,这里还需要一个文本输入框,限制200字,那就给它个高度300像素吧。而第二种情况,更简单,重新配配色,布布局,画画图标,就酱。不出意外的话,绝大多数UI不会脱离这个套路。(“大神级”UI自然也不会在看这篇文章,这一部分人就暂时忽略了)
如果作为UI设计师的你现在仍然停留在这个阶段的话,那从现在开始,你需要重新规划一下自己的设计思路了,并且,最最重要的是,你需要了解两个东东,“框架”和“库”。这两个概念我自己也比较模糊,从UI设计师的角度出发,我们需要知道的一点是和你们合作的前端极少极少不使用框架,而UI库是一些封装好的组件的样式,你发给攻城狮的设计稿,他们拿到后的第一反应就是赶快看看(咳咳,当我没说)有没有现成的可使用的组件样式,最好越接近你的设计越好,然后简单改改,攻城狮们的工作思路和我们是一样一样的,最好不改交互方式,只改样式。(什么控件、组件、插件的,我也不能严格区分,所以即使有错误的地方,也请勿纠正,哈哈)

说到这里,UI设计师又开始各种烦躁了,设计师到底为毛要掌握这些莫名其妙的知识??举个例子先,我们都知道给响应不是那么快的页面设计一个加载动画,那作为设计师的你知不知道加载状态是和服务器存在数据交互时使用,如果是本地行为,则不需要加载状态。只有了解这个,你才会知道你的加载动画应该在哪些页面出现,进行什么操作时出现,以什么形式出现合适。(咦,这个例子似乎举得没有代表性,那么来看下面这个例子)
就说个最简单的tab选项卡吧,SUI组件库里的tab选项卡样式是下面这样子的:

样式似乎没有什么参考性,但你从中要得到的一个重要信息就是,作为选项卡而言,内容要和选中标签页看上去成为一个整体,也就是说你可以重新设计成下面这个样式

但如果你设计成了这种样式

那么请来告诉我,这神秘的横线我该如何理解呢?即使下面这种,仍然不是最佳方式,因为我们的选项卡需要“第一眼看上去就知道哪个tab页处于选中状态”。

目前广泛应用的UI组件库,包括easyUI、amazeUI、Bootstrap等等,我们可以从这些来入手,在设计时进行一下参考,如果它的按钮有四个状态,OK,你也来对应设计四个状态,如果它的input输入框有禁用状态,获得焦点状态,那同样你也要在自己的设计文档中予以体现。(当然,并非绝对,也要考虑项目的实际情况,灵活变通)
现在重新理一下工作流程,你要先咨询一下前端开发人员他们常用什么,或者项目中已经使用了什么,咱们来举例说明,如果前端攻城狮们已经使用了EasyUI,而碰巧你的项目中需要一个日期选择的功能,那正确的思路应该是怎样的呢?
首先,你需要先看一下EasyUI库里日期控件的样子。就是下面这样

然后试一下功能,再进行设计时,心里就有底了,比如可以改成下面这样

但这样就完了么?作为UI还需要考虑对于这个控件而言都提供了几种状态?默认加载的当前日期、选中其他日期后的当前日期、鼠标经过、周六/周日的日期颜色、非本月的日期的颜色,这些都需要一一体现在你的标注文档里,事无巨细,一旦疏忽了其中任何一个小细节,好点的情况是负责的前端开发人员会过来和你沟通,而有时可能攻城狮们一疏忽,那只有寄希望于视觉走查和测试了。这么简单的一个日期控件都需要考虑全面,所以,一个合格的UI还是需要多沉浸的。
如果你不没有看过UI库里日期组件的样式,而自作主张的设计成了下面的样子

还拿出很多理论来支持自己的设计,你看,年和月的选择都很方便快捷嘛,嗯,好想看你被开发人员暴打的样子……当然了,这里不是说不让你发挥你的创意,不过除非你有非常说服力的理由和让别人心服口服的设计理论支持,否则,不要做这种出力不讨好的事情,因为作为成熟的组件库,经过多年的发展,已经被很多人所认可和使用,也能更大程度上和其他用户经常使用的产品保持一致的交互。

对于移动端,Android SDK提供的界面UI基本没有看的必要,而绝大多数开源UI库源码在github,给设计师们直观的查看设置了门槛,比如GreenDroid等等,Android的UI框架和web的有个比较大的区别就是按组件分类,像Side-Menu分类侧滑菜单,Pull-to-Refresh下拉刷新,给UI设计师推荐一个awesome-android-ui,自带Demo, https://github.com/wasabeef/awesome-android-ui/blob/master/pages/Material.md ,包括一些动效,很直观。
比如这种水纹效果的样式。

还有这种汉堡菜单/关闭/返回按钮的变换

作为UI设计师,在做原型稿的时候基本不用费尽心思用AE来做什么特效,直接附上效果和库的源文件地址就好,方便自己也方便开发。

另外移动端的UI日常尤其要注意控件样式的积累,自己建好文件夹,分好类,按钮/编辑框/switch/文本控件/进度条/滚动条/对话框/日历/导航/图表/菜单/轮播广告位/搜索框/标签组等等,为了减轻开发人员的负担,在看到不错的效果时,可以把Demo动画和项目地址同时保存下来,因为你的天马行空的想象或者简单一句“在XXX上好像看过这种效果”会让开发人员非常抓狂。
多看UI库的另外一个好处是拓展自己的设计思路,像下面这种Floating Action Button

还有粘连效果的页面指示器

如果不是看到这种动效,或许我们自己也想不出可以做成这种样子。

iOS开发的话因为我本人也只涉及过寥寥数个项目,而且都是和Android用的同一套界面,所以未总结出足够的经验,最多看看最新版的HIG人机交互指南,参考过几个竞品,所以这里就不献丑了。

㈤ android四大组件的作用是什么

Android 开发的四大组件分别是:活动(activity),用于表现功能;服务(service),后台运行服务,不提供界面呈现;广播接受者(Broadcast Receive),勇于接收广播;内容提供者(Content Provider),支持多个应用中存储和读取数据,相当于数据库。

  1. 活动

Android中,activity是所有程序的根本,所有程序的流程都运行在activity之中,activity可以算是开发者遇到的最频繁,也是android当中最基本的模块之一。在android的程序中,activity一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么activity就相当于一个网页。在activity当中可以添加一些Button、Checkbox等控件,可以看到activity概念和网页的概念相当类似。

一般一个android应用是由多个activity组成的,这多个activity之间可以进行相互跳转。例如,按下一个Button按钮后,可能会跳转到其他的activity,与网页跳转稍微有点不一样的是,activity之间的跳转有可能返回值。例如,从activity A跳转到activity B,那么当activity B运行结束时,有可能会给activity A一个返回值。这样做在很多时候是相当方便的。

当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的一处一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。

Android 开发的四大组件分别是:活动(activity),用于表现功能;服务(service),后台运行服务,不提供界面呈现;广播接受者(Broadcast Receive),勇于接收广播;内容提供者(Content Provider),支持多个应用中存储和读取数据,相当于数据库。

2.服务

Service是android系统中的一种组件,跟activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service是没有界面长生命周期的代码。Service是一种程序,可以运行很长时间的,但是却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这时如果想上网,那么打开Android浏览器,这时虽然已经进入浏览器这个程序,但是歌曲播放并没有停止,而是在后台继续一首接一首的播放,其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止。例如,当播放列表里的歌曲都结束,或用户按下了停止音乐播放的快捷键等。Service可以在很多场合的应用中使用,如播放多媒体时用户启动了其他Activity,这时程序要在后台继续播放,比如检测SD卡上文件的变化,或在后台记录地理信息位置的改变等,而服务却藏在后台。

开启Service有两种方式:

(1)Context.starService():Service会经历onCreat ——>onStar(如果Service还没有运行,则Android先调用onCreat(),然后调用onStar(),所以一个Service的onStar方能会重复调用多次);如果是调用者自己直接退出而没有调用StopService,服务会一直在后台运行。该服务的调用者再启动起来后可以通过stopService关闭服务。注意,多次调用Context.starService()不会被嵌套(即使会有相应的onStar()方法被调用),所以无论同一个服务被启动多少次,一旦调用Context.stopService()或者StopSelf(),都会被停止。

说明:传递给starService()的Intent对象会传递给onStar()方法。调用顺序为onCreat——onStar(可调用多次)——onDestroy.

(2)Context.bindService():服务会经历onCreate()——onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到服务运行的状态或其他操作。这个时候把调用者(Context,如Activity)会和服务绑定在一起,Context退出了,服务就会调用onUnbind——onDestroy相应退出,所谓绑定在一起就是“共存亡”了。

3.广播接收器

在Android中,广播是一种广泛运用的在应用程序之间传输信息的机制。而广播接收器是对发送出来的广播进行过滤接受并响应的一类组件。可以使用广播接收器来让应用对一个外部时间做出响应。例如,当电话呼入这个外部事件到来时,可以利用广播接收器进行处理。当下载一个程序成功完成时,仍然可以利用广播接收器进行处理。广播接收器不NotificationManager来通知用户这些事情发生了。广播接收器既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceive()进行注册。只要是注册了,当事件来临时,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast()将它们自己的Intent广播给其他应用程序。

4.内容提供者

内容提供者(Content Provider)是Android提供的第三方应用数据的访问方案。

在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。Android当然不会真的把每一个应用都做成一座“孤岛”,它为所有应用都准备可一扇窗,这就是Content Provider。应用想对外提供的数据,可以通过派生Content Provider类,封装成一枚Content Provider。每个Content Provider都用一个uri作为独立的标识,形如:content://com.xxxxx。所有应用看着像REST的样子,但实际上它比REST更为灵活。和REST类似,uri也可以有两种类型,一种是带id的;另一种是列表的,但实现者不需要按照这个模式来做,给id的uri也可以返回列表类型的数据。

㈥ Android四大组件是什么讲讲你对它们的理解

Android有四大组件:Activity、Service、Broadcast Receiver、Content Provider。

Activity

做一个完整的Android程序,不想用到Activity,真的是比较困难的一件事情,除非是想做绿叶想疯了。因为Activity是Android程序与用户交互的窗口,在我看来,从这个层面的视角来看,Android的Activity特像网站的页面。

Activity,在四大组件中,无疑是最复杂的,这年头,一样东西和界面挂上了勾,都简化不了,想一想,独立做一个应用有多少时间沦落在了界面上,就能琢磨清楚了。从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。对于开发者而言,就需要派生一个Activity的子类,然后埋头苦干上述事情。对于Activity的更多细节,先可以参见:reference/android/app/Activity.html。后续,会献上更为详尽的剖析。

Service

服务,从最直白的视角来看,就是剥离了界面的Activity,它们在很多Android的概念方面比较接近,都是封装有一个完整的功能逻辑实现,只不过Service不抛头露脸,只是默默无声的做坚实的后盾。

但其实,换个角度来看,Android中的服务,和我们通常说的Windows服务,Web的后台服务又有一些相近,它们通常都是后台长时间运行,接受上层指令,完成相关事务的模块。用运行模式来看,Activity是跳,从一个跳到一个,呃...,这有点像模态对话框(或者还像web页面好了...),给一个输入(抑或没有...),然后不管不顾的让它运行,离开时返回输出(同抑或没有...)。

而Service不是,它是等,等着上层连接上它,然后产生一段持久而缠绵的通信,这就像一个用了Ajax页面,看着没啥变化,偷偷摸摸的和Service不知眉来眼去多少回了。

但和一般的Service还是有所不同,Android的Service和所有四大组件一样,其进程模型都是可以配置的,调用方和发布方都可以有权利来选择是把这个组件运行在同一个进程下,还是不同的进程下。这句话,可以拿把指甲刀刻进脑海中去,它凸显了Android的运行特征。如果一个 Service,是有期望运行在于调用方不同进程的时候,就需要利用Android提供的RPC机制,为其部署一套进程间通信的策略。

Android的RPC实现,如上图所示(好吧,也是从SDK中拿来主义的...),无甚稀奇,基于代理模式的一个实现,在调用端和服务端都去生成一个代理类,做一些序列化和反序列化的事情,使得调用端和服务器端都可以像调用一个本地接口一样使用RPC接口。

Android中用来做数据序列化的类是Parcel,参见:/reference/android/os/Parcel.html,封装了序列化的细节,向外提供了足够对象化的访问接口,Android号称实现非常高效。

还有就是AIDL (Android Interface Definition Language) ,一种接口定义的语言,服务的RPC接口,可以用AIDL来描述,这样,ADT就可以帮助你自动生成一整套的代理模式需要用到的类,都是想起来很乏力写起来很苦力的那种。更多内容,可以再看看:guide/developing/tools/aidl.html,如果有兴致,可以找些其他PRC实现的资料lou几眼。

关于Service的实现,还强推参看API Demos这个Sample里面的RemoteService实现。它完整的展示了实现一个Service需要做的事情:那就是定义好需要接受的Intent,提供同步或异步的接口,在上层绑定了它后,通过这些接口(很多时候都是RPC的...)进行通信。在RPC接口中使用的数据、回调接口对象,如果不是标准的系统实现(系统可序列化的),则需要自定义aidl,所有一切,在这个Sample里都有表达,强荐。

Service从实现角度看,最特别的就是这些RPC的实现了,其他内容,都会接近于Activity的一些实现,也许不再会详述了。

Broadcast Receiver

在实际应用中,我们常需要等,等待系统抑或其他应用发出一道指令,为自己的应用擦亮明灯指明方向。而这种等待,在很多的平台上,都会需要付出不小的代价。

比如,在Symbian中,你要等待一个来电消息,显示归属地之类的,必须让自己的应用忍辱负重偷偷摸摸的开机启动,消隐图标隐藏任务项,潜伏在后台,监控着相关事件,等待转瞬即逝的出手机会。这是一件很发指的事情,不但白白耗费了系统资源,还留了个流氓软件的骂名,这真是卖力不讨好的正面典型。

在Android中,充分考虑了广泛的这类需求,于是就有了Broadcast Receiver这样的一个组件。每个Broadcast Receiver都可以接收一种或若干种Intent作为触发事件(有不知道Intent的么,后面会知道了...),当发生这样事件的时候,系统会负责唤醒或传递消息到该Broadcast Receiver,任其处置。在此之前和这以后,Broadcast Receiver是否在运行都变得不重要了,及其绿色环保。

这个实现机制,显然是基于一种注册方式的,Broadcast Receiver将其特征描述并注册在系统中,根据注册时机,可以分为两类,被我冠名为冷热插拔。所谓冷插拔,就是Broadcast Receiver的相关信息写在配置文件中(求配置文件详情?稍安,后续奉上...),系统会负责在相关事件发生的时候及时通知到该Broadcast Receiver,这种模式适合于这样的场景。某事件方式 -> 通知Broadcast -> 启动相关处理应用。比如,监听来电、邮件、短信之类的,都隶属于这种模式。而热插拔,顾名思义,插拔这样的事情,都是由应用自己来处理的,通常是在 OnResume事件中通过registerReceiver进行注册,在OnPause等事件中反注册,通过这种方式使其能够在运行期间保持对相关事件的关注。比如,一款优秀的词典软件(比如,有道词典...),可能会有在运行期间关注网络状况变化的需求,使其可以在有廉价网络的时候优先使用网络查询词汇,在其他情况下,首先通过本地词库来查词,从而兼顾腰包和体验,一举两得一石二鸟一箭双雕(注,真实在有道词典中有这样的能力,但不是通过 Broadcast Receiver实现的,仅以为例...)。而这样的监听,只需要在其工作状态下保持就好,不运行的时候,管你是天大的网路变化,与我何干。其模式可以归结为:启动应用 -> 监听事件 -> 发生时进行处理。

除了接受消息的一方有多种模式,发送者也有很重要的选择权。通常,发送这有两类,一个就是系统本身,我们称之为系统Broadcast消息,在reference/android/content/Intent.html 的Standard Broadcast Actions,可以求到相关消息的详情。除了系统,自定义的应用可以放出Broadcast消息,通过的接口可以是 Context.sendBroadcast,抑或是Context.sendOrderedBroadcast。前者发出的称为Normal broadcast,所有关注该消息的Receiver,都有机会获得并进行处理;后者放出的称作Ordered broadcasts,顾名思义,接受者需要按资排辈,排在后面的只能吃前面吃剩下的,前面的心情不好私吞了,后面的只能喝西北风了。

当Broadcast Receiver接收到相关的消息,它们通常做一些简单的处理,然后转化称为一条Notification,一次振铃,一次震动,抑或是启动一个 Activity进行进一步的交互和处理。所以,虽然Broadcast整个逻辑不复杂,却是足够有用和好用,它统一了Android的事件广播模型,让很多平台都相形见绌了。更多Broadcast Receiver相关内容,参见:/reference/android/content/BroadcastReceiver.html。

Content Provider

Content Provider,听着就和数据相关,没错,这就是Android提供的第三方应用数据的访问方案。在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不允许其他直接访问的,但有时候,沟通是必要的,不仅对第三方很重要,对应用自己也很重要。

比如,一个联系人管理的应用。如果不允许第三方的应用对其联系人数据库进行增删该查,整个应用就失去了可扩展力,必将被其他应用抛弃,然后另立门户,自个玩自个的去了。

Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。应用想对外提供的数据,可以通过派生ContentProvider类, 封装成一枚Content Provider,每个Content Provider都用一个uri作为独立的标识,形如:content://com.xxxxx。所有东西看着像REST的样子,但实际上,它比REST 更为灵活。和REST类似,uri也可以有两种类型,一种是带id的,另一种是列

表的,但实现者不需要按照这个模式来做,给你id的uri你也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。

另外,Content Provider不和REST一样只有uri可用,还可以接受Projection,Selection,OrderBy等参数,这样,就可以像数据库那样进行投影,选择和排序。查询到的结果,以Cursor(参见:reference/android/database/Cursor.html )的形式进行返回,调用者可以移动Cursor来访问各列的数据。

Content Provider屏蔽了内部数据的存储细节,向外提供了上述统一的接口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。Content Provider内部,常用数据库来实现,Android提供了强大的sqlite支持,但很多时候,你也可以封装文件或其他混合的数据。

在Android中,ContentResolver是用来发起Content Provider的定位和访问的。不过它仅提供了同步访问的Content Provider的接口。但通常,Content Provider需要访问的可能是数据库等大数据源,效率上不足够快,会导致调用线程的拥塞。因此Android提供了一个AsyncQueryHandler(参见:reference/android/content/AsyncQueryHandler.html),帮助进行异步访问Content Provider。

在各大组件中,Service和Content Provider都是那种需要持续访问的。Service如果是一个耗时的场景,往往会提供异步访问的接口,而Content Provider不论效率如何,都提供的是约定的同步访问接口。我想这遵循的就是场景导向设计的原则,因为Content Provider仅是提供数据访问的,它不能确信具体的使用场景如何,会怎样使用它的数据;而相比之下,Service包含的逻辑更复杂更完整,可以抉择大部分时候使用某接口的场景,从而确定最贴切的接口是同步还是异步,简化了上层调用的逻辑。

㈦ android开发要哪些jar

am.jar:终端下执行am命令时所需的java库。源码目录:framework/base/cmds/am
android.policy.jar:锁屏界面需要用到的jar包,该包引用了android.test.runner.jar,源码目录:framework/base/policy
android.test.runner.jar:测试应用所需的jar包,该包引用了core.jar,core-junit.ajr以及framework.jar,源码目录:framework/base/test-runner
bmgr.jar:adb shell命令下对Android Device所有package备份和恢复的操作时所需的java库。 不过这个android服务默认是Disabled,而且要backup的应用必须实现BackupAgent,在AndroidManifest.xml的application标签中加入android:backupAgent属性。源码目录:framework/base/cmds/bmgr
bouncycastle.jar: java三方的密匙库,网上资料说用来apk签名、https链接之类,官网 :http://www.bouncycastle.org/java.html
com.android.future.usb.accessory.jar:用于管理USB的上层java库,在系统编译时hardware层会调用到。源码目录:frameworks/base/libs/usb
com.android.location.provider.jar:
com.android.nfc_extras.jar:NFC外部库。android/nfc/NfcAdapter.java会调用到包中的NfcAdapterExtras.java。源码目录:frameworks/base/nfc-extras
core-junit.jar :junit核心库,在运行*Test.apk时被调用。
core-junitrunner.jar:未知,公司话机上有。
core-tests*.jar:framework下的一系列测试jar包,不做测试时可删除。
core.jar:核心库,启动桌面时首先加载这个。源码目录:
ext.jar:android外部三方扩展包,源码主要是external/nist-sip(java下的sip三方库)、external/apache-http(apache的java三方库)、external/tagsoup(符合SAX标准的HTML解析器)。其实这个jar包可以添加外部扩展jar包,只需在framework/base/Android.mk中的ext-dir添加src目录即可。
framework-res.apk:android系统资源库。
framework.jar:android的sdk中核心代码。
ime.jar:ime命令所需jar包,用于查看当前话机输入法列表、设置输入法。源码目录:framework/base/cmds/ime
input.jar:input命令所需的jar包,用于模拟按键输入。源码目录:framework/baes/cmds/input
javax.obex.jar:java蓝牙API,用于对象交换协议。源码目录:framework/base/obex
monkey.jar:执行monkey命令所需jar包。源码目录:framework/base/cmds/monkey
pm.jar:执行pm命令所需的jar包,pm详情见adb shell pm,源码目录:framework/base/cmds/pm
services.jar:话机框架层服务端的编译后jar包,配合libandroid_servers.so在话机启动时通过SystemServer以循环闭合管理的方式将各个service添加到ServiceManager中。源码目录:framework/base/service
sqlite-jdbc.jar: sqlite的Java DataBase Connextivity jar包。
svc.jar:svc命令所需jar包,可硬用来管理wifi,power和data。源码目录:framework/base/cmds/svc

㈧ 什么是android的四大组件

Android四大组件有Activity,Service服务,Content Provider内容提供,BroadcastReceiver广播接收器。

Android应用程序由一些零散的有联系的组件组成,通过一个工程manifest绑定在一起。在manifest中,描述了每一个组件以及组件的作用,其中有6个组件,它们是Android应用程序的基石

(8)android组件库扩展阅读

Activities(活动)

应用程序的显示层。每一个画面对应于你的应用程序,将会是Activity类的扩展。Activity使用Views去构建UI来显示信息和响应用户的行为。就桌面开发而言,一个Activity相当于一张Form。

Services(服务)

Android应用程序中不可见的“工人”。 Service组件运行时不可见,但它负责更新的数据源和可见的Activity,以及触发通知。它们常用来执行一些需要持续运行的处理,当你的 Activity已经不处于激活状态或不可见。

Content(内容)

提供共享的数据存储。Content Provider(内容提供器)用来管理和共享应用程序的数据库。在应用程序间,Content Provider是共享数据的首选方式。

Broadcast Receivers(广播接收器)

Intent广播的“消费者”。通过创建和注册一个Broadcast Receiver,应用程序可以监听符合特定条件的广播的Intent。Broadcast Receiver 会自动的启动你的Android应用程序去响应新来的Intent。Broadcast Receiver是事件驱动程序的理想手段。

参考资料来源:网络-Android组件

热点内容
无锡皮箱密码锁哪里卖 发布:2024-05-21 14:31:03 浏览:471
如何下载泡泡安卓版 发布:2024-05-21 14:27:22 浏览:296
python初始化对象 发布:2024-05-21 14:22:27 浏览:253
socket编程udp 发布:2024-05-21 14:16:21 浏览:999
沙盘模拟资源配置怎么写 发布:2024-05-21 14:16:21 浏览:39
文件夹adi 发布:2024-05-21 14:15:47 浏览:708
吉利gl中配有哪些配置 发布:2024-05-21 14:07:16 浏览:206
如何发布php 发布:2024-05-21 14:07:15 浏览:345
plsql脚本 发布:2024-05-21 13:46:41 浏览:936
学习编程青少年 发布:2024-05-21 13:27:19 浏览:709