自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

专注Android开发

淡泊以明志,宁静以致远

  • 博客(129)
  • 收藏
  • 关注

转载 Java:多线程等待所有线程结束(CountDownLatch/CyclicBarrier) .

本文主要是参考官方文档做一学习用途。官方链接:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/CountDownLatch.htmlhttp://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/CyclicBarrier.

2013-11-29 10:40:56 696

转载 Android技术积累:图片缓存管理

如果每次加载同一张图片都要从网络获取,那代价实在太大了。所以同一张图片只要从网络获取一次就够了,然后在本地缓存起来,之后加载同一张图片时就从缓存中加载就可以了。从内存缓存读取图片是最快的,但是因为内存容量有限,所以最好再加上文件缓存。文件缓存空间也不是无限大的,容量越大读取效率越低,因此可以设置一个限定大小比如10M,或者限定保存时间比如一天。因此,加载图片的流程应该是:1、先从内存缓

2013-11-28 22:23:48 782 1

转载 Android 中Activity,Window和View之间的关系

我想大多数人,对于这3个东西的概念能区分,但是具体区别在哪却很难说出来。我这里根据我个人的理解来讲讲我个人对这3个概念的理解。当然这里设计到通用的事件窗口模型等通用GUI设计,我这里就不打算讲了,纯粹从概念上来进行区分。Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API,如onKeyEvent, onTouchEvent等。 并维护应

2013-11-28 22:02:10 687

转载 Android 中MVC实例之Activity,Window和View

