摘要:启动android模拟器时.有时会报The connection to adb is down, and a severe error has occured.的错误.在网友说在任务管理器上把所有adb.exe关闭掉.重启eclipse.但试过不管用.所以在外国网站上找到一种可行的方法:1.先把eclipse关闭.2.在管理器转到你的android SDK 的platform-tools下, 如图:3.键入adb kill-server ,如果adb关闭了会提示 server not running *4.再输入 adb start-server 如果不成功会提示 daemon not run
阅读全文
摘要:Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是LinkedList也已经加入了Deque的一部分(LinkedList是从jdk1.2 开始就存在数据结构)。 Deque在Queue的基础上增加了更多的操作方法。 从上图可以看到,Deque不仅具有FIFO的Queue实现,也有FILO的实现,也就是不仅可以实现队列,也可以实现一个堆栈。 同时在Deque的体系结构图中可以看到,实现一个Deque可以使用数组(ArrayDeque),同...
阅读全文
摘要:转:http://wsmajunfeng.iteye.com/blog/1629354前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示:从上图我们可以很清楚看到,通过一个共享的队列,可以使得数据由队列的一端输入,从另外一端输出;常用的.
阅读全文
摘要:Google参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制。学习Android的消息处理机制,有几个概念(类)必须了解:1. Message消息,理解为线程间通讯的数据单元。例如后台线程在处理数据完毕后需要更新UI,则可发送一条包含更新信息的Message给UI线程。2. Message Queue消息队列,用来存放通过Handler发布的消息,按照先进先出执行。3. HandlerHandler是Message的主要处理者,负责将Message添加到消息队列以及对消息队列中的Message进行处理。4. Looper循环器,扮演Message Queu
阅读全文
摘要:1.android dvm 的进程和Linux的进程,应用程序的进程是否为同一个概念:答:dvm是dalivk虚拟机。每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实例。而每一个dvm都是在linux的一个进程。所以说可以认为是同一个概念。2.android的动画有哪几种?他们的特点和区别是什么?答:两种,一种是tween动画,一种是frame动画。tween动画,这种实现方式可以使视图组件移动,放大或缩小以及产生透明度的变化。frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。3.handler进制的原理:答:android提供了han
阅读全文
摘要:Bitmap.Config下面有4个参数:Java代码Bitmap.Config ALPHA_8Bitmap.Config ARGB_4444Bitmap.Config ARGB_8888Bitmap.Config RGB_565首先Java代码A:Alpha透明度R:Red红色G:Green绿色B:Blue蓝色然后Java代码Bitmap.Config ALPHA_8 图形参数应该由一个字节来表示,应该是一种8位的位图Bitmap.Config ARGB_4444 图形的参数应该由两个字节来表示 分别用4个bit来记录每个像素的A、R、G、B数据,16色位图Bitmap.Config ARG
阅读全文
摘要:设置两张图片相交时的模式我们知道 在正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状。 如果新的Paint是完全不透明的,那么它将完全遮挡住下面的Paint;而setXfermode就可以来解决这个问题一般来说 用法是这样的[java]view plaincopyCanvascanvas=newCanvas(bitmap1);paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));canvas.drawBitmap(mask,0f,0f,paint);就是在图片bitmap1上面绘制图片mask时 处理两者相交时候显示的问题can
阅读全文
摘要:由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出。Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存溢出(java.lang.OutOfMemoryError),只有在BitmapFactory加载图片时使用BitmapFactory.Options对相关参数进行配置来减少加载的像素。加载和显示图片是很消耗内存的一件事,BitmapFactory.Options 类, 允许我们定义图片以何种方式如何读到内存,BitmapFactory.decodeFile(imageFile);用BitmapFactory解码一张图片时,有时会遇到
阅读全文
摘要:ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。现在总算理解ConcurrentHashMap实现机制了,其实现之精巧,令人叹服,与大家共享之。实现原理锁分离 (Lock Stripping)ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的has
阅读全文
摘要:1、讲述 Environment 类Environment 是一个提供访问环境变量的类。Environment 包含常量:MEDIA_BAD_REMOVAL解释:返回getExternalStorageState() ,表明SDCard 被卸载前己被移除MEDIA_CHECKING解释:返回getExternalStorageState() ,表明对象正在磁盘检查。MEDIA_MOUNTED解释:返回getExternalStorageState() ,表明对象是否存在并具有读/写权限MEDIA_MOUNTED_READ_ONLY解释:返回getExternalStorageState() ,
阅读全文
摘要:转:http://blog.csdn.net/hitlion2008/article/details/7983449关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复。AsyncTask引发的一个问题上周遇到了一个极其诡异的问题,一个小功能从网络上下载一个图片,然后放到ImageView中,是用AsyncTask来实现的,本身逻辑也很简单,仅是在doInBackground中用HTTP请求把图片的输入流取出,然后用BitmapFactory去解析,然后再把得到的Bitmap放到ImageView中。这个应用是用4.0的SDK
阅读全文
摘要:Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据, 或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,,如果你放在主线程中的话,界面会出现假死现象, 如果5秒钟还没有完成的话,,会收到Android系统的一个错误提示 "强制关闭". 这个时候我们需
阅读全文
摘要:WeakReference与SoftReference都可以用来保存对象的实例引用,这两个类与垃圾回收有关。WeakReference是弱引用,其中保存的对象实例可以被GC回收掉。这个类通常用于在某处保存对象引用,而又不干扰该对象被GC回收,通常用于Debug、内存监视工具等程序中。因为这类程序一般要求即要观察到对象,又不能影响该对象正常的GC过程。最近在JDK的Proxy类的实现代码中也发现了Weakrefrence的应用,Proxy会把动态生成的Class实例暂存于一个由Weakrefrence构成的Map中作为Cache。SoftReference是强引用,它保存的对象实例,除非JVM即
阅读全文
摘要:转:http://blog.csdn.net/xiedantibu/article/details/7785767Android把可绘制的对象抽象为Drawable,不同的图形图像资源就代表着不同的drawable类型。Android FrameWork提供了一些具体的Drawable实现,通常在代码中都不会直接接触Drawable的实现类。 在实际的开发过程中,会把使用到的资源都放置在res/drawable目录,剩下的工作交给Android SDK 就行了,当需要使用图片资源的时候,可以使用@drawable标志在xml中引用drawable资源就行,也可以在代码中使用id引用这些d...
阅读全文
摘要:值得一提的另一个类是android.util.LruCache,这个类是Android 3.1(代号 Honeycomb MR1)引入的,可以在创建时定义缓存的最大长度。另外,还可以通过覆写sizeof()方法改变每个缓存条目计算大小的方式。因为android.util.LruCache只能在Android 3.1及更高版本上使用,如果针对版本低于3.1的Android设备,则仍然必须使用不同的类来实现自己的应用缓存。由于目前的Android 3.1设备占有率不高,这种情况很有可能出现。替代方案是继承java.util.LinkedHashMap覆写removeEldestEntry。LRU(
阅读全文
摘要:dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看T
阅读全文
摘要:转:http://www.cnblogs.com/tekkaman/archive/2011/06/09/2075626.html【Content Providers】 Content Providers存储和取得数据,以及让它对所有应用程序可见。这是惟一的跨应用程序共享数据的方法;没有一个所有Android包都能访问的公共存储区域。 Android整理了一大堆content provider给公共数据类型(音频、视频、图像、联系人信息等待)。你能看见他们中的一些在android.provider包中。你能查询providers拥有的数据(虽然,有一些,你必须获取合适的权限来读取数据)。 ..
阅读全文
摘要:android提供了一种新的类型:Parcel。本类被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。 除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中。Parcelable实现要点:需要实现三个东西1)writeToParcel 方法。该方法将类的数据写入外部提供的Parcel中.声明如下:writeToParcel (Parcel dest, int flags) 具体参数含义见javadoc2)describeContents方法。没搞懂有什么用,反正直接返回0也可以3)静态的Parcelable.Creator接口,本接口有两个方法:c
阅读全文
摘要:1、什么是Fragment?Fragment包含在Activity中,Fragment只能存在于Activity的上下文(context)内,没有Activity就无法使用Fragment,因此Fragment只能在Activity的上下文(context)创建。Fragment可以作为Activity的一部分,Fragment和Activity非常相似,Fragment拥有一个与她相关的视图层次结构,拥有一个与活动非常相似的生命周期。2、为什么要使用Fragment?Activity的使用局限:不能将多个Activity活动界面放在屏幕上一并显示。因此创建了Fragment来弥补Activi
阅读全文
摘要:官网帮助文档链接:http://developer.android.com/guide/components/fragments.html主要看两张图,和跑代码一,Fragment的生命周 二,与Activity生命周期的对比 场景演示 : 切换到该Fragment11-29 14:26:35.095: D/AppListFragment(7649): onAttach11-29 14:26:35.095: D/AppListFragment(7649): onCreate11-29 14:26:35.095: D/AppListFragment(7649): onCreateView...
阅读全文