根据自己的浅学,及相关资料的查阅而进行的概括,也算自己的一点小体会吧!

在学习任何语言或技术时,如果不去了解它的发展历史,及其运作原理是不会把这门技术掌握的,学习Java是这样,学习Android亦是这样,开始阶段要对每段代码进行研究,逐一分析每段代码表示什么意思,为什么要这么用,还可以怎样用,这样才能在以后的项目中对每一个技术点应用的游刃有余!

Android应用采用java语言开发,但并不是直接将java代码复制到手机或模拟器上即可,而是使用Android SDK工具把代码(指所有的资源文件)编译为一个Android应用包(apk文件),然后才把该apk文件安装到android设备上。一旦安装到Android设备上之后,每个程序都会运行在一个独立的安全的区域中:

Android系统是一个多用户的Linux系统,而每一个安装在该系统上的应用都表示一个不同的用户,默认情况下,系统会为每个应用程序分配一个唯一的Linux用户标示【但这个标识只被系统所使用,应用程序本身是不知道的】。然后,系统会为应用中的所有文件设置权限,这样只有此应用才能访问这些文件。么个应用都在自己Linux进程中运行,在应用程序的任意组件需要执行的时候,Android系统会启动这个进程。当不再需要此进程或系统需要为其他应用回收资源(内存不足时),那么系统会关闭进程。

那么,在一个Android应用中,主要有哪些组件组成呢?四大块>>Activity || Intent Receiver || Service || Content Provider

这些组件是相互独立的,但是在开发Android应用的时候却要把他们联合起来,这样才能构成一个完整的Android应用。当然,并不是要将所有的组件都联合在一起用,而是,我们可以根据需要决定使用哪些组件。

Activity:是一个java类,通常是放在src目录下的文件,它必须要继承于Activity基类,在Android应用中,一个activity就表示一个单独的用户界面,此activity将会显示它所对应的用户界面,并对该界面上的发生的一些事件进行响应和处理。一个Android应用一般都会包括多个屏幕。eg:一个短信应用,它首先需要一个写短信的界面,其次它需要有一个显示所以联系人的列表界面...获取还需要更多的界面,那么,每一个这样的界面都是一个activity。(一些公用操作要做出相应的处理代码都需要在activity里完成)

Intent/BroadCast Receiver:这个在我们的手机上体现的就非常广泛了,它主要的功能就是可以使我们的应用程序能够响应外部事件,当接收到一些外/内部消息时,应用程序能够发出广播,从而达到通知用户的效果。尽管它是通过NotificationManager来提醒用户一些事件的发生,但它并不显示用户界面,一般会在系统状态栏中创建一个通知图标。eg,有电话打入你的手机、周围检测到有可用网络、手机电量低、软件下载完毕....的一些提示都由它完成。 Intent/BroadCast Receiver需要在AndroidManifest.xml文件中完成注册,也可以在代码中通过Context.registerReceiver()方法完成注册,应用程序不必调用intent reciver,系统会在需要的时候启动应用程序。当receiver被触发时。应用程序可以通过Context.broadcastIntent()

Service:从字面上理解它就是一个服务的意思,它是运行在后台的一段代码,Service具有很长的生命周期,且没有用户界面。它可以运行在它自己的进程,也可以运行在其他应用程序的上下文里面。其它的组件可以绑定到一个服务上面,通过远程过程调用来调用此方法。eg,从播放列表中正在播放的媒体播放器。可能它在播放的同时,这个用户又想打开其他的应用,那么如何能让用户一边听着播放的音乐,还能玩其他的应用呢?这就是由Service来保证,这时,媒体播放器就会调用Context.startService()来启动一个Service在后台运行来播放歌曲,也可以通过Context.bindService()方法连接一个service(如果它还没有运行将启动它)。

Content Provider:内容管理器,它也是一个类,其被实现为一组标准的方法。Content Provider提供对设备上数据进行访问的数据仓库。应用程序能够将数据存储在文件、SQLite数据库或其它有效的存储机制中,当想要与其他应用程序共享数据时,Content Provider将非常有用。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