欢迎来到天天文库
浏览记录
ID:12856022
大小:19.37 KB
页数:7页
时间:2018-07-19
《手机android应用程序基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android应用程序基础Android应用程序是用java语言写的,通过aapt工具把应用程序所需要的任何数据、资源文件打包成apk文件,这个文件是一个将应用安装到手机上的一个载体。 有很多方式,每个android应用程序存在于不同的世界: (1)默认的,每个应用在他自己的Linux进程中运行,当应用中的任何代码需要执行时android就启动相应的进程,当不需要执行时并且系统资源被其他应用请求时android就关闭相应的进程。 (2)每个进程都有他自己的虚拟机对象(VM),所以应用程序代码与其他的应用运行是彼此隔离的。 (
2、3)默认的,每个应用被分配一个唯一的LinuxuserID,都被设置权限以便应用程序的文件只对用户可见或者只对应用自己可见。 安排两个应用程序共享一个userID是可能的,这种情况下他们彼此之间是可以看见对方的文件的,为了保护系统资源,拥有相同ID的应用也能被安排运行在一个相同的Linux进程中,共享相同的VM。 1、应用组件(ApplicationComponents) Android一个核心的特点就是一个应用能使用另一个应用的元素(如果另一个应用允许的话),你的应用不需要包含你用到的另一个应用的代码也不需要你连接这些代码,
3、相反的,只是当应用需要这些代码时,就启动另一个应用相应的代码(不是让另一个应用全部启动) 为了这个能工作,当一个应用的任何部分被需要时系统必须能启动这个应用进程,并且将这个部分实例化成java对象,因此,和其他大多数系统不同的是,android应用程序没有一个单独的程序入口(例如:没有main()函数),相反的,android应用有必要的组件以便当需要时系统能实例化并运行它,android中有四种组件: (1)Activity 一个Activity是一个可见的用户可以使用的用户界面,如果一个应用中有多个Activity,虽然彼
4、此结合形成一个应用在一起工作,但是每个Activity是彼此独立的,每个都是Activity的一个子类。 一个应用程序可能由一个或多个Activity组成,这些Activity这么样显示,需要多少个Activity,依赖于这个应用的设计者,一般的,有一个Activity应该被标记成当这个应用启动时第一个呈现出来给用户的。 每个Activity默认的被给予一个窗口来绘制,一般的,这个窗口占满整个屏幕,但是他可以比屏幕小并且浮在另一个窗口的上面。 一个窗口中的可见的内容是由一些具有层次关系的view组成的,都是继承自View类的,
5、每个view都控制一个窗口中的特定的矩形框,parentview包含childrenview和组织childrenview的布局,leafview(那些在继承层次最底层的view)绘制在他们所控制的矩形框中,并且对用户的动作做出直接的回应,因此view就是Activity和用户交互的地方,android有很多已经做好的view你可以使用,包括buttons,textfields,scrollbars,menuitems,checkboxes等等 一个viewhierarchy是通过Activity.setContentView()
6、方法被放到一个Activity的window中的,contentview是viewhierarchy中最顶端的那个view。 (2)Services 一个service不是一个用户可见的组件,在不确定的一段时间内运行在后台,每个service都继承自Service类。 你可以连接(connect)或者绑定(bind)到一个正在运行的service(如果这个service还没运行的话就启动它),当连接到service后,你可以通过一个service暴露出来的接口和这个service交流,对musicservice来说,这个接口可
7、以是允许用户暂停,后退,停止,重新播放。 和Activity或者其他组件一样,service运行在这个应用进程的主线程中,所以他不会阻塞其他的组件或者用户界面,他们经常为那些耗时长的任务单独开一个线程。 (3)Broadcastreceivers 一个broadcastreceiver这样一个组件,他只是接收广播并作出反应,在系统中有很多已有的广播,比如反应时区变化(timezone)的,电池变化(battery)的,用户修改了系统语言时的广播,应用程序也可以自己定义广播,比如定义这样一个广播,让其他的应用知道某些数据已经下载
8、完毕了可以使用了。 一个应用可以有任意多个broadcastreceiver来对他所关心的广播进行监听并作出反应。所有的receiver都继承自BroadcastReceiver类。 BroadcastReceiver不显示在用户
此文档下载收益归作者所有