图片缓存机制
在 Android加载网络图片 一章里,滚动列表会反复触发异步任务重新下载,既费流量体验也差。显示前先查缓存:内存缓存用 LruCache,文件缓存用 DiskLruCache。 一、内存缓存 LruCache Lru 是最近最少使用。先定缓存上限,空间不够时按 Lru 回收最久没用的 Bitmap…
在 Android加载网络图片 一章里,滚动列表会反复触发异步任务重新下载,既费流量体验也差。显示前先查缓存:内存缓存用 LruCache,文件缓存用 DiskLruCache。 一、内存缓存 LruCache Lru 是最近最少使用。先定缓存上限,空间不够时按 Lru 回收最久没用的 Bitmap…
加载网络图片和加载字符串类似:走 Http 拿到 InputStream,再用 BitmapFactory.decodeStream。耗时必须放异步任务。列表多图时还要处理滚动错位:把 AsyncTask 绑到 ImageView 上,按 URL 决定取消还是复用。 一、从 URL 解码 Bitma…
JSON 是轻量级数据交换格式,完全独立于语言的文本,人好读、机器好解析。支持 C、C++、C#、Java、JavaScript、Perl、Python 等。对象是无序的「名称/值」集合:{ 开始 } 结束,名称后跟冒号,对之间用逗号分隔。 一、JSON 书写格式 映射用冒号:名称:值 并列数据用逗…
Http 传中文参数乱码,多半是客户端和服务端编码不一致。做法很简单:两端统一成 UTF-8。Tomcat 默认是 ISO-8859-1,不支持中文,不处理就一定乱码。 一、服务端:转码或改 Tomcat 先统一客户端和服务端编解码为 UTF-8。若请求已经按 ISO-8859-1 读进来,可在业务…
Android 联网先拿回数据再解析。HTTP 协议可参考 深入理解HTTP协议。动手前在 manifest 加权限,检查网络是否可用,并把请求放到 UI 线程之外(常用 AsyncTask)。客户端多用 HttpURLConnection,也可用 Apache HttpClient。 一、权限与网…
广义的 HTML5 是 HTML、CSS 和 JavaScript 的组合,更适合移动 Web。两大特点:强化网页表现;补上本地数据库一类应用能力。本例先做婚庆 H5 页,再用 WebView 嵌进 Android。 一、效果与切图 婚庆页面效果图: 按界面准备图片资源: 文件 职责 weding.…
Notification 是在 App 常规 UI 之外提示事件的交互:用户可以在用别的 app 时看到通知,方便时再点进去。下面覆盖 Builder 发布、更新与移除、从通知启动 Activity 时保留返回栈、进度条通知,以及 RemoteViews 自定义界面。 一、建立一个 Notifica…
广播是应用之间传消息的机制。电池状态、来电、短信都会发出广播。开发者实现 BroadcastReceiver 监听这些 Intent,再做业务处理。发送靠 Context.sendBroadcast() / sendOrderedBroadcast(),同一条广播可被多个订阅者收到。 一、广播示意图…
电脑文件在硬盘分区上。Android 则分成内部存储 internal和外部存储 external。早期多数机器内置不可卸载内存,再加一张可卸 SD 卡;后来不少机型把两块都做成内置不可卸,但逻辑上仍按 internal / external 划分,不再用「能不能拔卡」当标准。 一、内部存储 vs …
数据库是存数据的仓库。通讯录、短信、日历、邮箱都靠本地库。Android 内置的是轻量关系库 SQLite,资源占用很小,不必像 PC 那样先装一套数据库软件。下面从命令行、可视化客户端,再到 SQLiteOpenHelper 增删改查。 一、命令行操作 SQLite SDK 的 tools 目录有…