自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

狂发飘飘

琴之工之侨

  • 博客(78)
  • 问答 (3)
  • 收藏
  • 关注

原创 LruCache的终极解析

LruCache是android提供的一个常用而且有用的数据缓存工具类.LruCache是一个通过强引用来保存一定数量的数据的缓存技术.每次使用一个数据时候,这个数据就会被移动到队列的最前面(这样维护来一个访问数据的顺序).当新加一个数据到这个已经满了的缓存时候,这个缓存里面最后面的数据(最不常使用的数据)就会被清理掉.

2015-06-13 18:20:08 2676

原创 android开发之一个手机重启问题引发的思考

由上面的代码,可以很快发现造成问题的地方FingerMagic_tool.jav的下面这行代码:curr_Bitmap.setPixels(pixels, 0, bitmap_w, 0, 0, bitmap_w, bitmap_h);最后在调用类Bitmap的方法:setPixels()时候抛出来异常:java.lang.IllegalStateException翻看Bitmap这个类的方法的时候,很快发现来这个方法的的原文说明里面有一句这样的说明:@throws IllegalStateE

2015-05-18 18:22:35 3608 1

翻译 android之ViewStub解析

android中,很多地方在提到布局优化都会提到使用ViewStub.可能很多人都只是用她,而没有去看看ViewStub到底是个什么东西,器特殊的功能是如何实现的!这里,我来解析一下我们的ViewStub.实际上,其实ViewStub就是一个view的子类.

2015-02-02 16:40:00 1273 1

原创 android之Dialog自定义引发的血案

Dialog,FragmentManager,DialogFragment,PreferenceActivity,SwitchPreference他们在一起能出现上面问题呢? 通过学习activity我们也知道创建一个activity其实也就创建了一个window, 实际上一个界面的显示都是起源于一个window的! 一个window除了管理界面的显示,其实所有设备输入事件都是从这里出发的!...通过查看dialog.java可以发现,其实一个dialog的创建其实就会为这个dialog创建window

2015-01-28 21:03:57 2198

原创 android之cpu使用率曲线效果的实现!

android中,在很多地方看到cpu使用率曲线模拟的效果,今天来看看我是如何实现的吧!

2014-12-20 18:15:20 3259

原创 游戏开发之二维向量角度计算

最近做android游戏开发,遇到一些问题,这里先说向量角度,其用处很大也很广泛。比如飞机当前飞向的方向、怪兽出击时候方向等都需要及时计算出其方向和位置。

2014-03-26 13:21:37 3491

原创 ANDROID垃圾回收器机制和强引用、软引用、弱引用、虚引用

先说一下GC:          GC是垃圾收集的意思(GabageCollection)。和JAVA一样,ANDROID系统也是由GC来自动回收内存的。        通常,GC是在一个单独的比较低优先 级线程中运行。这样其内存的释放就交给了GC来处理,GC会实时监测并释放“无效”的内存。这里关键字“无效”就引起了我们的注意,什么内存单元是无效的呢?一般GC采用的办法是引用计数法来判

2014-03-12 14:29:03 3654 1

原创 android 实用的Bitmap处理函数

在做android 开发的时候,特别是游戏开发,经常会用到不同大小的图片,比如:适配不同屏大小、以及不同的地方需要不同大小的图片等等。这里给出一个将图片放大、缩小的处理函数。

2014-02-10 17:19:28 1166

原创 切水果游戏中的刀的实现

在开发一个游戏时候,需要用到这样的效果。   首先定义    private Paint mPaint_weapon = null; // 真实的画笔       private Path mPath_weapon = null; //    // private Point fly_middle;   private ArrayList weapon_Track;

2014-01-21 11:06:23 3089

原创 一个android应用效果开发引发的惨案(android Home按键)

看电影的时候,想必大家经常会在电影开场的时候看见一段故事梗概的介绍,其中有一种显示的效果是一个字一个字先后顺序出现在屏幕上的,并且每出现一个字,还有一个键盘打字的声音出现。这个在android上面怎么做呢?最近做的一个游戏,用到了这个效果,我是这样做的。首先,重写了一个SurfaceView。在这个SurfaceView里面去显示我的这段故事梗概的文字。那如何去实现按照顺序一个字一个字显示

2014-01-15 18:07:23 1300

转载 Android性能优化之Bitmap的内存优化

