Android学习记录(一)

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)中获取数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值