Android学习——认识HelloWorld!
前面我们己经利用Android源码搭建起了我们的开发平台,接下想看看这HelloWorld到底是什么形式,让这系统就运行起来了。
在这个HelloWorld程序中,我们看到系统中主要有src,gen,assets,res这几个目录,根据这几个文件夹名称我们猜到,src:无疑就是我们的程序所在;gen:上后面跟着一句”[Generated java Files] 看来这个系统自动帮我们生成的代码,特意拉到一个单独的文件夹中来,说明没必要让我改到;res:下面是有几个子目录里面有一个icon.png,几个xml文件,看来是一个资源文件。
具体文件说明:
icon.png:这是一个系统图标,在设备中安装了本程序后就会显示成这个图标,图标的大小好象没要求,会自动缩放。
Main.xml:这里存放着界面无素的定义及设置。这个文件就相当于一个Form,一个程序里可以有多个Form切来切去。
打开可以看到里面有layout(部局)定义,有TextView之类的控件定义。当一个控件增加性android:id="@+id/mytxtview" 后在R.java文件中就会看到定义了这样一个属性。
Strings.xml:这里主要存放一些常用的字符串。
R.java:这个类是系统自动生成的,其中的内容是自动跟据layout中的xml中定义的控件的标识。生成这个文件的目的当然就是能够让系统编译通过,以下面test.java中我们会用到R里面的字段。
Test.java:这就是我们的主程序所在,整个程序并没有main入口,而只有这样一个从Activity继承过来的子类。整个类中目前也只有下面这代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
这段代码中setContentView(R.layout.main);就是用来设置需要显示的”form”。显然这里面R.layout.main就是我们在layout目录下定义的main.xml文件,同样,我们可以通过
TextView txtview=(TextView)super.findViewById(R.id.mytxtview);
也可以取到我们定义在main.xml中的TextView。当然我们也就想到,他这样通过配置文件的形式定义了界面样式,那我们不用这些用程序来定义肯定也是没问题的,比如这里的视图我用new的方式来创建,具体用法我们以后再试。
AndroidManifest.xml:这个文件是程序的装箱单,就是说我们写完程序后,这个程序怎么部署的,那一个Activity是主类的,都是在这里定义的。包括为什么选icon.png作为图标的,这里也有文件名的引用。这里面内容很多,我们在以后学习中慢慢再来认识。
在android平台中,我们将程序分为以下几种:
Foreground Activity:前台程序,主要用于展示的程序,有着界面,当程序界面隐藏时,程序自动挂起。比如游戏、地图程序等。
Background Service:后台服务,这类程序运行在后台,与用户着很少的界面交流,比如短信接收服务,在后台监听着,有短信来才会通知。当然不是说这类不要界面,作为有好性,还是需要设置一些界面来配置及查看服务情况,让用户可以暂停、终止服务等操作。
Intermittent Activities:(不清楚怎么翻译较好)这程序具有前台程序和后台服务的特性,它可以有界面显示,也可以进入后台运行,比如播放器,你可以打开着显示歌词边听边看,你也可以让它跑在后以默默地为你唱歌。
在activity生命期,有android中,activity程序有着与不同的生命周期,主要因为在手持设备中的限制较多,比如屏幕小,内存小,CPU低几个因素,所以对于Foreground Activity也就在显示时占有较多资源,在隐藏后,很多资源会在系统资不不足里会收回,比如你启动程序后又调用了其他的activity(相当于又弹了几个form),当这个程序隐藏后,这些弹出的窗体可能就会被收回,只剩下原始的activity。
下面是生命期的周转图:
这些状态,其实在Activity中都有虚函数,也就是在你继承类的都可以继承,系统进入该状态后会通知,然后可做相应的操作,比如保存数据之类的啦。
这里面的状态暂时还分不太清全部的,我想还是先实践再理论吧,以后用到了再回头来看这块:)
工卻善期事,必先利其器,我们programer的器也就是能够Debug,其实当我们装上ADT工具后,我们也就做好了这方面的准备,试一试,在我们的程序中onCreate中加个断点,然后点Eclipse中的Debug,嘿嘿,中断了,说明一切OK,就不怕后面的程序复杂了。
Android中是一个基于linux的系统,那么我们也想来翻翻Android系统中的目录咯,答案是可以了,在ADT插件装完后,在Eclipse的windows菜单下,Show View 可以看到一个File Explore,当启动模拟器后,看,这里就有文件列表啦~~,也就可以上下传文件了。
adb命令:
在shell窗口中,输入
$. build/envsetup.sh
$lunch 1
之后就可以用adb命令了:
adb uninstall com.test 来缷载你的程序
adb shell ;启动后就进入了android系统的文件目录,可以用ls cd 之类的命令来操作啦。
…
估还很多,其他的我还没学会,就学了这两招,哈哈,睡去了~~