Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Android系统中长按事件的实现机制解析

Android系统中长按事件的实现机制解析

在Android的触摸消息中,已经实现了三种监测,它们分别是1)pre-pressed:对应的语义是用户轻触(tap)了屏幕2)pressed:对应的语义是用户点击(press)了屏幕3)longpressed:对应的语义是用户长按(long press)了屏幕下图是触摸消息随时间变化的时间轴示意图:其中,t0和t1定义在ViewConfiguration类中,标识了tap和longpress的超时时间,定义如下:/** *Definesthedurati...
Android代码中实现WAP方式联网

Android代码中实现WAP方式联网

无论是移动、联通还是电信,都至少提供了两种类型的的APN:WAP方式和NET方式。其中NET方式跟WIFI方式一样,无需任何设置,可自由访问所有类型网站,而WAP方式,需要手机先设置代理服务器和端口号等信息,并且只能访问HTTP协议类型的网站。1) 移动的WAP名称是CMWAP,NET名称是CMNET;2) 联通的WAP名称是UNIWAP,NET名称是UNINET;联通3G的WAP名称是3GWAP,NET名称是3GNET;3) 电信的WAP名称是CTWAP...
Android中HandlerThread类的解析

Android中HandlerThread类的解析

Android应用中的消息循环由Looper和Handler配合完成,Looper类用于封装消息循环,类中有个MessageQueue消息队列;Handler类封装了消息投递和消息处理等功能。系统默认情况下只有主线程(即UI线程)绑定Looper对象,因此在主线程中可以直接创建Handler的实例,但是在子线程中就不能直接new出Handler的实例了,因为子线程默认并没有Looper对象,此时会抛出RuntimeException异常:浏览下Handle...
百度贴吧布局框架的研究与实现(Android版本)

百度贴吧布局框架的研究与实现(Android版本)

还记得几个月前刚接触“百度贴吧”这款应用时,瞬间就被它的悬浮式标题栏以及标签栏所吸引,虽然当时身边有个UI的MM说悬浮式一般都是具备隐藏的功能时才设计成这样的,一般情况下还是用直通式的好,在这里我也不讨论孰优孰劣,截取两个图,大家自己品味下。悬浮式标题栏和标签栏:(百度贴吧);直通式标题栏和标签栏:(QQ空间)本文的目的就是研究下百度贴吧的这个标题栏和标签栏的实现原理;1、 悬浮式标题栏的实现实现原理有两种:1)在布局文件中设置标题栏的layout_mar...
Android自定义状态栏通知(Status Notification)的正确实现

Android自定义状态栏通知(Status Notification)的正确实现

在Android应用开发中,经常会使用到状态栏通知(Status Notification),例如新浪微博、网易新闻等提供的推送消息,软件后台更新时进度的显示等等,如下图所示:看了网上很多关于Notification的博客文章,发现几乎没有一个能将自定义状态栏通知完全实现正确的,因此,本文就来说说实现自定义状态栏通知经常被忽略的一些知识点。1) 使用Notification最常见的场景运行在后台的Service当需要和用户交互时,由于它不能直接启动一个Ac...
Android应用中意见反馈功能的探讨与实现

Android应用中意见反馈功能的探讨与实现

很多Android应用的都提供了“意见反馈”功能,便于收集用户对该产品的建议,今天就来研究下现在市面上的“意见反馈”功能的实现形式,以91手机助手,网易新闻和布卡漫画为例,相应的有三种不同的形式:1)91手机助手(滚动型)主界面使用ScrollView实现,软键盘会覆盖界面下方的内容,需要滚动才能看到下面的输入框等信息,适合反馈界面信息量比较多的情况。同时在标题栏的右边有个客服答复按钮,能够让用户看到自己反馈信息的回复,增强了产品与用户交互性。2)网易新闻...
简单分析Android中添加shortcut方面的源码

简单分析Android中添加shortcut方面的源码

首先要知道Launcher,就是主屏幕,它是Android系统启动后所加载的第一个程序,如下,主屏幕分成两部分,Workspace和Hotseats,而shortcut就是添加在workspace上的,这上面还可以添加诸如widget、文件夹等。这儿说的shortcut是指跳转到具体功能的快捷方式,而不是简单的程序的入口图标,APIDemos中有一个添加shortcut的例子,我们稍后分析它。这儿以Android2.3的模拟器分析添加shortcut有关的...
Android中View的绘制过程

Android中View的绘制过程

View可以看成一个树形结构,父控件是父节点,子控件是子节点。View的绘制过程就是遍历这棵树。View的绘制有三步:measure:测量View的Width和Height, layout:布局View(left,right,top,bottom),指定View和手机屏幕的上下左右的距离。 draw:绘图以上的步骤必须按照顺序来。(顺便说一下,以上三个步骤发生在View的构造方法之后。)一、measuremeasure是绘制视图的第一步,因为只有知道的Vi...
Java中的值传递和引用传递

Java中的值传递和引用传递

当一个变量最为一个参数传入方法内部的时候,会有两种不同的传递方式:值传递和引用传递。值传递的特点:不管方法内部对传进去的参数作任何改变,也不会影响方法外部的变量的值引用传递的特点:方法内部对传进去的参数作的改变也会影响方法外部的变量的值那么哪些是值传递,哪些是引用传递呢?基本类型(8种)的传递都是值传递 引用类型(除String外)都是引用传递 Strng比较特殊,它虽然是引用类型,但是却是值传递通过一下例子来理解:Student.javapackagec...
Java中的缺省构造方法

Java中的缺省构造方法

如果你写的类中没有构造方法,则编译器会自动帮你创建一个缺省构造方法(无参的构造方法)。但是,如果你已经定义了一个构造方法(无论是否有参数),编译器就不会帮你自动创建缺省构造方法。有一个类:classDog{privateStringname;Dog(Stringname){}}这个类已经有一个有参的构造方法了,所以编译器就不会帮你自动创建无参的缺省构造方法了,如果你这样写: newDog();编译器就会报错:没有找到匹配的构造器。这就好比,要是你没有提供任...
Java中的Override和Overload

Java中的Override和Overload

Override:重写发生在父类和子类之间,子类重写父类的方法方法的名称、参数、返回值要一模一样Overload:重载发生在同一个类中方法的名称一样,参数不同Override相信大家经常使用,但是Overload不经常使用(或者说使用了也不知道斯Overload)一个典型的Overload的例子就是构造方法,无参的构造方法和有参的构造方法,他们方法名一样,只是参数名不一样Q:返回值不一样的方法算不算OverloadA:不算!Overload的区分只看参数一...
在Shell脚本中运用函数

在Shell脚本中运用函数

函数,相信我们每个人都有多了解,其实就像数学中的函数一样,遵循某种规则,把语句、语法有效的结合起来,去实现某种特定功能的模块。函数的命名 funct_name () { 函数体} 或者 function func_name { 函数体 }函数本身是不能执行的,只有通过主函数的调用,才可以产生作用练习脚本1、创建一个函数,可以接受一个磁盘设备路径(如/dev/sdb)作为参数;在真正开始后面步骤之前提醒用户有危险,并让用户选择是否继续;而后将此磁盘设备上的所...
GNU ARM汇编

GNU ARM汇编

在大学的时候,汇编就是学的很烂.一是对汇编这门语言没概念,二是那些指令集很难记清楚,用的机会也少,自然学的不好.但是现在觉得相当有必要重头学习一下汇编.部分原因我在上一篇写完设备模型的总结时提到了而.最近在看一本书《ARM:Assembly Language Programming》,作者是Peter Knaggs & Stephen Welsh.作者在开头也提出学习汇编的必要性和重要性,借他们的话重新说一下:他们首先用三个问句来引出为什么要学习汇...
Android:使用Speech To Text API进行语音到文本转换

Android:使用Speech To Text API进行语音到文本转换

Android有一个非常酷的特性很多开发者都还不知道。Any.DO之类应用的语音到文本转换功能很有创意。在现在Siri的世界里,语音指令是极其重要的。Android原生提供Speech To Text功能,为什么不把它用在我们的程序中! 我将会展示如何在程序中使用Android的Speech To Text API,现在开始写我们的demo程序。 Demo程序 这个程序很简单。他有一个Mic符号按钮。点击之后我们触发Android的Speech To Te...
基于 HTML5技术的SIP视频电话

基于 HTML5技术的SIP视频电话

在浏览器端实现基于标准(SIP,HTML5,H264)的视频电话,可以与其他基于SIP协议的客户端,服务器互通,支持H264,H263视频编码标准,语音支持G711,G729等,支持即时通信。浏览器端SIP视频电话分两部分:1. SIP,SDP协议栈采用javascript 实现SIP,SDP协议栈,传输层用WebSocket协议(HTML5标准的一部分),http://tools.ietf.org/html/draft-ibc-sipcore-sip-w...
Freeswitch 音视频编码支持

Freeswitch 音视频编码支持

1. freeswtich对高清(HD)语音编码的支持freeswitch支持 大部分高清语音编码,包括Speex,G.722,G.722.1(Siren) 及SILK,与之对比,asterisk 1.8版本之前只支持采样为8000的常用语音编码,1.10后asterisk开始从新架构其media codec模块,以全面支持高清等宽频语音编码。2.有些语音编码以模块方式加载(G729等),有的则属于freeswitch core部分(G711),系统默认不...
Java C++ 服务比较

Java C++ 服务比较

1、内存占用,C++占优:jvm的垃圾回收原理下,old区只有到70%才会回收,否则系统为了效率,不会强制做fullgc,因此假如一开始分配了 -xms = xmx = 2g, -xmn = 512m的情况下,整个服务占用内存很容易达到1g以上。 而C++写的服务,由于上次应用自己控制内存,用完马上释放,因此内存占用非常小。 比如apache一个进程常常只占据几十M内存。2、底层功能应用,C++占优: C++通过调用操作系统底层API,可以很方便的利用系统...
Linux进程地址空间--vma的基本操作

Linux进程地址空间--vma的基本操作

在32位的系统上,线性地址空间可达到4GB,这4GB一般按照3:1的比例进行分配,也就是说用户进程享有前3GB线性地址空间,而内核独享最后1GB线性地址空间。由于虚拟内存的引入,每个进程都可拥有3GB的虚拟内存,并且用户进程之间的地址空间是互不可见、互不影响的,也就是说即使两个进程对同一个地址进行操作,也不会产生问题。在前面介绍的一些分配内存的途径中,无论是伙伴系统中分配页的函数,还是slab分配器中分配对象的函数,它们都会尽量快速地响应内核的分配请求,将...
<< 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 >>