自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

Android开发减少方法数的建议

     现在的Android应用越来越庞大,开发者越来越能感受到方法数限制带来的影响。这里简单讲几个减少方法数的小建议。 1.什么是方法数?为什么它这么重要?    这要从dex的文件格式说起,在把源码编译、转化为dex文件格式时,dex文件中会有一个区域包含了所有源码中定义或引用的方法列表。这个区域中所有方法项的总数就是方法数。很遗憾,Android在刚开始被设计的时候,这...

2015-11-04 11:40:54 252

吐槽下iteye的编辑器

每次写博客的时候,很想配个图,但是这个编辑器太烂了,必须得把图片上传到相册或者放到网上才能用,麻烦死了,想多贴几段代码的时候,想想就没兴致了。为什么不能从电脑里面copy一下,粘贴到指定地方的时候就直接帮忙上传呢?这个不难实现吧? ...

2012-08-06 19:58:33 160

Android NFC简介

  目录:Android NFC. 11 简介... 11.1 什么是NFC. 11.2 Android上的NFC. 21.3 Android中的NFC通讯机制... 22 用...

2012-08-03 11:31:57 191

原创 Java多线程参考手册

本文转载自ring0hx的博客:http://blog.csdn.net/ring0hx/article/details/6858582虽然不够深入,但是很全面1         同步                如何同步多个线程对共享资源的访问是多线程编程中最基本的问题之一。当多个线程并发访问共享数据时会出现数据处于计算中间状态或者不一致的问题,从而影响...

2011-10-12 13:14:07 110

原创 当今世界最为经典的十大算法

本文转载自July CSDN博客:http://blog.csdn.net/v_JULY_v/archive/2011/03/07/6228235.aspx 第一部分、来自圣经的十大算法    当今世界,已经被发现或创造的经典算法数不胜数。如果,一定要投票选出你最看重的十大算法,你会作何选择列?    曾有人在StackExchange上发起了提问,向网友们征集当今世界...

2011-03-24 14:51:50 1081

应用程序动态全屏和退出全屏

     让程序全屏的方法,大家都知道,那是静态的,程序运行之初就申明了。但是如果有这样的需求:要在程序运行的过程中,执行了某个操作而使之全屏,然后还需要退出全屏,怎么做?    如下:WindowManager.LayoutParams attrs = getWindow().getAttributes();attrs.flags |= WindowManager.Layou...

2011-03-24 14:48:20 245

Android放大镜的实现

    快三个月了没写博客了,因为工作调动,很多经验、心得都没有时间记录下来。现在时间稍微充裕了点,我会尽量抽时间将之前想写而没写的东西补上。进入正题。    去年某个时候,我偶然看到一篇文章,讲android里面放大镜的实现。文章很乱,没有格式,基本上属于看不下去的那种。虽然体裁很有意思,但是我也没有足够的内力把它看完。不过看到一句关键的话,说是使用带圆形的Drawable。这句话就够了,他...

2011-02-24 20:29:11 149

Android简单的圆盘形菜单

     今天偶然看到一个圆盘形的菜单,还可以转动,感觉挺有意思,然后想了想,做了个简单的效果。      思路是这样的,定一个原点和一个半径,圆的四周均匀分布每个菜单。为了方便计算,菜单的坐标用度数表示,然后转化为极坐标计算。      定某个点为起始点,根据总菜单数确定每个点增加的度数,然后依次确定每个点的度数,也就确定了坐标。 package chroya.demo....

2010-12-01 17:10:05 486

Android的3D旋转

       见过没有用opengl的3D动画,看了一下,是用的Camera实现的,内部机制实际上还是opengl,不过大大简化了使用。       Camera就像一个摄像机,一个物体在原地不动,然后我们带着这个摄像机四处移动,在摄像机里面呈现出来的画面,就会有立体感,就可以从各个角度观看这个物体。        它有旋转、平移的一系列方法,实际上都是在改变一个Matrix对象,一系...

2010-11-29 12:27:05 195

