反射技术在android中的应用

动态语言:一般认为在程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。尽管这样,JAVA有着一个非常突出的动态相关机制:反射(Reflection)。运用反射我们可以于运行时加载、探知、使用编...

2016-06-30 13:53:27

阅读数 15019

评论数 5

真的知道LayoutInflater的正确用法么?

LayoutInflaterLayoutInflater中文译为布局膨胀,是Android中使用context来调用的一个术语,用来指导一个XML布局资源被正确解析,并且转换成一个视图对象的层次结构。当我们有一个XML布局文件需要解析成View的时候,LayoutInflater就会被用到,但是你...

2016-06-27 21:27:35

阅读数 1643

评论数 1

回溯法

小组人内分享会,继续研究算法。 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。八皇后问题: 八皇后问题...

2016-06-03 16:33:40

阅读数 402

评论数 0

两种方式实现圆形图片

一,自定义drawable利用画笔方法setShader()。 自定义Drawable 代码public class MyDrawable extends Drawable { private Paint mPaint; private Bitmap bitmap; pub...

2016-05-26 15:00:21

阅读数 650

评论数 0

BroadcastReceiver中的那些设计模式

前文写过BroadCastReceiver的源码的分析BroadcastReceiver源码解析(二),文章很长终于把广播的注册和发送流程详细的分析了一遍。最近用RationalRose画了画它的类图,于是将BroadCastReceiver中涉及的设计模式分析分析,准备再扒一层。 由于技术水平...

2016-05-25 16:02:35

阅读数 4155

评论数 0

微信底部滑动时图标渐变色的实现

周末想实现一下微信底部的渐变图案,折腾了一波,效果总算得上是差强人意。 下面是QQ的微信图标首先想到两个方案就是设置背景透明度,和属性动画。但效果都被否决了,属性动画效果逼真一些,但是顶多算是B货。要实现高仿的A货,尽管不喜欢用还是得自定义View了。 折腾了好久尽管效果很接近,但是效果还是有...

2016-05-23 12:20:35

阅读数 5850

评论数 1

BroadcastReceiver源码解析(二)

广播注册部分见BroadcastReceiver源码解析(一)4,BroadcastReceiver之源码分析 4.1,动态注册过程源码分析在Activity中动态注册广播时,在注册方法之前其实省略了Context,也就是实际上调用的是Context. registerReceiver()。Con...

2016-05-12 09:14:59

阅读数 8722

评论数 2

BroadcastReceiver源码解析(一)

1,简介BroadcastReceiver,中文直译为“广播接收者”,在Android 系统中,广播主要用在组件与组件之间进行消息传递。组件与组件之间可以是同一个进程,也可以是不同进程。既然是可以跨进程的,那么可以想像底层应该是基于Binder来实现的,事实也正是如此。2,为什么要有广播既然Bro...

2016-05-12 09:02:52

阅读数 2232

评论数 0

IPC(六)—一张图解释Messenger的设计思想

Aidl和Messanger是Android 中常用的IPC方式。首先,Aidl内部是基于Binder的,而Messenger内部又是基于Aidl的。但是messenger和Aidl还是有所区别的。 学习Aidl的时候常会看到: “Using AIDL is necessary only if...

2016-04-15 12:01:01

阅读数 581

评论数 0

IPC(五)——浅谈AIDL的架构原理

在 IPC(一)利用纯Binder通信(非aidl)中实现了,如何通过纯粹的Binder实现进程间的通信。然后在IPC(四)_Aidl的基本使用过程实现了如何通过Aidl实现进程间的通信。翻看代码的编写过程,其实大体上都差不多,而且也提到Aidl实质上就是对纯Binder通信进行了一次封装,毕竟I...

2016-04-13 15:39:40

阅读数 783

评论数 0

IPC(四)_Aidl的基本使用过程

AIDL全称 Android Interface definition language的缩写,顾名思义,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口. 下面是AIDL的详细使用过程。 简单起见,就完成一个客户端调用服务端,完成一次两个数加法的运算。 ...

2016-04-13 10:30:44

阅读数 342

评论数 0

AlertDialog Unable to add window

在广播中启动AlertDialog报这个错误android.view.WindowManager$BadTokenException: Unable to add window — token null 。其实解决这个问题首先要搞清楚window原理。AlertDialog 首先是一个View。在...

2016-04-11 17:09:31

阅读数 363

评论数 0

关于getsupportFragmentManager报错

群里最近好多人问在使用fragment的时候,获取fragmentManager爆红,提示说没有这个方法。 其实原理很简单。首先Fragment是3.0之后的东西,3.0之后获取FragmentManager使用的方法是getFragmentManager() ,3.0之前压根没有Fragmen...

2016-04-11 16:27:30

阅读数 5656

评论数 0

IPC(三)浅析Binder进程通信和ServiceManager

Binder机制是Android中实现的进程间通信的架构,它采用的是C-S架构,Client通过代理完成对Server的调用。既然是C-S模式,那么谁是Server呢?答案就是Native中的进程:ServiceManager。 顾名思义,这个是用来管理所有Server的。Android设备在硬...

2016-04-11 15:46:11

阅读数 554

评论数 0

IPC(二)初识进程和Binder

*什么是IPC通信 IPC(Inter-Process Communication)通信,是跨越两个不同进程(Process)之通信,一般而言,一个Android应用程序里的各组件(如Activity、Service等)都在同一个进程里执行。这种在同一进程内的通信,又称为短程通信...

2016-04-06 10:58:44

阅读数 1432

评论数 0

IPC(一)利用纯Binder通信(非aidl)

在Android中,当两个类都在同一个进程里执行时,两者之间的沟通,只要采取一般的函数调用(Function Call)就行了,既快速又方便。一旦两个类分别在不同的进程里执行时,两者之间的沟通,就不能采取一般的函数调用途径了。只好采取IPC沟通途径。Android框架的IPC沟通仰赖单一的IBin...

2016-03-25 10:07:37

阅读数 970

评论数 1

动态规划

备注:给小组人员讲解算法临时准备的稿子,记录自己的点点滴滴。 定义:动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分...

2016-01-25 14:33:19

阅读数 458

评论数 0

Android View的事件分发机制

新版的view的事件分发机制相较于老版本的还是改动了一些地方,这个准备记录下来,以免忘记和不时之需。 Android中的触摸事件的分发执行顺序是从ViewGroup中的dispatchTouchEvent–onInterceptTouchEvent,如果onInterceptTouchEvent...

2016-01-25 13:54:59

阅读数 366

评论数 0

算法之基本排序(冒泡,选择,插入)

冒泡排序: 在一次遍历中将最大值挨个两两交换到最后面,之后开始下一次前(n-i)位数的遍历,依次将最大数交换到最后一位。public class BubbleSort { public int[] bubbleSort(int[] A, int n) {//int类型数组,n为数...

2015-12-16 15:41:27

阅读数 337

评论数 0

仿QQ侧滑删除(简陋版)

今天想试试android View的事件分发机制,于是自制了一个仿QQ的侧滑删除当小白鼠,利用这个来验证View面对不同的情况下,的事件分发情况。 由于是当给自己当试验品用,做的有点简陋,不对那可是相当简陋。 原理:首先一个全屏的item加上一个button拼接成一个HorizontalScr...

2015-12-09 17:15:42

阅读数 498

评论数 0

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