Android之应用资源

应用资源

应用中的图片、视频、字符串、XML文件等非逻辑代码内容。通常与代码耦合度低,可以独立变更。

 Android应用资源体系

由三部分组成:XML资源文件、数据资源文件、资源目录。XML资源文件最重要,存储界面、样式、样色。通过XML文件,将界面相关信息独立出来,降低了耦合性,提升可维护性。

XML资源文件分为列表型XML资源文件(如字符串文件)、值类型XML资源文件(Layout界面)

    数据资源文件:图像、音频、视频和其他格式的数据文件。集中放在drawableraw中。Drawable可以放各种图像,通过R类访问;raw目录中,放任意格式数据,通过Resource.OpenRawResource读取。

 

    应用资源的文件名必须小写,

 

应用资源的配置

传统的解决策略是为不同的软硬件设备编译多个版本的应用,用户可以根据设备型号和运行的版本进行选择。这样的策略,大大提升了应用维护、升级、编译、部署和发布的复杂性。

    Android中,利用应用资源的可适配性,有效解决适配软硬件环境的问题。可以为各个资源目录添加对应的适配资源目录,用来存放可替换的资源文件,以适配不同的软硬件环境。

    适配资源目录的命名格式:在原有资源目录的基础上添加适配项,多个适配项通过划线隔离。

资源目录-适配项1-适配项2

如运行在高分辨率设备上,可以放在drawable-hdpi目录中。

 

    最常用的配置项是本地化和界面适配有关。

利用Android应用资源的可适配性,可以实现应用的一次打包,到处运行效果。在运行中动态适应设备配置,降低应用开发和部署的成本,提升应用的适应能力。

 

但设备配置的改变可能发生在程序运行的各个阶段。如手机转动时,默认任何设备配置发生变化前将强制回收当前与用户交互的界面组件对象,并在新的配置下重新构造恢复该组件对象。

若该操作频繁发生,则会降低应用的性能,影响和用户的交互。为了使界面组件更高效合理的适应各种配置,Android引入了2种适配设备配置变化的手段。

快速缓存状态

设备配置发生变化前,Activity.getLastNonConfigurationInstance函数会被调用。该函数执行发生在Activity.onStop之后,Activity.onDestinationDestroy之前。可以用getLastNonConfigurationInstance保存状态信息,

设备配置发生变化后,界面组件对象会重新构造。此时,通过派生Activity.getLastNonConfigurationInstance读取变化前保存的状态信息,将界面组件恢复。

避免组件的销毁和重构

在应用配置文件中,界面组件可以通过adnroid:configChanges属性声明不关注的设备配置项,当这些配置项发送变化时,不需要销毁和重构组件对象。

配置项发送改变时,调用Activity.onConfigurationChanged,通知配置变更事件,开发者通过重载函数实现自定义逻辑变化。

 

经常发送配置变化的是屏幕朝向和键盘可用性。

猜你喜欢

转载自aoyouzi.iteye.com/blog/1994194