MVC模式的简单介绍:除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:(控制器Controller)- 负责转发请求,对请求进行处理。(视图View) - 界面设计人员进行图形界面设计。(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据

2013-11-28 22:01:33 1267

转载 Android之MVC模式

MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图、饼图来表示。一种视图模型也可以对于多种逻辑模型。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与《设计模式》中的观察者模式是完

2013-11-28 22:00:44 675

转载 android 缓存管理及LRU算法

1、为什么要用缓存缓存是存取数据的临时地,因为取原始数据代价太大了,加了缓存,可以取得快些。缓存可以认为是原始数据的子集,它是从原始数据里复制出来的,并且为了能被取回,被加上了标志。在android开发中,经常要访问网络数据比如大量网络图片,如果每次需要同一张图片都去网络获取,这代价显然太大了。可以考虑设置本地文件缓存和内存缓存,存储从网络取得的数据;本地文件缓存空间并非是无限大的

2013-11-28 21:44:27 738

转载 App缓存管理

无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户。Android的apk可以说是作为小型应用,其中99%的应用并不是需要实时更新的,而且诟病于蜗牛般的移动网速,与服务器的数据交互是能少则少,这样用户体验才更好,这也是我们有时舍弃webview而采用json传输数据的原因之一。 采用缓存,可以进一步大大缓解数据交互的压力,特此,我们简略列举

2013-11-28 19:45:55 668

转载 Android 之 内存管理

概述在android的开发中,要时刻主要内存的分配和垃圾回收,因为系统为每一个dalvik虚拟机分配的内存是有限的,在google的G1中,分配的最大堆大小只有16M,后来的机器一般都为24M,实在是少的可怜。这样就需要我们在开发过程中要时刻注意。不要因为自己的代码问题而造成OOM错误。JAVA的内存管理大家都知道,android应用层是由java开发的,android的davlik虚

2013-11-28 19:44:05 604

转载 Android 之 远程图片获取和本地缓存

概述对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量,对应用来说,如果处理不好这个问题,那会让用户很崩溃,不知不觉手机流量就用完了,等用户发现是你的应用消耗掉了他手机流量的话,那么可想而知你的应用将面临什么样的命运。另外一个问题就是加载速度,如果应用中图片加载速度很慢的话,那么用户同样会等到崩溃。那么如何处理好图片资源的获取和管理呢?

2013-11-28 19:42:55 879 1

转载 Android使用代码实现关机/重启

1、需要源码才能编译 2、修改项目的Android.mk文件,添加LOCAL_CERTIFICATE := platform 3、AndroidManifest.xml中添加权限  3.1 manifest标签中添加    android:sharedUserId="android.uid.system"  3.2 使用权限 

2013-11-28 11:23:49 2115

转载 Android.mk 用法介绍

一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。例如,你不需要在你的Android.mk中列出头文件和依赖文件。NDK编译系统将会为你自动处理这些问题。这也意味着,

2013-11-28 11:20:56 515

转载 android 系统重启与关机:java 代码实现

在应用层如何通过代码实现 android 系统的重启,分享给大家。这篇博客是在 android 系统开发的基础之上进行实践的,所以如果你是纯粹的 app 开发,可能要让你失望了。该代码在真机上测试成功,在模拟器上面测试失败。在 linux 下面,重启 pc,非 root 用户需要执行 sudo reboot,所以在 android 下重启机器也需要一定的权限。

2013-11-28 11:16:36 1294

转载 图片缓存(源于SDK文档)

大家都知道,现在的手机屏幕分辨率是越来越大了,虽然之前我们介绍了异步加载图片的方法。但要知道,一个应用可用的内存是有限的。我们不可能将所有的内存都用来存储图片,也不可能为了内存而每次取图片时都上网下载(流量费是很贵滴,而且下载也很耗电啊)。因此,对于已下载的图片,我们需要在本地维持一个缓存。内存缓存LurCache是一个内存缓存类(Android3.1引入,通过v4的支援包,可以在AP

2013-11-28 10:29:22 764

转载 Android 动态布局 动态生成 销毁控件 改变控件的位置等

一种基于Android的动态布局和管理的实现方法技术领域  本实用新型涉及到一种在嵌入式平台上动态生成、销毁控件及动态改变位置的方法,尤其涉及Android平台的通过自定义的XML或INI配置文件动态布局方法。背景技术为了更好地管理Android应用的用户界面里面的各个组件,Android提供了布局管理器,使各个组件能在不同的设备的屏幕上都能运行良好,现在Android共有线性布局

2013-11-28 10:24:13 2631

转载 android QQ截图 开发

使用过QQ的同学应该都用过QQ截图,Ctrl+Alt+A进入截图操作,通过拉伸,移动高亮区域的框体可以快速截取我们需要的图片。在android应用中,我们也经常需要截图操作,以下实现了一个类似QQ截图的应用。先贴图看看效果:QQ截图 开发" name="image_operate_94061347507518950" alt="[转载]android QQ截图 开发" src="http://

2013-11-28 09:31:59 1380 1

转载 高效显示图片

原文链接:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html有效的加载大图图像存在各种形状和大小。在很多情况下,它们往往比用户界面所需要的图像要大。例如,系统的Gallery程序显示由Android系统的摄像头拍摄的照片,它们的分辨率往往高于设备的分辨率。既然应用程序工作在有

2013-11-28 09:27:34 650

转载 android读取大图片并缓存

最近开发电视版的云存储应用,要求”我的相册“模块有全屏预览图片的功能,全屏分辨率是1920*1080超清。UI组件方面采用Gallery+ImageSwitcher组合,这里略过,详情参见google Android API。相册图片预取缓存策略是内存缓存(硬引用LruCache、软引用SoftReference)、外部文件缓存(context.getCachedDir()),缓存中取不到

2013-11-28 09:23:52 692

转载 【译】如何使用Android MediaStore裁剪大图片

http://my.oschina.net/ryanhoo/blog/86843译者:Ryan Hoo来源:http://www.androidworks.com/crop_large_photos_with_android 译者按:在外企工作的半年多中花了不少时间在国外的网站上搜寻资料,其中有一些相当有含金量的文章,我会陆陆续续翻译成中文,与大家共享之。初次翻译,

2013-11-27 17:57:32 791

转载 Android上传图片到服务器

上一篇博客介绍了Android压缩图片这篇博客介绍把压缩后的图片上传到服务器。由于我只熟悉JAVA编程,这里的服务器端也是采用JAVA编写的,这里首先介绍介绍基于JAX-WS API的Webservice接收图片,然后介绍Http post接收图片。开发环境:MyEclipse 10 Tomcat 7Java Webservice 接收手机端上传图片打开MyEclips

2013-11-27 17:55:07 1282

转载 Android压缩图片到100K以下并保持不失真的高效方法

前言:目前一般手机的相机都能达到800万像素,像我的Galaxy Nexus才500万像素,拍摄的照片也有1.5M左右。这么大的照片上传到服务器,不仅浪费流量,同时还浪费时间。在开发Android企业应用时,会经常上传图片到服务器,而我们公司目前维护的一个项目便是如此。该项目是通过私有apn与服务器进行交互的,联通的还好,但移动的速度实在太慢,客户在使用软件的过程中,由于上传的信息中可能包

2013-11-27 17:54:36 1075

转载 有效的处理较大的位图

图像有各种形状和大小。在许多情况下,他们往往比一个典型应用程序的用户界面(UI)所需要的资源更大。例如,系统的Gallery程序展示使用Android设备照相机所拍摄的照片通常要比你的设备的屏幕密度更高的分辨率下显示。既然你所使用的内存有限,理想状况下你只想在内存中加载一个低版本的方案。低版本的方案应该匹配显示它的UI组件的大小。一个更高的解决方案不提供任何可见的好处,但是仍然占用以前的内

2013-11-27 17:53:02 947

转载 android 内存优化篇

一、图片内存优化操作:一般来说,我们对图片进行操作比较多的就是setImageBitmap、setImageResource,这些都是通过BitmapFactory.decodeResource来获取位图,现在发现当程序需要用到的图片较多时候,容易产生oom,因为这些法在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。现在推荐大家改用先通过B

2013-11-27 17:52:30 684

转载 Android有效解决加载大图片时内存溢出的问题

尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的

2013-11-27 17:51:46 698

转载 【构建Android缓存模块】(三)Controller & 异步图片加载

上节课我们学习了缓存模块的实现, 缓存分做两份:Memory Cache和File Cache。方法也很简单,分别是:存储文件按唯一key值索引文件清空缓存    区别在于内存缓存读取优先,因为它读写的速度更快。但是考虑到内存限制,退而选用文件存储,分担内存缓存的压力。    原理非常简单,在第一课中已经详细分析了。那么要怎么才能将这个缓存模块与UI模块的显示关联起来呢

2013-11-27 17:51:00 666

转载 【构建Android缓存模块】(二)Memory Cache & File Cache

上节课我们讲到普通应用缓存Bitmap的实现分析,根据MVC的实现原理,我将这个简单的缓存实现单独写成一个模块,这样可以方便以后的使用,对于任意的需求,都属于一个可插拔式的功能。    之前提到,这个缓存模块主要有两个子部件:    Memory Cache:内存缓存的存取速度非常惊人,远远快于文件读取,如果没有内存限制,当然首选这种方式。遗憾的是我们有着16M的限制(当然大多

2013-11-27 17:48:44 793

转载 【构建Android缓存模块】(一)吐槽与原理分析

摘要:在我翻译的Google官方系列教程中,Bitmap系列由浅入深地介绍了如何正确的解码Bitmap,异步线程操作以及使用Fragments重用等技术,并且在最后给出了非常强大的独家秘笈:BitmapFun,让猿媛们得以一窥究竟Google的攻城师们是如何高屋建瓴地秒杀OOM的。    前言    在下载到BitmapFun.rar这个神圣的压缩包以后,我是双手颤抖,似乎是打开上

2013-11-27 17:47:55 581

转载 Android开发优化之——对界面UI的优化(3)

本篇博文主要讨论一下复杂界面中常用的一种技术——界面延迟加载技术。 有时候,我们的页面中可能会包含一些布局,这些布局默认是隐藏的,当用户触发了一定的操作之后,隐藏的布局才会显示出来。比如,我们有一个Activity用来显示好友的列表,当用户点击Menu中的“导入”以后,在当前的Activity中才会显示出一个导入好友的布局界面。从需求的角度来说,这个导入功能,一般情况下用户是不使用

2013-11-27 17:41:53 656

转载 Android开发优化之——对界面UI的优化(2)

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候

2013-11-27 17:41:18 625

转载 Android开发优化之——对界面UI的优化(1)

在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存的使用,又可以减少部分

2013-11-27 17:40:45 684

转载 Android开发优化之——从代码角度进行优化

通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。 1)静态变量引起内存泄露在代码优化的过程中,我们需要对代码中的静态变量特别留意

2013-11-27 17:40:14 611

转载 Android开发优化之——使用软引用和弱引用

Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。这里重点介绍一下软引用和弱引用。如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的

2013-11-27 17:39:43 597

转载 Android开发优化之——对Bitmap的内存优化

在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。 1) 要及时回收Bitmap的内存Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问了,Andr

2013-11-27 17:39:08 656

转载 android解析plist文件

plist,即property list,是苹果手机软件开发中经常用到的存储文件格式,其实质就是XML文件,但是它遵循一定的格式。比如包含一些指定的元素,如plist,array,string,key等。苹果提供了解析该类文件的机制,可惜在安卓开发工具中却没有提供。经常遇到的情况是,在开发苹果和安卓手机软件的时候,要统一资源文件,这个时候,我们可以采用GitHub中提供的开源android-pli

2013-11-27 17:31:09 7955 2

转载 Dalvik虚拟机简要介绍和学习计划

我们知道,Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。除了指令集和类文件格式不同,Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等。本文对Dalvik虚拟机进行简要介绍,以及制定学习计划。

2013-11-27 00:18:24 778

转载 【Java&Android开源库代码剖析】のAndroid-Universal-Image-Loader-part1

做Android app开发的同学应该都听说过或者用过nostra13的Android-Universal-Image-Loader开源库,它在图片异步加载、缓存和显示等方面提供了强大灵活的框架。之前介绍过的android-smart-image-view开源库跟它比起来,真是小巫见大巫了,不仅在功能上,而且在代码量上都差别很大。当然我们在选取开源库的时候并不是功能越强大越好,一切都要看具体需求,

2013-11-27 00:16:21 823

转载 【Java&Android开源库代码剖析】のandroid-smart-image-view

Android应用开发已经进入到相对成熟的阶段,特别在国外,涌现出了各式各样的成熟稳定的开源库,供普通开发者使用。这种情况虽然极大加速了app开发的进程,但同时带来的问题是大多数普通开发者在使用这些开源库的时候只是止步于知道怎么使用它,但对开源库的底层实现原理并不清楚,或者不怎么深究,导致的问题很多:1)当开源库出现bug时,不能够很好很快的定位出问题;2)自己日常的代码编写只局限于实现app的业

