1、自己建的组件或者系统用的组件需要在AndroidManifest.xml下注册。
2、这些组件要放在android的package及sub package下面。
3、 AndroidManifest.xml文件中的<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
只能指定在一个Active中,作为整个程序的唯一入口。
此文件是在安装时候进行读取。
4、安装时,.java-->.class--->编译成一个.dex文件---->打包操作(dex文件、资源),进行签名(密钥)--->apk文件。
5、android程序启动时,先创建一个进程,启动一个主线程,反射实例化,把应用的上下文信息存放在activity中,调用activity的onCreate方法,
然后把activity放到任务栈中。
6、线性布局以垂直或者水平的方式改变。
7、android的生命周期。
主要节点在onPause和onStop,在运行起程序后,如果弹出Dialog,停在onPause方法,还能看见一部分,关闭dialog调用onReusme方法停在运行状态。
如果点击主页,或者弹出新的Activity把原先的Activity遮住了,原先的那个activity完全看不见了,则调用onPause、onStop方法,停在onStop方法,如果重新可见
就调用onRestart方法,onStart,onReusme停在running状态。
如果在主activity点击回退键,则调用onPause,onStop,onDestroy方法。
大多数的程序不需要实现onDestroy方法,因为当前活动的本地的类引用都会被摧毁和当前的活动在onPause和onStop方法时大多数都会被清理,
但是当你在onCreate时启动了后台的线程或者长时间的暂用资源可能会导致内存泄漏,内存不能被正确关闭的,则应该实现onDestroy方法来
清理相关的资源。
onDestroy方式调用之前,首先会调用onPause和onStop方法,除了一种情况,就是在onCreate中调用,调用finish方法来摧毁当前的Activity时,在这种情况下,
操作系统会立即调用onDestroy方法而不会去调用生命周期的其他方法,onPause、onStop。
onResume初始化资源,比如相机,onPause释放资源,不要释放大资源。onStop释放绝大大部分资源,因为系统可能在onStop时还原系统内存、
杀死当前进程,从而不调用onDestroy方法,因此在onStop方法中释放大部分资源(比如大量的CPU使用的工作),防止内存泄漏。
即使在调用onStop时,系统destroy了当前的Activity,但是当前Activity中的View还是保存在Bundle(键值对)中。
一般应用程序不需要重载onRestart方法,一般重载onStart方法,因为create、stop都会调用onStart方法。
onDeStroy方法确保onStop的资源是否清除。
按back键、调用finish方法,系统为了给其他程序分配资源杀死当前的activity。
android换转屏幕的方向时,会调用onDestroy、onCreate方法,但是相关的View仍然存在Bundle中,为了在Bundle中存储View,
应该给View命名一个唯一的ID。
如果要保存另外的数据,可以重载onSaveInstanceState() 方法(系统destroyActivity前,但没有办法完全保证一定会调用),
在Bundle中存储数据,在onCreate(判断Bundle is null)中获取数据。