Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Android内存优化之Bitmap最优加载

Android内存优化之Bitmap最优加载

上一篇文章Android Bitmap之内存占用计算和加载注意事项,写了Bitmap基础知识和使用Bitmap需要知道的注意事项,这篇我会写在Android应用中Bitmap的创建和加载。BitmapFactory使用:说到图片的加载就必须说BitmapFactory,看名字就知道他的作用了,就是一个生产Bitmap的工厂,下图是它的一些工厂方法:从上图可以看到BitmapFactory可以使用存储Bitmap数据的数组,Bitmap的资源ID,Bitma...
Android内存优化之Bitmap内存占用计算

Android内存优化之Bitmap内存占用计算

前言:本来我是做电视应用的,但是因为公司要出手机,人员紧张,所以就抽调我去支援一下,谁叫俺是雷锋呢!我做的一个功能就是处理手机中的应用ICON,处理无非就是美化一下,重新与底板进行合成和裁剪,用到了很多Bitmap的知识。本来之前一直想写一些关于Bitmap的博客,正好这是个机会,因此Bitmap知识系列博客诞生了。这个系列我会把学习Bitmap的一些知识发布出来供大家参考和交流。在手机中图片一般都是指Bitmap图片,为什么要说Bitmap呢?因为大家在...
Android内存优化之内存缓存

Android内存优化之内存缓存

前言:上面两篇文章已经讲了图片的基本知识和图片的加载方法及优化,所有的这些优化都是为了避免应用出现OOM这个问题。一个好的应用程序不仅要健壮不能出错还要方便用户使用,对于用户来说你的应用不仅要美观还要流畅,很快的呈现给他想要的。很快的加载图片除了加载的优化外还需要缓存,下面这篇文章将会讲图片缓存。什么是缓存?缓存技术原理就是把用户访问的所有对象看作一个全集,经过算法标记哪些是用户经常访问的对象,把这些对象放到一个集合里,这个集合是全集一个子集,下一次用户再...
Android内存优化之磁盘缓存

Android内存优化之磁盘缓存

前言:在上一篇文章中介绍了Android内存优化之内存缓存,内存缓存的优点就是很快,但是它又有缺点:?空间小,内存缓存不可能很大;?内存紧张时可能被清除;?在应用退出时就会消失,做不到离线;基于以上的缺点有时候又需要另外一种缓存,那就是磁盘缓存。大家应该都用过新闻客户端,很多都有离线功能,功能的实现就是磁盘缓存。DiskLruCache:在Android中用到的磁盘缓存大多都是基于DiskLruCache实现的,具体怎么使用呢??创建一个磁盘缓存对象:pu...
Android主线程的消息系统(HandlerLooper)

Android主线程的消息系统(HandlerLooper)

前言:之前的文章写的都是关于Bitmap和内存的优化技术,这一篇文章给大家谈谈Handler。Handler是Android系统中比较重要的一个知识,在Android多线程面试经常会被问到,在实际项目中的确也经常用到。当然也比较复杂,知识比较多,牵扯到的类有Thread、Looper、Message、MessageQueue。Android是支持多线程的,通常应用程序中与用户相关的UI事件都是运行在主线程中,比如点击屏幕、按钮等,为了保持主线程顺畅相应用户...
开源微内核seL4 microkernel

开源微内核seL4 microkernel

微内核越大的系统潜在的bug就越多,所以微内核在减少bug方面很有优势,seL4是世界上最小的内核之一。但是seL4的性能可以与当今性能最好的微内核相比。 作为微内核,seL4为应用程序提供少量的服务,如创建和管理虚拟内存地址空间的抽象,线程和进程间通信IPC。这么少的服务靠8700行C代码搞定。seL4是高性能的L4微内核家族的新产物,它具有操作系统所必需的服务,如线程,IPC,虚拟内存,中断等。形式验证除了微内核,seL4另一大特色是完全的形式验证。s...
经典排序算法 - 选择排序Selection sort

经典排序算法 - 选择排序Selection sort

经典排序算法 - 选择排序Selection sort顾名思意,就是直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来,顺序放入新数组,直到全部拿完再简单点,对着一群数组说,你们谁最小出列,站到最后边然后继续对剩余的无序数组说,你们谁最小出列,站到最后边再继续刚才的操作,一直到最后一个,继续站到最后边,现在数组有序了,从小到大举例先说看每步的状态变化,后边介绍细节,现有无序数组[6 2 4 1 5 9]第一趟找到最小数1,放到最前边(...
双向链表基本操作

双向链表基本操作

双向链表的情况与单链表类似,只是增加了一个前置链(即指向前一结点的指针域) 算法等,与单链表很相似。只是需要安置好前向指针域。注意点:在写关于链表的插入删除操作时,一定要注意该结点是不是最后一个结点,以免出现 p->next == NULL,p->next->next 未定义的情况,从而导致程序在特定条件下(比如你删除最后一个节点)出错。 也就是需要注意,最后一个节点和其他节点的操作不同,需要分开写。以下是代码:#include <...
单链表基本操作总结

单链表基本操作总结

链表基本概念: 链表:线性表的链式存储。 数据域:存储数据信息。即数据。 指针域:存放下一节点的位置信息。即该指针指向下一节点。单链表:每一个节点node:一个数据域 + 一个指针域。 头节点: 1、数据域可以存放线性表长度等公共信息。 2、指针域,指向第一个节点(数据域)的位置。 3、头结点不一定是链表的必须元素。不过有了头结点,对第一个元素节点前插入和删除元素,就和其它节点一致了。 4、头结点是为了操作的同一和方便设立的,其数据域一般无意义,也可存放链...
深入理解Spring Redis的使用

深入理解Spring Redis的使用

关于spring redis框架的使用,网上的例子很多很多。但是在自己最近一段时间的使用中,发现这些教程都是入门教程,包括很多的使用方法,与spring redis丰富的api大相径庭,真是浪费了这么优秀的一个框架。这里,我们就对比之前对spring orm中对hibernate的使用,来理解使用spring redis的使用。(本文章不做redis基本命令使用的讲解)Ubuntu 14.04下Redis安装及简单测试 http://www.linuxid...
C++二级指针第一种内存模型(指针数组)

C++二级指针第一种内存模型(指针数组)

二级指针第一种内存模型(指针数组)指针的输入特性:在主调函数里面分配内存,在被调用函数里面使用指针的输出特性:在被调用函数里面分配内存,主要是把运算结果甩出来指针数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。一维指针数组的定义形式为:“类型名 *数组标识符[数组长度]”。 例如,一个一维指针数组的定义:int *ptr_array[10]。如何理解指针数组 指针数组是数组元素为指针的数组,其本质为数组。 ...
<< 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 >>