有a、b两个a,当a进入b之后的一段时间,可能系统就把a回收了,这时候按back键,执行的不是a的onStart()方法,而是onCreate()方法,a被重新创建了一次,这时a的临时数据和状态就很有可能就丢失了。而A中的onSaveInstanceState()回调方法会保存临时的数据和状态,这个方法一定会再a回收之前调用。方法中有一个Bundle参数,putString()、putInt()等方法需要传入两个参数,一个键一个值。数据保存之后会在onCreate中会恢复,onCreate也有一个Bundle类型的参数。
关键字:onSaveInstanceState(BundleoutState),onCreate(BundlesavedInstanceState),onRestoreInstanceState(BundleoutState)。
see:标准Java字节码实行8位堆栈指令,Dalvik使用16位指令集直接作用于局部变量。局部变量通常来自4位的“虚拟寄存器”区。这样减少了Dalvik的指令计数,提高了翻译速度。当Android启动时,DalvikVM监视所有的程序(APK),并且创建依存关系树,为每个程序优化代码并存储在Dalvik缓存中。Dalvik第一次加载后会生成Cache文件,以提供下次快速加载,所以第一次会很慢。Dalvik解释器采用预先算好的Goto地址,每个指令对内存的访问都在64字节边界上对齐。这样可以节省一个指令后进行查表的时间。为了强化功能,Dalvik还提供了快速翻译器(FastInterpreter)。
什么是ART?即AndroidRuntime。ART的机制与Dalvik不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(justintime,JIT)转换为机器码,这会拖慢应用的运行效率,而在ART环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速。
ART有什么优缺点呢?
缺点:
优点:
机器码占用的存储空间更大,字节码变为机器码之后,可能会增加10%-20%(不过在应用包中,可执行的代码常常只是一部分。比如最新的Google+APK是28.3MB,但是代码只有6.9MB。)
应用的安装时间会变长。
系统性能的显著提升。
应用启动更快、运行更快、体验更流畅、触感反馈更及时。
更长的电池续航能力。
支持更低的硬件。
tips:现在智能手机大部分都可以让用户选择使用Dalvik还是ART模式。当然默认还是使用Dalvik模式。用法:设置-辅助功能-开发者选项(开发人员工具)-选择运行环境(不同的手机设置的步骤可能不一样)。
Android屏幕适配有哪些方法图片适配:根据手机尺寸的不同,加载不同尺寸文件夹中的图片(图标)
dimens.xml文件适配,可用于指定控件大小,不同像素密度手机加载不同values文件夹下的dimens.xml文件。
布局文件适配,不同分辨率的手机,加载不同的布局文件以达到适配效果。创建多个layout(如:layout-x、layout-x)文件夹用于存放不同像素密度手机所需布局文件。
java代码适配,通过android相应api获取当前手机的宽高像素值,按比例分配屏幕中控件的宽高以达到适配效果。
权重适配,通过android中线性布局中的属性(layout_weight权重)按比例来分配,已达到适配效果。
用dp替代px(普通控件尺寸大小);字体采用sp进行尺寸标度。
//ppi:像素密度、px:像素px=dp*ppi/dp=px/(ppi/)px=sp*ppi/sp=px/(ppi/)dp=sp?
根据google出的百分比支持包进行按比例适配。(see:Android百分比布局库(percent-support-lib)解析与扩展,白癜风医院惠民活动甲氧沙林溶液