2013-11-27 00:14:28 856

转载 Android应用开发之(利用好图片缓存)

在您的UI中显示单个图片是非常简单的,如果您需要一次显示很多图片就有点复杂了。在很多情况下(例如使用 ListView, GridView 或者 ViewPager控件),显示在屏幕上的图片以及即将显示在屏幕上的图片数量是非常大的(例如在图库中浏览大量图片)。在这些控件中,当一个子控件不显示的时候,系统会重用该控件来循环显示 以便减少对内存的消耗。同时垃圾回收机制还会释放那些已经载入内存中

2013-11-27 00:11:49 721

转载 【Google官方教程】第四课:在UI中显示Bitmap

在Google最新的文档中,提供了一系列含金量相当高的教程。因为种种原因而鲜为人知,真是可惜!Ryan将会细心整理,将之翻译成中文,希望对开发者有所帮助。        本系列是Google关于展示大Bitmap(位图)的官方演示,可以有效的解决内存限制,更加有效的加载并显示图片,同时避免让人头疼的OOM(Out Of Memory)。-----------------

2013-11-26 15:30:36 726

转载 【Google官方教程】第三课:缓存Bitmap

在Google最新的文档中,提供了一系列含金量相当高的教程。因为种种原因而鲜为人知,真是可惜!Ryan将会细心整理,将之翻译成中文,希望对开发者有所帮助。        本系列是Google关于展示大Bitmap(位图)的官方演示,可以有效的解决内存限制,更加有效的加载并显示图片,同时避免让人头疼的OOM(Out Of Memory)。-----------------

2013-11-26 15:28:39 490

转载 【Google官方教程】第二课:在非UI线程处理Bitmap

在Google最新的文档中,提供了一系列含金量相当高的教程。因为种种原因而鲜为人知,真是可惜!Ryan将会细心整理,将之翻译成中文,希望对开发者有所帮助。        本系列是Google关于展示大Bitmap(位图)的官方演示,可以有效的解决内存限制,更加有效的加载并显示图片,同时避免让人头疼的OOM(Out Of Memory)。-----------------

2013-11-26 15:26:28 585

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除