android应用程序中,如何u盘更好的性能应用缓存技术提高程序性能,减少频繁...

降低android应用程序耗电量的解决方案
随时都得插在墙上充电的设备,不叫移动设备。如果你的App让用户一直守着墙角,用户也会很快把你丢到墙角。你会问:&他怎么知道我的应用耗电?&很抱歉,目前来看,用户中有大量发烧友和技术高手,同时很不客气地记录了每个应用的耗电量,于是用户偶尔会去系统后台查查耗电大户,之后会毫不客气地打开卸载工具。
所以需注意以下几点:
1.不要绞尽脑汁设计复杂算法,不要在后台跑服务,不要网断了还不停重试。
在开发一个模块前先想想会不会费电,如果会,就不要去做。代码是为了服务用户,而不是折腾用户。
高手喜欢挑战,尤其在手机上实现精巧的算法,这样能带来更强的征服感。有人曾在手机上实现了布隆过滤器(一个庞大精巧的类哈希表,多用于在服务器端如垃圾邮件查找),其内存消耗和计算复杂度都远远高于普通的HashMap,且实现并不容易。结果App发布之后,出现用户抱怨耗电量大,并且经常出现Bug,最后还是老老实实换成了HashMap。任何算法的目的都是为了服务用户,如果简单自然的方法能更好地做到这点,何乐而不为?如果真的在客户端找不到简单的算法,则需要反思&&为什么在手机上需要复杂的计算?是否该将这些计算放在服务器端?
2.不要在后台滥用Service。Android非常开放,开发者可在后台触发任何处理逻辑,肆意占用CPU和内存。
一般来说,Service的目的是为了监控变化,包括系统和网络变化。系统变化可通过注册BroadcastReceiver监听控制,比如应用安装和卸载等事件,这样耗电量非常小,完全可替代在Service中轮播。网络请求无法用BroadcastReceiver监听,但是有两个建议。
? 无严苛的实时性要求,可延长轮播间隔,如6小时自动请求一次,同时时间隔可通过服务器在线更新。这样既省电,偶尔急需实时推送时也可在线调整时间间隔。
? 对实时性有要求,考虑使用成熟的推送服务,如Google的C2DM(),和亚马逊的AWS SDK ()。
3.网络请求不要太频繁。
系统中最耗电的是屏幕,其次就是网络。前文已经提到过,网络出错重发会降低用户体验,还会耗费电力。可通过数据预取结合数据压缩算法减少网络请求次数。
总之,在开发时我们要替用户思考是否做到了&流畅、友好、省电&,以保证App拥有不错的用户体验。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'Android开发优化 从代码入手
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点...
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。
1)静态变量引起内存泄露
在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量是类相关的变量,它的生命周期是从这个类被声明,到这个类彻底被垃圾回收器回收才会被销毁。所以,一般情况下,静态变量从所在的类被使用开始就要一直占用着内存空间,直到程序退出。如果不注意,静态变量引用了占用大量内存的资源,造成垃圾回收器无法对内存进行回收,就可能造成内存的浪费。
先来看一段代码,这段代码定义了一个Activity。
private static Resources mR&
protected void onCreate(Bundle state) {
super.onCreate(state);
if (mResources == null) {
& & mResources = this.getResources();
这段代码中有一个静态的Resources对象。代码片段mResources = this.getResources()对Resources对象进行了初始化。这时Resources对象拥有了当前Activity对象的引用,Activity又引用了整个页面中所有的对象。
如果当前的Activity被重新创建(比如横竖屏切换,默认情况下整个Activity会被重新创建),由于Resources引用了第一次创建的Activity,就会导致第一次创建的Activity不能被垃圾回收器回收,从而导致第一次创建的Activity中的所有对象都不能被回收。这个时候,一部分内存就浪费掉了。
经验分享:
在实际项目中,我们经常会把一些对象的引用加入到集合中,如果这个集合是静态的话,就需要特别注意了。当不需要某对象时,务必及时把它的引用从集合中清理掉。或者可以为集合提供一种更新策略,及时更新整个集合,这样可以保证集合的大小不超过某值,避免内存空间的浪费。
2)使用Application的Context
在Android中,Application Context的生命周期和应用的生命周期一样长,而不是取决于某个Activity的生命周期。如果想保持一个长期生命的对象,并且这个对象需要一个Context,就可以使用Application对象。可以通过调用Context.getApplicationContext()方法或者Activity.getApplication()方法来获得Application对象。
依然拿上面的代码作为例子。可以将代码修改成下面的样子。
private static Resources mR&
protected void onCreate(Bundle state) {
super.onCreate(state);
if (mResources == null) {
& & // mResources = this.getResources();
& & mResources = this.getApplication().getResources();
& & 在这里将this.getResources()修改为this.getApplication().getResources()。修改以后,Resources对象拥有的是Application对象的引用。如果Activity被重新创建,第一次创建的Activity就可以被回收了。
3)及时关闭资源
Cursor是Android查询数据后得到的一个管理数据集合的类。正常情况下,如果我们没有关闭它,系统会在回收它时进行关闭,但是这样的效率特别低。如果查询得到的数据量较小时还好,如果Cursor的数据量非常大,特别是如果里面有Blob信息时,就可能出现内存问题。所以一定要及时关闭Cursor。
下面给出一个通用的使用Cursor的代码片段。
Cursor cursor =
& & cursor = mContext.getContentResolver().query(uri,null,null,null,null);
& & if (cursor != null) {
& & & & cursor.moveToFirst();
& & & & // 处理数据
} catch (Exception e){
& & e.printStatckTrace();
} finally {
& & if (cursor != null){
& & & & cursor.close();
即对异常进行捕获,并且在finally中将cursor关闭。
同样的,在使用文件的时候,也要及时关闭。
4)使用Bitmap及时调用recycle()
前面的章节讲过,在不使用Bitmap对象时,需要调用recycle()释放内存,然后将它设置为null。虽然调用recycle()并不能保证立即释放占用的内存,但是可以加速Bitmap的内存的释放。
在代码优化的过程中,如果发现某个Activity用到了Bitmap对象,却没有显式的调用recycle()释放内存,则需要分析代码逻辑,增加相关代码,在不再使用Bitmap以后调用recycle()释放内存。
5)对Adapter进行优化
下面以构造ListView的BaseAdapter为例说明如何对Adapter进行优化。
在BaseAdapter类中提供了如下方法:
public View getView(int position, View convertView, ViewGroup parent)
当ListView列表里的每一项显示时,都会调用Adapter的getView方法返回一个View,
来向ListView提供所需要的View对象。
下面是一个完整的getView()方法的代码示例。
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
   & &convertView = mInflater.inflate(R.layout.list_item, null);
   & &holder = new ViewHolder();
   & &holder.text = (TextView) convertView.findViewById(R.id.text);
   & &convertView.setTag(holder);
  } else {
   & &holder = (ViewHolder) convertView.getTag();
  holder.text.setText(&line& + position);
  return convertV
private class ViewHolder {
当向上滚动ListView时,getView()方法会被反复调用。getView()的第二个参数convertView是被缓存起来的List条目中的View对象。当ListView滑动的时候,getView可能会直接返回旧的convertView。这里使用了convertView和ViewHolder,可以充分利用缓存,避免反复创建View对象和TextView对象。
如果ListView的条目只有几个,这种技巧并不能带来多少性能的提升。但是如果条目有几百甚至几千个,使用这种技巧只会创建几个convertView和ViewHolder(取决于当前界面能够显示的条目数),性能的差别就非常非常大了。
6)代码“微优化”
& & 当今时代已经进入了“微时代”。这里的“微优化”指的是代码层面的细节优化,即不改动代码整体结构,不改变程序原有的逻辑。尽管Android使用的是Dalvik虚拟机,但是传统的Java方面的代码优化技巧在Android开发中也都是适用的。
下面简要列举一部分。因为一般Java开发者都能够理解,就不再做具体的代码说明。
创建新的对象都需要额外的内存空间,要尽量减少创建新的对象。
将类、变量、方法等等的可见性修改为最小。
针对字符串的拼接,使用StringBuffer替代String。
不要在循环当中声明临时变量,不要在循环中捕获异常。
如果对于线程安全没有要求,尽量使用线程不安全的集合对象。
使用集合对象,如果事先知道其大小,则可以在构造方法中设置初始大小。
文件读取操作需要使用缓存类,及时关闭文件。
慎用异常,使用异常会导致性能降低。
如果程序会频繁创建线程,则可以考虑使用线程池。
Android开发优化之——从代码角度进行优化
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻 辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高 软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。
1)静态变量引起
iPhone入手... 开发前之准备
公司买了4GB和8GB的各一个, 先研究一下, 准备开发iPhone的WAP/WEB+AJAX.
先贴下iPhone的优点和缺点:
Battery life is amazingly good, around 8 hours of talking, browsing or video playback.
想学习苹果开发,不知从何入手 有一点C++的开发经验,现在业余时间想学习下IOS开发。
但是完全不知道从哪里入手。
是不是要搭建IOS虚拟机?还有XCode的编程环境?求教高手解答~!万分感谢~!
------解决方案-------------------- 先买个苹果机装个xcode4.3然后买本入门的书
学习oc的基本语法
从此以后踏上
Google正着手开发一套重新设计的Android系统,统一整合应用和服务的用户体验
&&&------------- &_& 向左看
根据ibtimes的消息,Google正在计划统一整合Android应用和服务的设计元素,推出名为“Quantum Paper”(量子纸)的设计语言。
消息称,Google正在着手开发一套经过完全重新设计的
Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/),请尊重他人的辛勤劳动成果,谢谢! 今天给大家带来一个向右滑动销毁Activity的效果,Activtiy随着手指的移动而移动,该效果在Android
Android开发优化之——对界面UI的优化(1)
在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开 的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的 资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以
Android 代码优化总结
第一、利用eclipse工具对代码进行初步的优化,剔除没有用到的资源,类,变量等。如下所示:
选择要check的项目即可。
第二,及时释放资源。注意合理使用软引用,弱引用。让垃圾回收机制及时回收不必要的资源。 1、在eclipse里DDMS选择设备,设备中运行的应用进程。然后点击更新堆即可。如下:
2、点击如下图标;
3、点击GC即可
这样会得到
android 代码优化:关闭输出日志
android关闭日志
我们在开发时,经常会输出各种日志来debug代码。但是等到应用发布的apk运行时不希望它输出日志。
关闭输出日志Log.v(),Log.i(),Log.w(),Log.v(),Log.e()等 原理:
那么我们可以通过proguard来删除各种日
22点性能优化之Android开发
(本图为:22点性能优化之Android开发)
程序能否运行的快速而高效,这在资源有限的移动终端设备上尤其显得重要。因为即使目前最强大的移动终端的计算能力也无法和市场上普通的桌面PC相抗衡。简单地说,有两个原则在资源受限的系统中必须遵守: 不做不必要的事情。 不分配不必要的内存。 在Android中,设计人员已经从UI、框架、基础平台等多个层
Android开发优化之——对Bitmap的内存优化
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。
1) 要及时回收Bitmap的内存 Bitmap类有一
在英特尔& 架构平台上开发和优化基于 NDK 的 Android 游戏应用
作者:杜伟
Android 原生开发套件 (NDK) 是 Android SDK 的附带工具。借助该工具,您可以使用诸如 C 和 C++ 等本地代码语言实现部分应用。 您可以从以下网址下载该 NDK 工具包:/tools/sdk/ndk/ind
Android内存优化的几种代码处理
以下为Androi内存优化的几种代码处理,示例代码,仅供参考: o1. 生成Bitmap: InputStream is =this.getResources().openRawResource(R.drawable.pic1);
BitmapFactory.Options options=newBitmap
android系统手机存储性能优化
一、存储性能增强之:路在何方?
二、存储性能增强之:emmc标准演进优化存储性能
三、存储性能增强之:wrapfs代替fuse,优化内置sdcard性能
四、存储性能增强之:f2fs代替ext4,优化data用户空间性能
五、存储性能增强之:新型io调度机制ROW
Android性能优化---布局优化
我们从事Android开发编写布局的时候大多数是使用XML来布局,这给我们带来了方便性,这样操作可以布局界面的代码和逻辑控制的Java代码分离出来,使程序的结构更加清晰、明了。特别的复杂的布局,但是这样操作也同样带来了另一些问题,例如屏幕的适应性,大多数Android开发人员都会遇到这个问题,还有一个就是内容问题,如果使用xml布局,Android的虚拟机首
【前端优化之渲染优化】大屏android手机动画丢帧的背后
前言 上周我与阿里的宇果有一次技术的交流,然后对天猫H5站点做了一些浅层次的分析,后面点时间基本天天都会有联系,中途聊了一些技术细节、聊了双方团队在干什么,最后聊到了前端优化。因为我本身参与了几次携程H5站点的优化,在这方面有一些心得,但是与宇果交流的过程中发现我们在优化的时候忽略了一些细节。 携程做优化的时候整个重心基本放到了尺寸的缩
【Android】开发优化之——调优工具:dump hprof file 查看内存情况,找到内存泄露
虽说知道一般性的开发android应用需要注意的问题,可是也有水平参差不齐的情况,特别是维护代码,如果内存占用大,内存溢出严重,又怎么解决呢? -- 通过DDMS把heap抓出来分析
1、打开DDMS
2、选中需要查看的程序,并且点击Update Heap图标
新手求教Android开发环境 今天看了点Android的视频,想自己动手做个Helloworld,刚新建的项目,什么都没改,运行一下就报如下错误:
ConversiontoDalvikformatfailed:Unabletoexecutedex:Targetou
Android开发代码的效率问题
实际上,不仅仅是android手机开发,所有的软件开发都要注意代码效率的问题!一般来说,实现相同的功能尽量较少地使用内存,最少的指令是一个优秀开发者需要时刻注意的!这里从两点来讨论这个问题: (一)数据类型选择
ProGuard优化Android日志
Android应用开发过程中,一般会加入各种日志打印,便于代码调试,android.util.Log的方法经常被使用。如果应用总是在后台不断的输出Log.i或Log.d的内容,除了增加系统开销外,对应用的整体效率受影响。ProGuard通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆。结果生成一个比较小的.apk文件,该
请问,学习IOS开发,该从哪里下手??
如题,本人开发一直使用C#。
现因业务需要学习IOS开发,但本人从来没有接触过这个。。。
请问各位大神,用C#开发IOS的话,该如何入门?
该看些哪些书籍或资料?
如果有哪位大侠有资料的,能否给小弟传一份!!!
hanxx711@不胜感激!!!
------解决方案----
Android 开发常用代码片段
1、图片旋转
Bitmap bitmapOrg = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.moon); Matrix matrix = new Matrix(); matrix.postRotate(-90);//旋转的角度 Bitmap resiz
【原创】Android 性能优化(一)
文章都为原创,转载请注明出处,未经允许而盗用者追究法律责任。
编写者:李文栋 Android性能优化
根据Android的层次结构,性能优化也是分层次进行的,本文会分别对Application、Framework、Native、Kernel各层做总结,每层主要会从性能优化的基本思想、优化技巧、优化工具
Android开发之手机拍照功能的实现(源代码分享)
Android系统里调用手机拍照的功能有两种方法一种直接调用手机自带的相机另一种就是使用自己做的拍照应用。比如Camera360 一款于各操作系统都有的的功能强大的手机摄影软件;能拍摄出不同风格,不同特效的照片,同时具有云服务和互联网分享功能,全球用户已经超过2.5亿。现
Android 对Bitmap的内存优化
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。
1) 要及时回收Bitmap的内存 Bitmap类有一个方法recycle(),从
Android NDK开发(二)——从Hello World学起
转载请注明出处:http://blog.csdn.net/allen315410/article/details/
上篇文章讲述了Android NDK开发的一些基本概念,以及ND
Android开发热门资料(110个)
在移动开发如火如荼的今天,Android开发市场广阔,是目前市场占有率最高的智能手机操作系统。这个文档里整理110个优质的Android开发资料,网上的资料众多,参差不齐,然而这批资料却是经过精心整理的,下载量高,好评众多。附件较多,无法将附件一一分享给大家,只能提供资料地址了。希望对大家有帮助!下载中心完整附件下载地址:http://down.51ct
【资源分享】android开发教程分享 从入门到高级!
Android入门课程 适合初入android行业的人员。准备系统学习android应用开发的人。需要有java&sql基础~ 下载地址: /topics/2935307/
Android深入浅出课程 适合学习人群 : A:有一定开发基础的的技术人员; B:有Java及Android四大件
Android代码优化,主界面卡住 程序打开进入MainActivity,其实MainActivity没做什么操作,MainActivity是加载sildingmenu+actionbar+fragment,具体业务操作是在fragment里面进行的,但是程序会在MainActivity那里显示MainActivity的xml,其实什么都没有,但是会停留1~5秒左右,才去显示fragment的xm
Android开发之控制手机音频
本实例通过MediaPlayer播放一首音乐并通过AudioManager控制手机音频,关于AudioManager的详解可参照:Android开发之AudioManager(音频管理器)详解 程序运行效果图:
实例代码:
package com.jph. import android.media.AudioM
Android开发从入门到精通教程(技术文档)
该文档为android开发入门的经典文档,并附有一些教学视频,讲述十分详细,实例众多,图文并茂,结构合理,适合作为android开发的入门学习文档,也可供资深开发者参考。在本部分讨论中,提到两种不同的开发者:传统的桌面应用程序开发,他们能使用任何的编程语言,而且最终的产品和程序是用来运行“桌面”操作系统的;还有就是Android的程序开发者,为An
手动搭建android开发环境
下载与jdk版本对应的eclipse,下载android开发的ATD包和sdk包,在help选项中选择install new software ,在Work with后点击add然后填写名字adt,选择本地的ADT.zip压缩包,点击next,选择上一项,点击next然后点OK重启eclipse后将出现androi
【Andriod开发】智能TV优化Android应用界面布局
原文链接:/topic/ui
当你应用程序运行在电视机时,你应当考虑用户是坐在距离电视屏幕10英尺的地方.当然用户环境被称为10-foot UI.为了给你的用户提供一个可用和愉快的体验,你相应地应该奠定你自己的UI风格...这个要点向你展示如何针对TV来优化你
我的Android进阶之旅------&对Android开发者有益的40条优化建议
下面是开始Android编程的好方法:
找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题
  对每个你像添加的特征重复上述过程。这种方法能够激励你,因为你在保持不断迭代,不经意中你学到了很多
