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

首页 / 操作系统 / Linux

Android 中加载网络资源时的优化 缓存和异步机制

Android 中加载网络资源时的优化 缓存和异步机制

网上关于这个方面的文章也不少,基本的思路是线程+缓存来解决。下面提出一些优化:1、采用线程池2、内存缓存+文件缓存3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/44、对下载的图片进行按比例缩放,以减少内存的消耗具体的代码里面说明。先放上内存缓存类的代码MemoryCache.java:public class MemoryCache {private static final String TA...
Java 创建线程池两种不同方法的比较

Java 创建线程池两种不同方法的比较

用java做抓取的时候免不了要用到多线程的了,因为要同时抓取多个网站或一条线程抓取一个网站的话实在太慢,而且有时一条线程抓取同一个网站的话也比较浪费CPU资源。要用到多线程的等方面,也就免不了对线程的控制或用到线程池。我在做我们现在的那一个抓取框架的时候,就曾经用过java.util.concurrent.ExecutorService作为线程池,关于ExecutorService的使用代码大概如下:java.util.concurrent.Executo...
Java内存管理之软引用(Soft Reference)

Java内存管理之软引用(Soft Reference)

软引用(Soft Reference)的主要特点是具有较强的引用功能。只有当内存不够的时候才回收这类内存,因此在内存足够的时候,他们通常不被回收。另外,这些引用对象还能保证在Java 抛出OutOfMemory异常之前,被设置为null。他可以用于实现一些常用资源的缓存,实现Cache的功能,保证最大限度的使用内存而不引起OutOfMemory异常。下面是软引用的实现代码:import java.lang.ref.SoftReference;public ...
Java 创建线程池

Java 创建线程池

线程池的作用:线程池作用就是限制系统中执行线程的数量。根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。为什么要用线程池:1.减少了创建和销毁线程的次数,每个工作线...
Android 利用方向传感器获得手机的相对角度

Android 利用方向传感器获得手机的相对角度

1.Android 的坐标系是如何定义x, y z 轴的。x轴的方向是沿着屏幕的水平方向从左向右,如果手机不是正方形的话,较短的边需要水平放置,较长的边需要垂直放置。Y轴的方向是从屏幕的左下角开始沿着屏幕的的垂直方向指向屏幕的顶端。将手机放在桌子上,z轴的方向是从手机指向天空。2.方向传感器在方向传感器中values变量的3个值都表示度数,它们的含义如下:values[0]:该值表示方位,也就是手机绕着Z轴旋转的角度。0表示北(North);90表示东(E...
Linux 与 Windows 对UNICODE 的处理方式

Linux 与 Windows 对UNICODE 的处理方式

Linux 与 Windows 对于字符及字符串(无论是否 UNICODE模式)基本处理函数接口都遵循 POSIX标准,是一致的。Windows在这个基础上还在TCHAR.h中封装了自己的一个接口定义,以利于用 UNICODE宏就可以让程序在不同的环境中运行。原本非UNICODE定义基于 char 类型,UNICODE定义基于 wchar_t 类型, Windows 在winnt.h中分别定义两个宏来代表这两种类型,typedef char CHAR;#i...
Android 往手机内存卡上存储用户名与密码的操作

Android 往手机内存卡上存储用户名与密码的操作

当大家 用Android 应用 操作时,会发现有很多应用要登陆名和密码,而且,它们都能记住密码,当你退出 ,再次登陆时,你们帐号密码会自动添加上去。例:布局文件 相信都能做出来 就不一一介绍 了。下面直接来正文。创建一个LoginActivity 文件public class LoginActivity extends Activity { // 声明 获取的用户名与密码的组件public EditText edit_name, edit_pass;// ...
Android ContentObserver使用

Android ContentObserver使用

想象一个场景: 有个TextView, 用来显示数据库一个表的数据总数. 用户通过UI界面对数据进行CRUD的操作. 这个TextView如何实时监控并更新显示数据总数?目录: 第一节 ContentObserver的感性认识第二节 3个重点第三节 具体实现这里比较便捷且高效的方案是使用ContentObserver. 前提是已经建立了ContentProvider的支持. 先分析了一些网上广为流传了一个监控SMS变化的Observer例子. 画个图便于C...
Android创建导航抽屉 → Creating a Navigation Drawer

Android创建导航抽屉 → Creating a Navigation Drawer

创建抽屉导航导航抽屉是在 屏幕左侧边缘的 应用主导航选项的面板. 它大多数时间是隐藏的, 但当用户用手指从屏幕的左侧滑动, 或者当用户点击应用顶部工具栏的应用图标的时候, 它就会显示.此课程是描述 怎样有效的使用在Support Library中的DrawLayout接口 去实现一个导航抽屉.创建一个抽屉布局添加一个抽屉, 声明UI的时候需要吧DrawLayout作为你的布局文件的根视图(root view). 在DrawLayout里面, 添加一个主要内...
Linux后台网络编程中select/poll/epoll的比较分析

Linux后台网络编程中select/poll/epoll的比较分析

一.select1.概述select本质是通过设置或检查存放fd标志位的数据结构来进行下一步的处理。会阻塞,直到有一个或多个I/O就绪。监视的文件描述符分为三类set,每一种对应不同的事件。readfds、writefds和exceptfds是指向描述符集的指针。readfds列出的文件描述符被监视是否有数据可供读取。(可读)writefds列出的文件描述符被监视是否有写入操作完成。(可写)exceptfds列出的文件描述符被监视是否发生异常,或无法控制的...
Linux下通过PHP对MySQL中的数据进行定时统计并入库

Linux下通过PHP对MySQL中的数据进行定时统计并入库

本文讲解Linux下对数据库的数据进行统计计算并将结果入库到另一个表中。本文分3部分进行讲解:第一部分介绍:linux下执行php的命令;第二部分介绍:通过脚本实现统计前几个月的数据并入库;第三部分介绍:如何实现每日凌晨对昨日的数据进行统计并入库。1.Linux下执行php的命令linux下执行php文件的命令为:php filename arguments。即:php 文件名 参数Eg:/usr/local/php/bin/php /home/zhaol...
Linux下处理实时日志生成另一个实时日志

Linux下处理实时日志生成另一个实时日志

一.背景介绍1.知识点写这篇文章,主要有下面几个知识点想介绍:curl获取http相应内容;shell中执行php文件;php中执行shell命令(通过exec函数);php实现tail -f命令;包含空格的参数如何作为参数传递(用双引号括起来)。2.业务流程这篇blog的背景是读取"/data3/im-log/nginx.im.imp.current/nginx.im.imp.current_current"这个实时日志,生成招聘会所需的实时日志。业务流...
<< 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 >>