Android运作原理
Android运行原理【转】
今天终于忙里偷闲,和大家探讨一下android技术,第一次听到3G应该追溯到大学三年级的时候了,记得当时现代通信技术老师给我们提到了3G技术,一直到今天,3G真正开始走入我们的生活,据不完全统计,截止09年年底,中国目前从事Android开发人员不足500人,而我们现在却在一步步走入这个行列,这也无不归功于传智的优秀的课程体系,更加应该归功于像黎活明老师这样执着于技术研究和学习的老师们,虽然android的学习仅仅六天,里面的学习内容以及学习方法和思想已经足够我们在日后开发的需要了,因为这套课程是黎老师经过数个月的研究学习总结出来的一系列知识点以及学习方法,由于目前从事3G开发的人员并不多,所以相关的学习资料也是少之甚少,而黎老师为了教授给我们足够多的东西,为了让我们更容易吸收,花了大量的时间去试验,研究底层源代码,最后形成的这套完美的课程体系,真的感觉是受益匪浅,所以实在忍不住要和大家一起分享下。
一、Android应用程序架构
当我们安装好Android到IDE后,我们可以看到如下程序架构,其中:
l src
java原代码存放目录
l gen
gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。
l Res
在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。具体请看ppt下方备注栏。
l AndroidManifest.xml
功能清单文件,这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity
l default.properties
项目环境信息,一般是不需要修改此文件
二、编写应用程序思路
在建立一个应用程序,我们先要去配置清单AndroidManifest.xml中指定应用程序的基本信息,例如图标,标题,应用程序名称(相关值的设置可以在values中配置string.xml)等,然后我们需要注册一个activity(一般一个应用程序对应一个activity),然后我们可以注册一下意图。详细说明如下:
以上代表意图过滤器,匹配了意图,那么就有activity处理这件事情,例如我们点击图标的时候,被包装成为一个意图intent(action和category两参数),然后android.intent.action.MAIN被包装成为一个action,android.intent.category.LAUNCHER被包装成为一个category,然后有和这两个参数匹配的意图过滤器,相应去找对应的activity
接下来我们需要修改res中的drawable的图标信息,layout(修改布局信息main.xml)以及values(修改字符串信息)。配置好后,进行相应的业务逻辑代码编写,最后发布到手机上即可。
三、运行原理
当我们点击一个应用的时候,系统会自动创建一个相应的activity类实例,然后执行Oncreate方法,接着会执行以下两行代码,解释如下:
super.onCreate(savedInstanceState);一定要执行。完成一些图形的绘制
setContentView(R.layout.main);指定由哪个文件指定布局(main.xml),可以将这个界面显示出来,然后我们进行相关操作,我们的操作会被包装成为一个意图,然后这个意图对应有相关的activity进行处理。
相关推荐
ChinaWin 2020-08-13
kangtingting0 2020-05-20
MichelinMessi 2020-02-19
nicepainkiller 2020-01-25
羽化大刀Chrome 2013-05-31
浪风一骑 2013-08-04
wutongyuq 2013-04-12
周公周金桥 2020-09-06
大象从不倒下 2020-07-31
AlisaClass 2020-07-19
MaureenChen 2020-04-21
xingguanghai 2020-03-13
teresalxm 2020-02-18
木四小哥 2013-05-14
SoShellon 2013-06-01
Simagle 2013-05-31
waterv 2020-01-08
LutosX 2013-07-29