让自己的Android应用支持appwidget

        经常看到一些教程教你如何写appwidget,但是,你知道你的appwidget是如何被添加到桌面上的吗?        一般的,如果是做桌面的童鞋,基本上都会让自己的桌面支持appwidget。下面说说如何实现。        首先是得定义一个承载appwidget的容器,系统的Launcher里面是用的CellLayout,实现的很不错。我这里就用一个简单的自定...

2010-11-26 13:25:30 103

原创 为什么人生气时说话用喊的

      为什么人生气时说话用喊的?      有一天一个有智慧的教授问他的学生:“为什么人生气时说话用喊的?”所有的学生都想了很久,其中有一个学生说:“因为我们丧失了冷静,所以我们会用喊的。”“但是为什么别人就在你旁边而已,你还是用喊的,难道不能小声的说吗?为什么总是要用喊的?”教授又问。      几乎所有的学生都七嘴八舌的说了一堆,但是没有一个答案是让教...

2010-11-08 10:17:24 157

ConditionVariable的用法

      线程操作经常用到wait和notify,用起来稍显繁琐,而Android给我们封装好了一个ConditionVariable类,用于线程同步。提供了三个方法block()、open()、close()。void block()阻塞当前线程,直到条件为openvoid block(long timeout)阻塞当前线程,直到条件为open或超时void ope...

2010-11-07 21:35:05 412

Android自定义长按事件

    Android系统自带了长按事件,setOnLongClickListener即可监听。但是有时候,你不希望用系统的长按事件,比如当希望长按的时间更长一点的时候。这时候就需要自己来定义这个长按事件了。    下面是去年我写代码的时候,自定义长按事件的方式:package chroya.fun;import android.content.Context;import...

2010-11-06 20:34:58 411

自定义对象需要重写hashcode

      Java中的很多对象都override了equals方法,都知道,这是为了能比较两个对象是否相等而定义,如果不需要比较,则不需要定义equals方法。比如StringBuffer类,没有提供equals方法,则说明没有两个StringBuffer对象是相等的。再比如Collections类,全部是静态方法,根本没必要创建对象,所以也就没有提供equals方法。      我们程序中...

2010-11-05 15:56:52 381

给Android程序签署platform权限的名

    做Home程序的时候,由于需要提供时间日期的设置功能,所以需要修改系统时间。修改时间的代码很简单,就那么一句,但是要让它生效可就不那么容易了。    修改系统时间的条件是,你的程序的user id必须跟system一样,也就是说,需要system权限。    怎样达到这个条件呢?    Android提供了sharedUserId来设置程序归属哪个user id,我们在程序的m...

2010-11-04 16:42:22 153

原创 快速排序为什么那样快

本文转载自 http://www.kuqin.com/algorithm/20080615/9581.html摘要  排序的本质可以这样来表述:一组未排序的N个数字,它们一共有N!种重排,其中只有一种排列是满足题意的(譬如从大到小排列)。换句话说,排序问题的可能性一共有N!种。任何基于比较的排序的基本操作单元都是“比较a和b”,这就相当于猜数字游戏里面的一个问句...

2010-10-28 13:13:57 314

Android画图之抗锯齿

    在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。    方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。paint.setAntiAlias(true);     方法二:给Canvas加上抗锯齿标志。有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。...

2010-10-26 15:25:05 381

Android获取应用程序的大小

       今天碰到个问题,想获取某个已安装的包的大小,没找到合适的方法。搜索了一下,发现PackageManager里面有个getPackageSizeInfo方法,可惜是hide的,而且它执行之后,会将结果回调给IPackageStatsObserver的onGetStatsCompleted方法。后来想直接计算/data/app和/system/app里面的apk大小,可是有时候会碰到权限...

2010-10-22 23:53:27 137