1、BitmapFactory解析Bitmap的原理BitmapFactory提供的解析Bitmap的静态工厂方法有以下五种:Bitmap decodeFile(...)Bitmap decodeResource(...)Bitmap decodeByteArray(...)Bitmap decodeStream(...)Bitmap decodeFileDescriptor(

2017-12-12 18:15:42 392

原创 aidl文件import 报错; couldn't find import for class

aidl文件import 报错; couldn't find import for class

2017-07-17 10:30:46 1246

原创 Handler的深入了解

在android开发中,Handler大家会经常看到和用到。这里不说怎么使用,主要想一探Handler究竟。使用Handler来处理消息,其实就是这样一个过程:创建Handler时候,Handler就获取一个线程的Looper和他的MessageQueue,通过Handler发送处理的消息,其实就是把需要处理的消息放置于一个线程的Looper的MessageQueue中,而后Looper会运行一个for (;;)的死循环来取出消息,并处理。

2016-07-22 17:00:01 765

原创 android 虚拟导航按钮(NavigationBar)可手动隐藏开发

系统修改来实现NavigationBar可以手动隐藏,其中涉及的修改包括:PhoneWindow、PhoneWindowManager以及PhoneStatusBar等。 在包 com.android.internal.policy.impl里面有PhoneWindowManager类,这是一个主要管理手机显示系统的所有window的类,我们知道在android中每个显示的界面其实都是一个window,比如一个activity的显示界面、一个Dialog弹出框、还有上面提到的 虚拟按钮(

2016-07-13 16:08:59 14269 4

转载 android中xml tools属性详解

android中xml tools属性详解.

2016-06-16 09:11:25 693

转载 Android常用的一些make命令

1.make -jXX  XX表示数字,这个命令将编译Android系统并生成镜像,XX表示可以使用到的CPU核数,这在配置好的电脑上特别有用,公司的16核ubuntu服务器执行make -j16只要不到20分钟,而双核PC上需要4个小时!2.make snod这条命令将重新生成镜像,消耗的时间很少,类似WinCE的makeimg过程,如果你修改了一些数据文件(如音乐、视频)等文件

2015-08-14 19:06:46 642

原创 自定义一个在底部显示的dialog

自定义一个在底部显示的dialog!

2015-08-03 14:30:04 5015

原创 Dialog显示手机android安装的app信息

最近做功能开发时候需要显示当前手机安装的app信息.这个dialog显示了当前手机安装的app,当点击一个菜单项时候就会在上面显示一个上锁的图案(如上图:视频/相机/联系人).这时一个可以对app上锁的设计界面.

2015-08-03 14:18:01 2070

原创 android之LruCache源码解析

移动设备开发中,由于移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的.android提供来一个缓存工具类LruCache,开发中我们会经常用到,下面来他是如何实现的.LruCache缓存数据是采用持有数据的强引用来保存一定数量的数据的.每次用到(获取)一个数据时,这个数据就会被移动(一个保存数据的)队列的头部,当往这个缓存里面加入一个新的数据时,如果这个缓存已经满了,就会自动删除这个缓存队列里面最后一个数据,这样一来使得这个删除的数据没有强引用而能够被gc回收.

2015-07-01 21:32:31 1140 1

原创 源码解析:ArrayBlockingQueue和LinkedBlockingQueue的区别

对于ArrayBlockingQueue和LinkedBlockingQueue已经都只是知道如何使用以及他们各自的特点,没有去看看源码到底驶入实现的!因为ArrayBlockingQueue和LinkedBlockingQueue是java开发中常常用到的数据结构,所以有必要看看源码深入一下.下面从源码来了解他们各自的特点,最后再做一下总结.

2015-06-29 17:11:29 1966

原创 android触摸事件流程(一)

对于android的触摸事件,一直以来都有点模糊,所以决定搞搞清楚.这里一共分三部分来解决这个问题:第一部分:触摸事件是如何起源的.第二部分:view是如何处理触摸事件的.第三部分:viewgroup是如何分发和处理触摸事件的.

2015-06-19 15:50:25 1833

转载 深入Java核心 Java内存分配原理精讲(3)

栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,详细讲解Java内存分配方面的知识。

2015-06-19 13:55:27 684

转载 深入Java核心 Java内存分配原理精讲(2)

String是一个特殊的包装类数据。可以用:String str = new String("abc");   String str = "abc";  两种的形式来创建,第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。而第二种是先在栈中创建一个对String类的对象引用变量str,然后通过符号引用去字符串常量池 里找有没有"abc",如果没有,则将"a

2015-06-19 13:53:21 527

转载 深入Java核心 Java内存分配原理精讲(1)

Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存

2015-06-19 13:51:03 664

原创 android之view的TouchDelegate

ouchDelegate是一个工具类,其目的是让一个view在一个特定的位置拥有比自己实际的触摸区域更大的可触摸的区域.触摸区域被更改的view被称作"delegate view".这个工具类应该被"delegate view"的父view使用.其实TouchDelegate的主要目的就是来扩大一个view的触摸区域的.

2015-06-18 18:44:20 1971

转载 HashMap的数据结构

1.HashMap的数据结构  数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法—— 拉链法,我们可以理解为“链表的数组” ,如图:  从上图我们可以发现哈希表是由数组+链表组成的

2015-06-13 14:32:00 563

转载 详细介绍Java中的堆、栈和常量池

下面主要介绍JAVA中的堆、栈和常量池:1.寄存器最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制。2. 栈存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆存放所有new出来的对象。4. 静态域存放静态成员(static定义的)5. 常量池存放字

2015-06-13 10:36:59 649

原创 android studio创建一个工程时候报错

android studio工程时候,打开布局文件,直接报错.

2015-06-12 16:03:56 1761

转载 Android 4.3中的视觉边界布局(Optical bounds layout)

不错的文章,转载了:http://www.tuicool.com/articles/YRRRnqOptical bounds layout(视觉/光学边界布局)是在4.3(Api level 18)中引入的一种新的布局对齐方式。之前是使用控件边界来布局的。可以在“设置” 中的 “开发者选项” 中的 “显示布局边界” 功能来查看界面的每个空间的编辑。下面两个图是使用控件边界布局和视觉编辑

2015-06-12 09:44:35 1584

原创 android之Context对各种服务的管理

Context是如何管理这么多的服务?工厂模式和单列模式还是享元模式?来看看android如何自如的来使用他们.

2015-06-11 14:47:45 1074

转载 Android 一张图理解getWidth和getMeasuredWidth

一张图理解getWidth和getMeasuredWidth" title="Android 一张图理解getWidth和getMeasuredWidth" height="551" width="690">view.getMeasuredHeight()可能隐藏在上头.可能在下头.如果view没有超出屏幕的时候view.getMeasuredHeight() 有可能小于 view.getHe

2015-06-10 17:21:22 537

原创 android 之EditText输入检测

一个简单的故事,时一段成长的经历!EditText你懂得?

2015-06-05 18:25:49 3689

转载 优化Android应用内存的若干方法

转载自:http://my.oschina.net/chaselinfo/blog/198172使用保守的Service如果你的应用需要使用 service 在后台执行业务功能, 除非是一直在进行活动的工作(比如每隔几秒向服务器端请求数据之类)否则不要让它一直保持在后台运行. 并且, 当你的 service 执行完成但是停止失败时要小心 service 导致的内存泄露问题.

2015-05-29 11:08:01 662

原创 activity生命周期中方法解析

对于activity的生命周期我觉得是一个简单而又不简单的问题,很多人可能觉得自己已经很精通了!往往事实却不以为然!activity是一个专注于用户操作的独立控件,一般情况下我们的activity都是用于与用户交互的,而activity通过创建的一个window来实现与用户的这种关系,在activity中我们通过setContentView来配置这个window所要显示的内容.其生命周期中的onStart/onResume/onPause等有什么关系和区别?要很好的理解他们,这显然是一个很有挑战的事情.

2015-05-27 19:26:57 1607

转载 Anroid之WakeLock

在使用一些产品列如微信、QQ之类的,如果有新消息来时,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就知道有新消息来临了。但是,一般情况下手机锁屏后,Android系统为了省电以及减少CPU消耗,在一段时间后会使系统进入休眠状态,这时,Android系统中CPU会保持在一个相对较低的功耗状态。针对前面的例子,收到新消息必定有网络请求,而网络请求是消耗CPU的操作,那么如何在锁屏状态乃至系统进

2015-05-25 14:40:23 527

原创 Fragment实现的自定义Dialog

在activity中,实现一个Dialog,我们可以从写activity中的方法:public Dialog onCreateDialog(int dialogId),这里的dialogId标识了我们这一次需要显示的Dialog.当然需要显示那一个Dialog在你的activity中调用这个方法:showDialog(DIALOG_ID_VOICE_COMMAND_SHOW_TONES);如果这个Dialog没有创建,就会自动回调onCreateDialog来创建我们的Dialog来显示.看看如下的实现方式

2015-05-11 16:00:25 3332

转载 Android Service学习之AIDL, Parcelable和远程服务

转载于:http://android.blog.51cto.com/268543/537684/AIDL的作用    由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象。在Android平台,一个进程通常不能访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。

2015-05-08 11:22:34 572

转载 序列化Parcelable/Serializable

public class Book implements Parcelable{    private String bookName;    private String author;    private int publishDate;        public Book()    {            }        public St

2015-05-07 12:04:37 489

原创 分享一个android手机开不了机的问题

android手机中:一个死锁造成的开机启动失败问题.

2015-04-29 11:57:35 3105 1

转载 WindowManager.LayoutParams全解

public static classWindowManager.LayoutParamsextends ViewGroup.LayoutParamsimplements Parcelablejava.lang.Object   ?android.view.ViewGroup.LayoutParams    ?

2015-04-24 18:02:16 1353

空空如也

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

TA关注的人

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