Android系统做了哪些优化?
Android系统框架和上层应用是类java(不是正统的sun java)开发的,实现了自己的java虚拟机dalvik,既然用java虚拟机和java开发,一般都会认为效率低下。其实不然,在基本主流的智能手机的软件平台上,android的执行速度是最快的。  那么android效率为什么这么的高呢?特别是一
Android优化——UI优化(二)
使用include标签复用布局 - 1.include标签的作用
假如说我下图的这个布局在很多界面都用到了,我该怎么办?每个页面都写一遍的话,代码太冗余,并且维护难度加大。
&LinearLayout xmlns:android=&/apk/res/android& xm
Android手机使用风灵网络优化软件设置教程
Android手机使用风灵网络优化软件设置教程
第一步: 打开手机主菜单,选择“设置”,然后选择“无线和网络” 如图显示
第二步:选择“虚拟专用网设置” 如图显示
第三步:选择“添加虚拟专用网” 如图显示
第四步:选择“添加虚拟拨号 PPTP” 如图显示
第五步:进入PPTP连接设置界面 如图显示
平板电脑上的android开发和手机上的android开发有什么区别呢 平板电脑上的android开发和手机上的android开发有什么区别呢,比如手机上的android开发,可以在模拟器上看到效果,然后安装到手机上使用,那么平板电脑上面的android开发是怎么开发的,和手机一样么
------解决方案-------------------- 基本一样
求指点迷津(从vs开发wp应用转用as开发android应用) 从用vs开发wp应用,转用as开发android应用,好多地方感到不一样,请过来人给些指点。
------解决方案-------------------- actionscript?那么屌何必要转android应用,做游戏去吧,,,
------解决方案-------------------- 做android应用不值
Android设置头像,手机拍照或从本地相册选取图片作为头像
【Android设置头像,手机拍照或从本地相册选取图片作为头像】 像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式: 1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。 2,让用户启动手机的相机拍照,拍完照片后裁剪,然后作为头像。 我现在写一个简单的完整代码例子,说明如何在
Android中Bitmap内存优化 在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。   1) 要及时回收Bitmap的内存   Bitmap类有一个方法recycle(),从方法名可以看出如何降低android应用程序的耗电量
首先我们来看看android手机的电量都主要消耗在了什么地方:
显而易见,大部分的电都消耗在了网络连接、GPS、传感器上了。简单的说也就是主要在以下情况下耗电比较多:
1、 大数据量的传输。2、 不停的在网络间切换。3、 解析大量的文本数据。
那么我们怎么样来改善一下我们的程序呢?
在需要网络连接的程序中,首先检查网络连接是否正常,如果没有网络连接,那么就不需要执行相应的程序。
检查网络连接的方法如下:
使用效率高的数据格式和解析方法。通过测试发现,目前主流的数据格式,使用树形解析(如DOM)和流的方式解析(SAX)对比,很明显,使用流的方式解析效率要高一些,因为DOM解析是在对整个文档读取完后,再根据节点层次等再组织起来。而流的方式是边读取数据边解析,数据读取完后,解析也就完毕了。
在数据格式方面,JSON和Protobuf效率明显比XML好很多,XML和JSON大家都很熟悉,Protobuf是google提出的,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。有兴趣的可以到官方去看看更多的信息。
从上面的图中我们可以得出结论就是尽量使用SAX等边读取边解析的方式来解析数据,针对移动设备,最好能使用JSON之类的轻量级数据格式为佳。
目前大部门网站都支持GZIP压缩,所以在进行大数据量下载时,尽量使用GZIP方式下载。使用方法如下所示:
使用GZIP压缩方式下载数据,能减少网络流量,下图为使用GZIP方式获取包含1800个主题的RSS对比情况。
4、 其它一些优化方法:
回收java对象,特别是较大的java对像
XmlPullParserFactory and BitmapFactory
Matcher.reset(newString) for regex
StringBuilder.sentLength(0)
对定位要求不是太高的话尽量不要使用GPS定位,可能使用wifi和移动网络cell定位即可。GPS定位消耗的电量远远高于移动网络定位。
尽量不要使用浮点运算。
获取屏幕尺寸等信息可以使用缓存技术,不需要进行多次请求。
很多人开发的程序后台都会一个service不停的去服务器上更新数据,在不更新数据的时候就让它sleep,这种方式是非常耗电的,通常情况下,我们可以使用AlarmManager来定时启动服务。如下所示,第30分钟执行一次。
最后一招,在运行你的程序前先检查电量,电量太低,那么就提示用户充电之类的,哈哈!使用方法:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 减少浏览器缓存 的文章

 

随机推荐