BitSet位图算法

    位图算法,使用bit存储数据并排序,优点是快速、占用资源少,缺点是只能对整数使用。    Java和C++中都有已经实现的的BitSet类,可以直接使用。    举个例子,0到10000中随机出1000个数,然后用位图算法排序:    import java.util.BitSet;public class BitSetDemo { public sta...

2010-10-21 17:33:22 306

原创 两个最容易被人忽略的基本代码优化技术

      本文转载自http://sd.csdn.net/a/20100921/279732.html Dr. Dobb’s Blogger的Walter Bright曾写了一篇博文《Overlooked Essentials For Optimizing Code》,为我们总结了两个最容易被人忽略的基本代码优化技术。酷壳个人网站版主陈皓对本文进行...

2010-09-23 19:44:28 97

Android获取其他包的Context实例然后干坏事

      Android中有Context的概念,想必大家都知道。Context可以做很多事情,打开activity、发送广播、打开本包下文件夹和数据库、获取classLoader、获取资源等等。如果我们得到了一个包的Context对象,那我们基本上可以做这个包自己能做的大部分事情。         那我们能得到吗?很高兴的告诉你,能!      Context有个createPac...

2010-09-12 14:55:40 399

原创 给EditText加上输入提示

      对于EditText控件来说可能需要用户输入提示,比如这个文本库是需要输入姓名的,可能 输入提示的内容为 “单击输入姓名”,使用Java代码,直接调用setHint(CharSequence hint) 即可,而对于layout xml布局文件而言,可以加入android:hint="单击输入姓名"   这行在你的 EditText 中即可。      输入提示颜色为灰...

2010-09-11 21:43:02 361

原创 解决Android的ListView控件滚动时背景变黑

      如果大家在非黑色背景下使用ListView控件时,Android默认可能在滚动ListView时这个列表控件的背景突然变成黑色。这样可能导致程序的黑色的背景和主程序的主题既不协调。解决的方法Google在设计Android时也考虑了,在Layout的ListView中加入android:cacheColorHint="#00000000" 的属性即可。...

2010-09-11 21:38:05 59

android监听文件和目录的创建删除移动等事件

      android.os下的FileObserver类是一个用于监听文件访问、创建、修改、删除、移动等操作的监听器,基于linux的inotify。FileObserver是个抽象类,必须继承它才能使用。每个FileObserver对象监听一个单独的文件或者文件夹,如果监视的是一个文件夹,那么文件夹下所有的文件和级联子目录的改变都会触发监听的事件。    所能监听的事件类型如下...

2010-09-11 21:18:17 251

Android获取外部和内部存储空间总大小和可用大小

      android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等。      看下读取sd卡的:void readSDCard() { String state = Environment.getExternalStorageState(); if(Enviro...

2010-09-11 12:12:01 530

解决android自定义标题栏充满的问题

        一个接着一个的activity,写啊写,调啊调,后来,终于发觉,activity的标题栏好难看,好单调啊。咱们为了吸引用户的眼球,得搞点个性化的东西。        自定义标题栏的方法,网上一搜一大堆,我也稍微提一下,oncreate中加上如下代码就行:requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);setCont...

2010-09-10 15:27:34 129

原创 暗时间

如果你有一台计算机,你装了一个系统之后就整天把它搁置在那里,你觉得这台计算机被实际使用了吗?没有。因为CPU整天运行的就是空闲进程。运行空闲进程也是一天,运行大数据量计算的程序也是一天,对于CPU来说同样的一天,价值却是完全不一样的。大脑也是如此。善于利用思维时间的人,可以无形中比别人多出很多时间,从而实际意义上能比别人多活很多年。我们经常听说“心理年龄”这个词,思考得多的人,往往...

2010-09-07 23:27:39 69

Android中用AsyncTask简单实现多线程

      一般情况下在android中使用多线程的时候,我们都是在线程运行的时候使用Handler来给主线程传递消息,这样用起来虽然没什么不好,但是总感觉有点乱。其实Android已经提供了一个标准的实现多线程的模型,那就是AsyncTask类。      这个类用起来很简单,继承他之后,override几个方法,然后就可以在线程执行过程中,不断的将结果通知给ui线程。      下面简...

2010-09-07 14:11:53 117

判断一个activity是否存在于系统中

    已知包名和类名,如何判断这个activity是否在系统中存在呢?很简单,通过intent就行。 Intent intent = new Intent(); intent.setClassName("包名", "类名"); if(getPackageManager().resolveActivity(intent, 0) ...

2010-09-03 17:38:27 145

获取屏幕上正在显示的activity

        用过ActivityManager的童鞋估计都知道,可以从ActivityManager里面可以获取到当前运行的所有任务,所有进程和所有服务,这是任务管理器的核心。        那么,从里面我们可以发掘点什么出来吗?        仔细看getRunningTasks的文档,里面说获取的是系统中"running"的所有task,"r...

2010-09-03 15:44:06 207

Android自由选择TextView的文字

      用过EditText的都知道,EditText有个特点,当在里面长按的时候,会出现一个ContextMenu,提供了选择文字,复制,剪切等功能。有时候,我们会想,如果不出现这个ContextMenu,直接就在view上选择文字,那多美好啊。相信很多人抱有这样的想法,很不幸,我也是。于是我就研究了一下EditText和TextView的代码,然后将这个问题解决了。      网上很多...

2010-09-02 15:47:35 272

Android获取状态栏和标题栏的高度

    也许有时候你会有这样的需求:得到状态栏或者标题栏的高度。    怎么办? 恩,方法是有的,也许还不止一个,下面提供一个作为参考: 1.获取状态栏高度:decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括...

2010-09-02 14:51:43 115

原创 如何成为Android高手

      若立志成为Android高手,如有耐心,“一瓶一钵足矣”。   “天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。”想成为Android高手?这可不是想象中写几行代码那么容易的事情,但也不是不可实现。  如何做?  1,学会懒惰!奇怪吧?但是,你一定也听说过和感受过这个世界某种程度上是由懒...

2010-08-28 20:34:42 78

NDK入门、提高和实战

    网上也有一些对NDK的介绍,不过都是很简单的把sample里面的例子讲解一下,并不深入,我这里把我的所得分享一下。我下载的是Android Native Developer Kit (NDK) R4版本,当前的最新版。    下载地址如下:    http://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.z...

2010-08-04 18:25:55 107

Python的循环

    一个正常的python循环如下:for i in range(10): print(i)     结果如下:0123456789     如果需要打印出序号,则要用到enumeratea=['a',3,22,'g']for index,num in enumerate(a): print(index...

2010-08-03 21:44:52 62

linux下用adb连接手机的问题解决

      在linux里面,模拟器可以直接识别,使用adb也没有限制,但是手机插上usb之后,adb并不识别,显示的是问号,在eclipse里面也是这样。      解决方法如下:      1.在bash中输入lsusb,可以看到很多BUS设备,很多都是Linux Foundation 1.1 root hub的,这是没有插上usb设备的端口,插上手机的端口会出现另外的字符串,...

2010-08-02 16:17:32 195

ubuntu升级之后启动不了的解决

    我的ubuntu是用wubi安装的,今天准备搞android的ndk,所以把开发环境给配置了一下,jdk、android的sdk、ndk,还有eclipse,以及三百多个更新,全部安装好了,然后重新启动。结果发现,进不去鸟!!停在了grub引导符下。    不过请教了google大神之后,解决了问题。    最麻烦的一种方法,是敲命令,一大堆的命令。就在grub的引...

2010-08-02 16:05:46 277

原创 Python中的简单类型

整数 & 浮点数整数有两种,分别是 int 和 long。其中 int 最大值是 2147483647 (sys.maxint),而 long 长度仅受内存大小限制。>>> a = 123>>> b = 123L>>> type(a)<type 'int'>>>>

2010-08-01 21:40:05 128

Python的三元操作

    我写程序很喜欢用三元运算符,但是在python中居然不支持,有点郁闷,查了下资料,发现还是有解决方案的。    比如,一个这样的函数:function trans(v) { return (v==0)?1:v; }    啧啧,三元运算符看着就是漂亮,不知道python为什么不支持。   下面看一下python的解决方案一:de...

2010-08-01 14:27:37 214

startActivity的requires new task异常解析

    很多人使用startActivity时候,会碰到如下的异常:Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this re...

2010-07-29 22:09:55 172

空空如也

空空如也

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

TA关注的人

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