- 博客(34)
- 资源 (2)
- 收藏
- 关注
转载 Android动画-FrameAnimation
在开始实例讲解之前,先引用官方文档中的一段话:Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。Frame动画可以被定义在XML文件中,也可以完全编码实现。如果被定义在XML文件中,我们可以放置在/res下的anim或drawable目录中(/res/[anim | drawable]/filename.xml),文件名可以作为资源ID在代
2015-09-10 10:59:03
457
转载 Android动画-TweenAnimation
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。 下面就讲一下Tweene Animations。 主要类: Animation 动画AlphaAnimation
2015-09-10 10:56:10
552
转载 Wi-Fi Direct协议详解
理论上,Wi-Fi Direct属于纯软件协议,也就是说不需要额外的硬件支持,只要支持802.11g、n或者ac的设备都可以实现Wi-Fi Direct的基本功能。但一些高级功能,比如Wi-Fi Direct电源管理需要非常精细的定时管理和状态切换,Concurrent模式需要对多个源MAC地址进行高效的过滤,这些都靠软件实现会比较费劲。所以不要太指望老设备通过软件升级来实现Wi-Fi Direc
2015-08-17 16:24:49
11778
1
转载 WiFi Direct简介
Wi-Fi Direct技术是由WFA(Wi-Fi联盟)在2009年提出,目前最新的规范是v1.2版本。这个技术的目的是在没有Wi-Fi AP的情况下由两个或者多个Wi-Fi设备互相之间进行高速的数据通信。通信完全基于TCP/IP 协议,因此对于开发基于Wi-Fi Direct的应用来说非常友好。Wi-Fi Direct在刚提出时叫Wi-Fi Peer-to-Peer,所以也可以称
2015-08-17 16:24:01
3763
转载 select、poll、epoll之间的区别总结[整理]
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用
2015-08-12 15:33:24
486
转载 IO多路复用之select总结
1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用
2015-08-12 15:32:42
413
转载 IO多路复用之poll总结
1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数
2015-08-12 15:31:48
382
转载 IO多路复用之epoll总结
1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:
2015-08-12 15:30:21
368
转载 Linux Socket
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型
2015-08-12 11:21:02
388
转载 线程同步
线程同步什么是线程同步?当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。实现同步机制有两个方法:1。同步代码块:synchronized(同一个数据){} 同一个数据:就是N条线程同时访问一个数据。2。同步方法:public s
2015-06-03 15:03:43
493
转载 Android中AsyncTask的使用
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下
2015-06-03 14:42:33
445
转载 Android Looper和Handler
Android Looper和HandlerMessage:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。Messag
2015-06-03 14:38:07
384
转载 Android进程与线程基本知识
本文介绍Android平台中进程与线程的基本知识。 很早的时候就想介绍一下Android中的进程和线程,但由于其他的事情一直给耽搁了,直到现在才能和大家一起分享下。 1.Android进程基本知识: 我们先来了解下Android中的进程基本知识。 当一个程序第一次启动的时候,Android会启动一个LINUX进程和一个主线程。默
2015-06-03 11:14:10
439
转载 android悬浮窗口的实现
当我们在手机上使用360安全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可见(多米音乐也有相关的和主界面交互的悬浮小窗口)。那么这种不受Activity界面影响的悬浮窗口是怎么实现的呢? 竟然它能悬浮在手机桌面,且不受Activity界面的影响,说明该悬浮窗口是不隶属于Activity界面
2015-06-01 17:00:19
526
转载 Android动画
转载:http://blog.youkuaiyun.com/cq0072008/article/details/8223878参考:http://www.cnblogs.com/angeldevil/archive/2011/12/02/2271096.htmlAndroid提供了2中动画1.Tween动画,通过对View的内容进行一系列的图形变换(包括平移,缩放,旋转,改
2015-06-01 11:04:10
383
转载 Android 4.0 ICS SystemUI浅析——StatusBar加载流程分析
转载至:http://blog.youkuaiyun.com/yihongyuelan/article/details/7710584前面两篇文章《Android 4.0 ICS SystemUI浅析——SystemUI启动流程》、《Android 4.0 ICS SystemUI浅析——StatusBar结构分析》SystemUI和StatusBar的冰山一角,那么本文将从代码的角度来分析S
2015-03-20 14:37:21
2479
转载 Android 4.0 ICS SystemUI浅析——StatusBar结构分析
转载至:http://blog.youkuaiyun.com/yihongyuelan/article/details/7695903在上一篇文章《Android 4.0 ICS SystemUI浅析——SystemUI启动流程》中以及提到了SystemUI的组成,本文主要分析其中的StatusBar结构。 1.布局概览 首先,我们通过hierarchyview
2015-03-20 14:35:59
549
转载 Android 4.0 SystemUI浅析——SystemUI启动流程
阅读Android 4.0源码也有一段时间了,这次是针对SystemUI的一个学习过程。本文只是对SystemUI分析的一个开始——启动流程的分析,网上有很多关于2.3的SystemUI的分析,可4.0与2.3的差别还是很大的,为了给自己留下笔记同时也方便大家学习和探讨,遂写此文,后续将有更多关于SystemUI的分析,敬请关注。 转载请注明出处:http://blog.csd
2015-03-19 16:27:48
614
原创 Android快速设置中添加隐藏状态栏和导航栏选项
Android的状态栏和导航栏是在SystemUI中实现的,目前还不支持手动隐藏和显示状态栏和导航栏,接下来我们将对此功能进行讲解。 在系统启动过程中,会加载SystemUI中的状态栏,具体过程在这里不予以分析,状态栏对应的类为:\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStat
2015-03-19 11:46:14
5690
1
原创 android虚拟手柄摇杆的实现
最近的项目开发中的一个任务是实现Android虚拟手柄界面,如图所示:界面是一个SurfaceView,摇杆和按键都是通过画图显示出来的,这里详细介摇杆的实现,当用户点击摇杆即中间的黄球时,然后可以再圆圈内移动,这里运用了三角函数的知识,我们可以把黄球的中心点为一个含有4个象限的坐标的中心,当黄球移动的位置超出了圆圈时,就让黄球的位置设置为相对于坐标中心同一角度圆圈的边缘的点上的位置。
2015-03-02 14:11:31
8553
转载 【Android Eclair】 如何写Android init.rc(该文章翻译自/system/core/init/readme.txt)
如何去写Android init.rc (Android init language)Android初始化语言由四大类声明组成:行为类(Actions),命令类(Commands),服务类(Services),选项类(Options). * 初始化语言以行为单位,由以空格间隔的语言符号组成。C风格的反斜杠转义符可以用来插入空白到语言符号。双引号也可以用来防止文本被空格分成多个语言
2015-01-14 13:54:27
555
转载 Android系统进程Zygote启动过程的源代码分析
在Android系统中,所有的应用程序进程以及系统服务进程SystemServer都是由Zygote进程孕育(fork)出来的,这也许就是为什么要把它称为Zygote(受精卵)的原因吧。由于Zygote进程在Android系统中有着如此重要的地位,本文将详细分析它的启动过程。 在前面一篇文章Android应用程序进程启动过程的源代码分析中,我们看到了,当ActivityMan
2015-01-09 16:33:29
581
转载 Android.mk详解
0. Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义。Android.mk文件语法允许我们将Source打包成一个"modules".
2015-01-08 17:52:11
688
转载 Android StateMachine和AsyncChannel
在学习Android Wifi的code时,到处可以看到StateMachie和AsyncChannel的影子,这里我们先大致分析一下它们两个的原理。StateMachine原理分析顾名思义,StateMachine就是状态机的意思,从Goolge给出的解释:The state machine defined here is a hierarchical s
2015-01-08 15:20:31
802
转载 Android4.4(MT8685)源码WIFI--扫描和连接
本章主要介绍用户手动的在Settings中点击Scan和Connect按钮,输入密码后的连接过程,先看整体流程图:WiFi Scan过程分析当用户进入Settings点击Scan后,就会调用到WifiManager的startScan()方法,当然在Settings里面有设置Scan的定时器,每隔一段时间就会去scan,在Wifi Framework中也有scan的定时
2015-01-08 15:18:16
2189
原创 Android4.4(MT8685)源码WIFI--初始化2
上一章我们讲到在SystemServer中会初始化一个WifiService对象,那么我们来看看这个WifiService的构造方法,路径:./frameworks/base/services/java/com/android/server/wifi/WifiService.java public WifiService(Context context) { mContext
2015-01-07 16:40:28
2601
原创 Android4.4(MT8685)源码WIFI--初始化1
在Android系统启动的时候,会在./frameworks/base/services/java/com/android/server/SystemServer.java类中启动许多服务,其中和Wifi相关的服务就在这里初始化。在SystemServer的main方法中,我们可以看到thr.initAndLoop();这里调用了它的内部类对象的initAndLoop方法,在这个方法的作用
2015-01-07 11:22:56
2551
原创 蓝牙协议
HFP HFP(Hands-free Profile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持。 HSP HSP 描述了 Bluetooth 耳机如何与计算机或其它 Bluetooth 设备(如手机)通信。连接和配置好后,耳机可以作为远程设备的音频输入和输出接口。 这是最常用的配置,为当前流行支持蓝牙耳机与移动电话使
2014-12-17 15:21:22
1107
原创 Android4.4(MT8685)源码蓝牙解析--BLE搜索
BLE:全称为Bluetooth Low Energy。蓝牙规范4.0最重要的一个特性就是低功耗。BLE使得蓝牙设备可通过一粒纽扣电池供电以维持续工作数年之久。很明显,BLE使得蓝牙设备在钟表、远程控制、医疗保健及运动感应器等市场具有极光明的应用场景。Google从Android 4.3开始添加了对蓝牙4.0的支持。本文一个demo为入口分析 BLE 搜索的流程。package com.d
2014-12-16 17:16:47
3777
原创 Android4.4(MT8685)源码蓝牙解析--连接
在BluetoothSetting的onResume生命周期方法中会执行updateContent方法,当蓝牙状态为开时,会执行其中这么一段代码:LocalBluetoothManager.getInstance(getActivity()).setDiscoverableEnabler( mDiscoverableEnabler);
2014-12-13 15:31:03
3119
原创 Android4.4(MT8685)源码蓝牙解析--配对
在Settings的Bluetooth界面中,当用户点击当前的可连接设备时,系统会先对点击的设备进行配对,在BluetoothSettings.java类中对应的源码为:@Override void onDevicePreferenceClick(BluetoothDevicePreference btPreference) { mLocalAdapter.stop
2014-12-13 10:49:44
3407
原创 Android4.4(MT8685)源码蓝牙解析--搜索
当用户进入到Settings应用的Bluetooth界面,首先会进入BluetoothSettings.java类,这个类负责显示已配对和已搜索到的设备信息,并提供了蓝牙搜索按钮。首先,系统会先执行BluetoothSettings.java类的生命周期方法,onActivityCreated、onResume,这里我们来看看onResume方法的代码: @Override pub
2014-12-12 16:33:59
1695
原创 Android4.4(MT8685)源码蓝牙解析--概述
最近一周在研究Android 的蓝牙模块,对整个模块有了个大概的了解,在此总结一下。分析从Android系统的Settings中的Bluetooth开始,分别分析蓝牙的搜索、配对、连接的流程,分析的源码为MTK方案的4.4版本的源码。下一章开始分析蓝牙的搜索流程。
2014-12-12 15:44:39
1274
原创 Android CTS兼容性测试
一、为什么需要兼容性测试(以下称CTS)?1.1、让APP提供更好的用户体验。用户可以选择更多的适合自己设备的APP。让APP更稳定。1.2、让开发者设计更高质量的APP。1.3、通过CTS的设备可以运行Android market。另外,CTS是免费的,而且很简单。二.CTS是开源的测试框架,使用它来测试你的设备是否具备兼容性。CTS主要包含两个组件:
2014-09-18 16:02:14
973
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人