之前两周分别记录了: android环境相关的内容 以及 android的四大组件简介。 emmmm~~, 这周干点什么呢。。。根据书本目录的安排,再查看之前的笔记有: 常见ui控件,ui空间进阶,常见布局,存储,多线程编程,网络编程。 哎呀呀,我发现没啥补充的了。
书归正传,今天还是将剩下的 Widget,多设备适配,UI设计规范,高定制化应用;
widget周边:
1.定义:一些窗口小部件,能嵌入到其他的应用程序中运行;并能定期收到更新的广播;
能够容纳 其他 Widget 的应用程序组件,称为 Widget宿主;
2.使用: a.继承 android.appwidget.AppWidgetProvider类;
b.配置它的呈现方式(在xml文件中),类与文件的绑定通过配置属性完成。但是,通过代码绑定应该也是可以的;
c.在 androidManifest中,配置receiver标记,其中有两个配置: 一个是intent-filter, 一个是 meta-data. 该配置使得widget生效。
3.理解:它实际上是广播的一种 。 通常与 provider联合配置使用。
4.生命周期:
onUpdate: Widget更新的时候,调用;
onAppWidgetOptionsChanged: Widget被拖动,或者 修改了Widget尺寸会触发;
onDeleted: Widget移除的时候,会触发;
onEnabled: 添加第一个 Widget到桌面的时候,会触发;
onDisabled: 最后一个Widget从桌面移除的时候,调用该方法;
onReceive: 有广播时,触发;
5.Widget设计概要:
Widget可以添加配置的Activity,这个Activity会在 Widget添加到宿主之前加载;
Widget布局可完全自定义,按照自己的想法进行布局。
高定制化应用:
1.省电应用:
无线电波 进行数据传输 是 应用程序最耗电的操作之一。
网络状态机的 3种能量状态:
全功耗状态: 设备以最大的传输速率进行数据传输;
低功耗状态: 中间状态,相当于全功耗的 50% 左右的放电;
空闲状态: 通常表示 网络未激活,或 无需网络链接的情况。
一般而言,状态转换平均需要 1.5s- 2s。
处理策略:
a.有效的网络优化访问下载;
b.优化常规的更新次数;
c.避免重复下载;
d.不同的网络连接模式使用不同的下载模式;
2.电池续航时间优化:
从应用角度看,进行数据更新会影响电池使用时间;
处理策略:
a.监控电池电量和充电状态;
b.网络连接状态的监控;
3.近距离无线通信:
NFC: near Field Communication, 近场通信,一种短距离的高频无线通信技术;
由 RFIC,Radio-frequency identification技术发展而来;
android从2.3开始,提供了对NFC的支持;
多设备适配:
1.多屏幕适配:
相关概念:
屏幕尺寸: 实际的物理尺寸,以对角线来衡量;
屏幕密度: 屏幕的物理面积内的像素数量,通常单位为dpi;
方向: 从用户的角度看,屏幕的方向,分为横向和纵向;
分辨率: 指 屏幕上物理物理像素总数;
密度无关像素: 一种虚拟像素单位, dip,或者dp, density-independent pixel; 一种与密度无关的方式来描述 布局尺寸 或 位置;
应对策略:
a.在清单文件中,明确声明应用程序支持的所有屏幕尺寸。
b.为不同的屏幕尺寸提供不同的布局;
c.为不同的屏幕尺寸提供不同的drawble;
d.对不同的屏幕大小,提供不同的布局;
e.在app首次实例化时,动态获取一些物理相关的参数进行初始化;
2.多语言处理:
设计理念是: 资源和程序的分离, 程序会根据语言环境去不同的资源里面提取相应的信息;
处理策略:
创建本地语言环境目录和字符串文件;
图片等其他资源的多语言处理类似;
3.多版本处理:
处理策略:
a.支持不同的版本;
b.设备运行时检查系统的版本;
UI设计规范:
结构规范+导航规范+通知规范
静不下来,各种综合原因,算是为andorid画个句号吧。