2014年3月9日
摘要:
Binder驱动的原理和实现 通过上一节的介绍,大家应该对Binder有了基本的认识了。任何上层应用程序接口和用户操作都需要底层硬件设备驱动的支持,并为其提供各种操作接口。本节首先从Binder的驱动实现人手,分析其原理和它提供给用户层使用的接口。 Binder驱动的原理 为了完成进程间通信,Binder采用了AIDL(Android Interface Definition Language)来描述进程间的接口。在实际的实现中,IBinder是作为一个特殊的字符型设备而存在的,设备节点为/dev/binder,其实现遵循Linux设备驱动模型,实现代码主要涉及以下文伴: (...
阅读全文
posted @ 2014-03-09 15:10
laozhu1124
阅读(1591)
推荐(0)
2014年3月8日
摘要:
在Linux系统中,是以进程为单位分配和管理资源的。出于保护机制,一个进程不能直接访问另一个进程的资源,也就是说,进程之间互相封闭。但是,在一个复杂的应用系统中,通常会使用多个相关的进程来共同完成一项任务,因此要求进程之间必须能够互相通信,从而共享资源和信息。所以,操作系统内核必须提供进程间的通信机制(IPC)。在Linux中,进程间的通信机制有很多种,例如可以采用命名管道(namedpipe)、消息队列(messagequeue)、信号(signal)、共享内存(sharememory)、socket等方式,它们都可以实现进程间的通信。但是,在Android终端上的应用软件的通信几乎看不到这
阅读全文
posted @ 2014-03-08 21:22
laozhu1124
阅读(1666)
推荐(0)
摘要:
看看我要实现的效果:其实,这种左右界面切换保存布局方式,不只是易信界面这么用罢了。这更是大多数app布局的主流,而在android平台上面,随着谷歌大力推荐fragment的使用,用fragment实现这样的效果自然是一种大势所趋的事情。其实fragment实现这样的布局方式本身是一件easy的事情了,我这里要讨论一件事情,如何保存每个fragment状态。这也是fragment使用的一个难题。 我google了一下,百度了一下,终于在csdn上找到了一种解决方式,通过相应显示隐藏方式来保存: 1 int tabIndex=0,tag=0; 2 ...
阅读全文
posted @ 2014-03-08 10:09
laozhu1124
阅读(7796)
推荐(3)
2014年3月7日
摘要:
这节中,我们我们来讨论微盾上界面上实现的二三事。这也是这个项目的重头戏。界面上我们要做一个什么效果,一个倒计时的效果了,这个倒计时效果以后用的很多,希望对大家有帮助。我这里布局方式用到了帧布局的方式,一个是所谓的表盘的情况,一个是倒计时的秒针, 相应的布局文件如下了: 那个RingView是我自定义的表盘控件,它即在手机的界面上画了一个园,而这个CountdownIndicator即是一个倒计时控件,它是一个什么,一个扇形,一个随着时间的变化而不断改变自己大小的扇形。这两个控件的原理是什么了,我们来窥探它一下原貌了。首先看一...
阅读全文
posted @ 2014-03-07 08:05
laozhu1124
阅读(1687)
推荐(1)
2014年3月6日
摘要:
一、Tablelayout简介 Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。当为View时,该View将独占一行。二、TableLayout行列数的确定(最大的原则) TableLayout的行数由开发人员直接指定,即有多少个TableRow对象(或View控件),就有多少行。TableLayout的列数等于含有最多子控件的TableRow的列数。如第一TableRow含2个子控件,第二个TableRow含3个,第三个TableRo...
阅读全文
posted @ 2014-03-06 15:53
laozhu1124
阅读(33114)
推荐(2)
摘要:
在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果。其主要特征如下:处理异步Http请求,并通过匿名内部类处理回调结果,Http异步请求均位于非UI线程,不会阻塞UI操作,通过线程池处理并发请求处理文件上传、下载,响应结果自动打
阅读全文
posted @ 2014-03-06 08:52
laozhu1124
阅读(27270)
推荐(5)
2014年3月5日
摘要:
Android联网主要使用HttpURLConneciton和HttpClient进行联网,在手机联网的时候,我们优先选择wifi网络,其次在选择移动网络,这里所述移动网络主要指cmwap。大家都知道cmwap连接需要设置代理地址和端口,那么,android程序中如何设置代理呢?这是个问题。HttpURLConnection设置代理1 //当我们使用的是中国移动的手机网络时,下面方法可以直接获取得到10.0.0.172,80端口 2 String host=android.net.Proxy.getDefaultHost();//通过andorid.net.Proxy可以获取默认的代理地址 .
阅读全文
posted @ 2014-03-05 11:30
laozhu1124
阅读(9032)
推荐(1)
2014年3月4日
摘要:
ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏实现将自动围绕布局。能够让开发者轻松开发一款带动作栏(Action bar)的应用,并且适用于Android 2.x及其以上所有版本。那既然项目很好很强大的话,怎么使用他了?首先,出githu
阅读全文
posted @ 2014-03-04 13:28
laozhu1124
阅读(7848)
推荐(0)
摘要:
上节我们说到我们主要的算法是在Google的一个开源项目Google Authenticator 修改的。那么我们窥探一下Google Authenticator的全貌。我们通过源代码来了解,上代码:首先是一些噼里啪啦的定义的常量,变量。private static final int PASS_CODE_LENGTH = 6; static final int INTERVAL = 30; private static final int ADJACENT_INTERVALS = 1; private static final int PIN_MODULO = (int) ...
阅读全文
posted @ 2014-03-04 07:26
laozhu1124
阅读(1492)
推荐(0)
2014年3月3日
摘要:
上节我们说到,关于opt算法的说明,也说到这个项目是使用TOTP(基于时间)方法。 这节讲的主要把它怎么整合项目中。整合项目中,此算法需要注意这么几点。1. 与服务器端统一的准确时间由于是使用totp算法,客户端与服务器端的算法是必须要保存一致的。对时接口,获取服务器端准确时间,返回{“svr_time”:1319512158},以秒为单位的时间戳。时间偏移量 = 本地时间 – 服务器端时间,将时间偏移量保存在地SharePreference中,供计算动态密码时读取服务器端时间 = 本地时间 - 时间偏移量使用时间偏移量的好处是:只需要从服务器获取一次时间,以后都可以离线使用微盾。2. 静态密
阅读全文
posted @ 2014-03-03 07:58
laozhu1124
阅读(1694)
推荐(1)