- 博客(39)
- 收藏
- 关注
原创 解决setMovementMethod(LinkMovementMethod.getInstance())后没有长按事件响应
setMovementMethod(new LongClickableLinkMovementMethod(mlistener))
2014-05-23 14:41:55
3512
1
转载 魅族取消虚拟键盘
Class[] arrayOfClass = new Class[1];arrayOfClass[0] = Integer.TYPE;Method localMethod = View.class.getMethod("setSystemUiVisibility",arrayOfClass);Field localField = View.class.getField("SYSTE
2014-04-16 15:52:06
1050
原创 android虚拟按键
取得系统权限,然后就可以对虚拟按键作处理。下面是隐藏home和recent。private StatusBarManager mStatusBarManager;mStatusBarManager = (StatusBarManager)getSystemService(Context.STATUS_BAR_SERVICE);public void disableS
2014-03-26 09:44:44
1036
转载 增大view的有效区域
Android提供了一个TouchDelegate类去让父类扩展它的子view的触摸区域。当子view很小但需要大的触摸区域的时候,这个类大有用处。如果你想要的话,你也能用这个类去缩小子view的触摸区域。在下面的例子中,有一个作为例子的ImageButton(也就是说父类会扩展这个子view的触摸区域)、在下面的例子中,有一个作为例子的ImageButton(也就是说父类会扩展这
2014-03-24 15:40:35
528
原创 linux命令
2014.1.10ep:grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)'^grep'匹配所有以grep开头的行。'grep$'匹配所有以grep结尾的行。-i :忽略大小写的不同,所以大小写视为相同-n :顺便输出行号-v :反向选择,亦即显示出没有 '
2014-02-10 22:50:34
574
转载 ViewPager,HorizontalScrollView
解决思路:自定义ViewPager,在onInterceptTouchEvent方法当中判断,当前点击的点是不是HorizontalScrollView上的点,如果是,则:this.requestDisallowInterceptTouchEvent(true);return super.onInterceptTouchEvent(arg0);如果不是,则:this.req
2014-01-14 14:34:23
502
转载 Linux内核空间和用户空间详解
linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较低的
2013-12-16 18:41:16
500
转载 IPC
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间
2013-12-16 18:21:55
534
转载 Linux内存映射(mmap)简析
14 #include 15 #include 16 #include 17 #include 18 #include 19 20 21 #define DEVICE_NAME "mymap"22 23 24 static unsigned char array[10]={0,1,2,3,4,5,6,7,8,9};25 static unsigned c
2013-12-16 17:38:41
514
转载 Binder Parcel
Android中的Parcel是什么 Parcel,翻译过来是“打包”的意思。打包干什么呢?是为了序列化。 如果要在进程之间传递一个整数,很简单,直接传就是行了;如果要传一个字符串,就稍微复杂了点:需先分配一块可以容纳字符串的内存,然后将字符串复制到内 存中,再传递(新手可能问:为啥不直接把字符串的引用传过去呢?学过C/C++的地球人都知道:进程有自己的内存地址空间,一个进程
2013-12-11 14:59:46
635
转载 oom
Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M,有的机器为24M。我们平常看到的OutOfMemory的错误,通常是堆内存溢出。移动开发和web开发的最大的区别是设备资源受限,对一般手机应用,这个资源是相当有限的,堆内存的上限值只有16M。Android的缺省值是16M(某些机型是24M),而对于普通应用这是不能改的,当应用程序处理大资源的资源,如图片或视频等媒体资源
2013-11-26 15:29:47
391
原创 packageinstaller实验静默安装与卸载的关键代码
private String installApk(String fileName) { String[] args = { "pm", "install", "-r", fileName }; String result = ""; ProcessBuilder processBuilder = new ProcessBuilder(args
2013-09-05 18:09:40
796
转载 Android 解决ListView 和 ScrollView 共存冲突的问题
ListView 与 ScrollView 同在一个界面用头脑想想都觉得不大可能这样做,但还真的有美工这样做了,有点郁闷~!!沟通无果,解决之~~~~!初期还真没啥头绪,Google 一下看到有很多同样碰到这类头痛的问题,不好意思还没描述问题症状。ListView 与 ScrollView 同在一界面会导致ListView 显示变形,因为ListView 也有自带的滚动事件,故无法与ScrollV
2013-08-08 19:59:09
615
转载 android View详解
一、结构 java.lang.Object android.view.View 已知直接子类: AnalogClock, ImageView, KeyboardView, ProgressBar, SurfaceView, TextView, ViewGroup, ViewStub 已知间接子类: AbsListView,
2013-08-08 19:57:28
789
转载 Android系统Intent的使用
Android Intent的几种用法全面总结Intent,用法Intent应该算是Android中特有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料。都指定好后,只要调用startActivity(),Android系统会自动寻找最符合你指定要求的应用程序,并执行该程序。下面
2013-08-08 17:11:52
671
转载 onInterceptTouchEvent和onTouchEvent调用关系详解
本帖记录onInterceptTouchEvent和onTouchEvent调用关系,即各种return true和return false的运行情况。return true和return false,代表的是是否消费完该事件,也就是该事件是否会继续传递给下层或者上层组件继续处理。return true代表消费完不会继续传递,return false代表没有消费完将会继续传递。如果
2013-08-05 14:06:24
461
原创 Android4.0.3 Launcher源码研究 1
DragLayer> WorkSpace> CellLayout> CellLayout> CellLayout> CellLayout> CellLayout> /WorkSpace> include layout="@layout/hotseat" android:id="
2013-08-05 10:18:28
574
转载 android --47
1、判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 2、TextView部分文字设置颜色 TextView tv = new TextView(this); //添加css样式 t
2013-07-29 09:23:54
644
转载 debug lanucher
1、创建工程,选择File--->New----->Project...---->Android Project from Existing Code---->Browse---->找到源码所在的路径----->Finish,工程就创建完成了。工程创建之后需要更改SDK的版本,右键工程,选择Properties---->Android--->Android4.0.3(API版本高于
2013-07-25 09:32:55
606
转载 synchronized
1. 把synchronized当作函数修饰符时,示例代码如下:Public synchronized void method(){//….}这也就是同步方法,那这时synchronized锁定的是哪个对象呢?他锁定的是调用这个同步方法对象。也就是说,当一个对象P1在不同的线程中执行这个同步方法时,他们之间会形成互斥,达到同步的效果。但是这个对象所属的Class所产生的另一对象P
2013-07-17 16:11:01
384
转载 ACER 4745G 解决声卡、有线网卡问题
安装Ubuntu10.04后ACER4745G 出现的问题及解决描述:1、声卡有声音,插上耳机后耳机和外方都没有声音解决:# mv /lib/modules/2.6.32-22-generic/kernel/sound/pci/hda /lib/modules/2.6.32-22-generic/kernel/sound/pci/hda-bak# ./configure# ma
2013-07-17 12:59:46
1020
转载 Eclipse和debug的一些快捷键
Debug快捷键 F5单步调试进入函数内部。 F6单步调试不进入函数内部,如果装了金山词霸2006则要把“取词开关”的快捷键改成其他的。 F7由函数内部返回到调用处。 F8一直执行到下一个断点。 F11 这个好像是重新运行debug的,我也不确定,一直就当做重新运行debug的快捷键用的,呵呵。 全局 单步返回 F7 全局 单步跳过
2013-07-17 12:54:07
476
转载 andorid源码出现红色感叹号
如果发现导入工程的时候,出现”No projects are found to import” 的提示,首先查看项目目录中是否有隐藏文件.project,还有目录结构也还要有一个隐藏文件.classpath, 如果没有的解决办法。方法1:最直接的操作,可以把其它项目的.project, .classpath文件拷贝过来,修改相应的地方则可。1).project文件只需要修改AboxTVEx
2013-05-11 13:44:33
620
转载 oom的解决方案
在最近做的工程中发现加载的图片太多或图片过大时经常出现OOM问题,找网上资料也提供了很多方法,但自己感觉有点乱,特此,今天在不同型号的三款安卓手机上做了测试,因为有效果也有结果,今天小马就做个详细的总结,以供朋友们共同交流学习,也供自己以后在解决OOM问题上有所提高,提前讲下,片幅有点长,涉及的东西太多,大家耐心看,肯定有收获的,里面的很多东西小马也是学习参考网络资料使用的,先来简单讲下下:
2013-05-08 21:44:01
512
转载 andoid节省电量
建立连接前按Wifi-3G-2G顺序检查网络不要保持2G/3G连接wifi可用时,尽量用push,不要用定时查询优化应用程序的设计和算法使用简单高效的数据使用gzip压缩数据流>树-节点层次结构Ex, protobuf>json>xml
2013-05-08 21:34:25
552
转载 andorid程序优化
少用浮点运算、文件、pipe、数据库访问用高效的方式:StringBuffer代替大量临时String,SoundPool代替多个MediaPlayer,texture代替canvas, Log.d() 代替System.out.print(),避免invalidate()重视onMeasure/onLayout/onDraw/onTouchEvent/getView等函数的效率2. 游戏开发
2013-05-08 21:33:15
423
原创 android反编译
2.3版本以上在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”可以对代码进行混淆,反编译后是很难看懂的。2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可。Android - proguard混淆器使用,有引用第三方jar包的时候报错:
2013-05-08 21:32:27
481
转载 递归删除文件夹
public final class OperationFileHelper { /** * 递归删除文件和文件夹 * @param file 要删除的根目录 */ public static void RecursionDeleteFile(File file){ if(file.isFile()){ f
2013-05-08 21:23:49
524
转载 static
在类中定义的数据成为类的数据成员,例如字段,常量等。而函数的成员方法则提供操作类的数据的功能,函数成员方法、属性、构造函数等。对象中的数据成员和方法一般都是对象私有的,即只有对象本身才能访问,其他对象不能直接对其操作。但是,如果在多个地方调用就需要产生多个实例。有些时候被调用的方法与实例的多少没有任何关系,该方法可能只是帮助方法。在这种情况下,不需要多个实例, java 引入了static,先看一
2013-05-06 23:09:27
343
转载 listview的优化
1、如果自定义适配器,那么在getView方法中要考虑方法传进来的参数contentView是否为null,如果为null就创建contentView并返回,如果不为null则直接使用。在这个方法中尽可能少创建view。2、给contentView设置tag(setTag()),传入一个viewHolder对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果。3、如果listview
2013-05-06 22:01:55
443
转载 Linux下Eclipse工程查看framework层代码
Goolge在发布SDK时没有把源代码包含进去,而且ADT不允许我们在项目属性中attach源代码到android.jar上。所以默认情况下,我们没法在Eclipse的一个Android工程中查看framework java层的代码。 经尝试,找到如下解决办法:大家可以 1、cd $android_sdk/platforms/android-2.1/ 2、ln -s $a
2013-04-02 16:32:11
467
原创 事件分发
Activity.dispatchTouchEvent(MotionEvent) – 这允许你的活动可以在分发给窗口之前捕获所有的触摸事件。ViewGroup.onInterceptTouchEvent(MotionEvent) – 这允许一个视图组ViewGroup 在分发给子视图时观察这些事件。ViewParent.requestDisallowInterceptTouchEvent(bo
2013-04-01 11:01:48
443
原创 搞定c指针1
看草木有本心大神c指针有感!int i;char a;内存中的映象可能如下图:内存地址→ 6 7 8 9 10 11 12 13------------------------------------------------------------------···| | | | | | | |··----------------------------------
2013-03-30 20:09:23
392
转载 代码布局
1. FrameLayout下动态设置子控件居中:FrameLayout.LayoutParams btnLytp = new FrameLayout.LayoutParams(80,LayoutParams.WRAP_CONTENT);btnLytp.gravity = Gravity.CENTER;btnMemo.setLayoutParams(btnLytp); 2. Rel
2013-03-29 15:48:41
452
转载 view and window简介
ViewGroup是View的子类,所以它也具有View的特性,但它主要用来充当View的容器,将其中的View视作自己的孩子,对它的子View进行管理,当然它的孩子也可以是ViewGroup类型。ViewGroup(树根)和它的孩子们(View和ViewGroup)以树形结构形成了一个层次结构,View类有接受和处理消息的功能,android系统所产生的消息会在这些ViewGroup和 Vi
2013-03-29 15:14:12
577
转载 application context
我们可以使用application context。application context伴随application的一生,与activity的生命周期无关。application context可以通过Context.getApplicationContext或者Activity.getApplication方法获取。而制造Application context的方法在这里可以找到htt
2013-03-27 10:44:19
691
转载 context相关内存泄露
如果context发生内存泄露的话,就会泄露很多内存。这里泄露的意思是gc没有办法回收activity的内存。 注释:为什么GC没有办法回收相应的内存,个人感觉是因为传递Context会增加对象指针的引用计数,所以基于智能指针技术的GC无法释放相应的内存。 当屏幕旋转的时候,系统会销毁当前的activity,保存状态信息,再创建一个新的。比如我们写了一个应用程序,它需要加载一个很大
2013-03-27 10:36:29
483
原创 获取屏幕分辨率
DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);int width = dm.widthPixels;int height = dm.heightPixels;StringBuffer strB = new StringBuffer();
2013-03-20 09:17:40
474
原创 关于soundtouch项目的变声的学习总结!
因为实验室要做一个关于变声的androidAPP。这个APP简直是浪费了无数脑细胞,选择了用soundtouch这个包,但是NDK没做过,声音三要素也不知道,纠结了一个月终于搞出来了!记录一下,首先这个库是没有任何问题的,做的时候怀疑了很多次,呵呵。其次第一要编译出.so,在编译的时候注意android.mk和application.mk都是需要的。sttpyes.h文件中声道根据自己的要求选择,
2012-12-12 04:50:29
1937
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人